您好,欢迎访问三七文档
课程设计(论文)说明书题目:基于Dspbuilder的CIC插值滤波器设计院(系):信息与通信学院专业:通信工程学生姓名:孙望学号:0900210225指导教师:刘争红职称:讲师2012年5月20日1摘要随着数字信号处理技术的发展,软件无线电技术也出现了新的景象,软件无线电逐渐取代了传统的“纯硬件电路”的无线通信模式,其思想是在特定的硬件平台上用软件实现通信的功能,但随着随着系统的功能逐渐复杂化,一块芯片上需集成各种各样的功能,这个时候,优化有限的资源实现更多的功能就成了需要工程师必须考虑的问题。而在广泛运用的FPGA系统中,众所周知的是,FIR滤波器运用了大量的乘法器,而乘法核在FPGA系统中,将会浪费很多的资源,这是很不可取的。在多速率信号处理和通信系统中,由Hogenauer率先引进了CIC滤波器。早在1981年,Hogenauer就在IEEE上发表了一片著名的论文,他首次将CIC滤波器引入信号处理世界。而如今,CIC滤波器已经广泛应用于多速率信号处理和通信系统中。CIC滤波器是一种极、零点相消的FIR滤波器,只有加法和延时运算,没有一般FIR滤波器所需的大量乘法运算,所以通常工作在系统中运算量最大的第一级,可以节省资源,降低功耗。本文所设计的CIC插值滤波器,首先用Simulink建立CIC插值滤波器模型,仿真实现CIC滤波器插值功能。当验证模型的正确性后就将其优化,并在Dspbuilder中重新建立该模型,并进行仿真验证,验证正确后,通过SignalCompile编译生成VHDL代码,在QuartusII进行综合编译并完成时序仿真。同时,编写Testbench文件,在Modelsim中完成最后的RTL级仿真。最后将Modelsim的结果和Matlab的仿真结果进行比较,发现完全硬件实现了理论仿真,完成本系统的设计。关键词:CIC滤波器;FPGA;Simulink模型;Dspbuilder;VHDL代码生成;2引言级联积分梳状滤波器,英文名称(CICcascadeintegratorcomb),无线和局域网通信系统发送信号、信息的速度和频率常常超过数字处理能力的上限(比如56Hz)。使用中频(IF)级可将信号频率降低到ADO可以接受的值上(例如100MSa/s)。而信息占据的频带可能比ADC带宽还要低很多(例如,l00kHz)。对窄带通信而言,信道带宽远低于第一个ADO的速率((fbandwidth/fs)《1)。对于宽带应用,二者带宽需求的差异可小于10倍。不过,ALC采样后的信号在送人“后端”处理器进行分析之前必须首先被下变换到基带。这一般是通过将数字化之后的信号与一个合成的正弦信号(正弦和余弦)混频来完成的,其中合成的正弦信号来自直接数字综合器或DDS。利用这个过程可将期望的信道变换到直流。一旦变换到直流,期望的信道就可以由频率选择滤波器从宽带频谱中选出。不过,所需的下变换必须工作在较高的实时数据率下,这导致无法用普通的FIR从ADO输出中提取期望的信息,这时需要一种快速而简单的解决方案。针对这个问题的一个解决方案是数字下变频器,也称为信道器。首选的信道器结构为级联积分器梳状(CIC)滤波器,或叫做Hogenauer滤波器。本文所设计的CIC滤波器,首先用Simulink建立CIC插值滤波器模型,仿真实现CIC滤波器插值功能。当验证模型的正确性后就将其优化,并在Dspbuilder中重新建立该模型,并进行仿真验证,验证正确后,通过SignalCompile编译生成VHDL代码,在QuartusII进行综合编译并完成时序仿真。同时,编写Testbench文件,在Modelsim中完成最后的RTL级仿真。最后将Modelsim的结果和Matlab的仿真结果进行比较,发现完全硬件实现了理论仿真,完成本系统的设计。正文1概述随着科技的进步,产品项目越来越巨型,动辄几十万行的代码越来越难维护,传统的自底向上的设计方法越来越难满足当今产品设计的需要,为了减少编程人员的工作量和增强代码的可维护性,自顶向下的基于模型的设计应运而生。基于模型的设计中,通过建模和仿真来获得从需求到设计的实现和测试,在开发编码之前的早期开发阶段就对模型进行测试,将产品的缺陷暴露在项目开发的初期,并在开发过程中持续不断地验证与测试,这样工程师就可以把主要精力放在算法和测试用例的研究上,确保规范的完整性和无歧义性,最后自动代码生成有效地减少了人为引入错误的可能,且大大缩短开发周期与成本,降低开发难度,并且软件的一致性好,软硬件整合简单,可靠性高。本设计应用了Simulink和Dspbuiler同时完成CIC插值滤波器的设计与仿真验证,同时经过SignalCompiler完成VHDL代码的自动编译。而上面仅仅是完成算法级的仿真,下面同样,先经过QuartusII自带的仿真功能,验证本系统是否完成了CIC插值滤波器3的8倍插值,同时用Modelsim完成RTL级仿真,并与Simulink的仿真结果进行比较。DSPbuilder简介:Altera可编程逻辑器件(PLD)中的DSP系统设计需要高级算法和HDL开发工具。AlteraDSPBuilder将TheMathWorksMATLAB和Simulink系统级设计工具的算法开发、仿真和验证功能与VHDL综合、仿真和Altera开发工具整合在一起,实现了这些工具的集成。DSPBuilder在算法友好的开发环境中帮助设计人员生成DSP设计硬件表征,从而缩短了DSP设计周期。已有的MATLAB函数和Simulink模块可以和AlteraDSPBuilder模块以及Altera知识产权(IP)MegaCore功能相结合,将系统级设计实现和DSP算法开发相链接。DSPBuilder支持系统、算法和硬件设计共享一个公共开发平台。设计人员可以使用DSPBuilder模块迅速生成Simulink系统建模硬件。DSPBuilder包括比特和周期精度的Simulink模块,涵盖了算法和存储功能等基本操作。可以使用DSPBuilder模型中的MegaCore功能实现复杂功能的集成。Altera还提供DSPBuilder高级模块集,这一Simulink库实现了时序驱动的Simulink综合。AlteraMegaCore是高级参数化IP功能,例如有限冲击响应(FIR)滤波器和快速傅立叶变换(FFT)等,经过配置能够迅速方便的达到系统性能要求。MegaCore功能支持Altera的IP评估特性,使您在购买许可之前,便可以验证功能及其时序。AlteraIPMegaStore网站上为DSPBuilder和IP评估流程提供DSPIP完整介绍DSPBuilderSignalCompiler模块读取由DSPBuilder和MegaCore模块构建的Simulink建模文件(.mdl),生成VHDL文件和工具命令语言(Tcl)脚本,进行综合、硬件实施和仿真。图示为DSPBuilder设计流程。DSPBuilder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势【10】。DSPBuilder依赖于MathWorks公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可以在Simulink中进行图形化设计和仿真,同时又通过SignalCompiler可以把Matlab/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制综合与编译的TCL脚本。而对后者的处理可以由FPGA/CPLD开发工具QuartusII来完成。42CIC滤波器的基本原理级联积分梳状滤波器(cascadeintegratorcombfilter)是高分解率滤波器的一种非常有效的结构,具有结构简单。规整,需要的存储量小的优点。由于不需要乘法器,而且利用积分环节减少了中间过程的存储量,因此常常用在高速采样和插值比很大的场合。CIC滤波器一般由Integrator(积分部分)和Comb(梳状部分)两个基本模块组成。Integrator模块的差分方程为:y[n]=y[n-1]+x[n]转换到Z域后,其传递函数为HI(Z)=1/(1-Z-1)Comb模块的差分方程为y[n]=x[n]-x[n-RD]转换到Z域后,其传递函数为HC(z)=1-z-RDCIC滤波器有2种形式,一种被称为抽取器,另外一种被称为内插器。抽取器是由N个Intergrator模块级联(采样频率为fs),再级联N个Comb模块(采样频率为fs/RD),结构见图1(a)。而内插器的级联方式则与抽取器的级联方式相反,结构见图1(b)。图1多级CIC结构框图抽取器Z域的传递函数为内插器的Z域的传递函数为5以CIC抽取器的传递函数可以看出,H(z)有RDN个零点,N个极点。所有零点都处于2π/RD处,圆心起始于z=1可以看出,每个不同的零点都重复了N次,而H(z)的极点都处于z=1处。由此可以看出,CIC抽取器的极点抵消情况,CIC滤波器相当于N个矩形冲激响应滤波器的级联。由CIC滤波器的传递函数和图1可以看出,在CIC滤波器中,没有乘法运算,因此CIC滤波器比FIR和IIR滤波器更节省资源,电路也更简单。3CIC滤波器的Simulink仿真实现CIC滤波器分为CIC抽取器和CIC内插器2种类型,但其区别仅仅在于其integrator和comb的级联次序及采样频率的不同。本文将以CIC插值器为例介绍其simulink仿真实现。按照图1(b)的CIC内插器结构框图,我们应先设计comb部分,simulink的模型搭建如下图所示:Comb部分simulink模型由于我们实现的是8倍插值,所以应当实现5级级联,simulink模型如下;将comb部分生成subsystem,完成comb部分的模型搭建。下面,我们继续搭建integrator部分的simulink模型。6首先还是,最基本的integrator的simulink模型如下:其次5级级联的integrator如下图所示:Comb和integrator的模块已经搭建完成,为了实现CIC插值滤波器,须以comb在前integrator在后的顺序,实现CIC插值滤波器的功能。其系统模型如下:为了验证CIC插值滤波器的功能,我们有必要加入一些simulink自带的信号源与示波器,来验证与完善本系统模型。框图如下:7我们设定信号源为离散的正弦信号,其一个周期仅有8个采样点。该正弦信号源的参数设置如下:设置完毕后,本系统即可以开始仿真了。下面点下仿真按键实现仿真,仿真结果如下:由波形可以看出,输入信号为锯齿明显的正弦信号,通过傅立叶变换即发现其为基8波是正弦波,含有众多高次谐波的信号。通过CIC插值滤波器后,高次谐波被滤除,剩下的即为基波正弦信号。仿真结果证明本系统完全实现了CIC滤波器的功能。4CIC插值滤波器通过Dspbuilder生成VHDL代码Simulink的仿真结果证明了本系统的正确性,下面来通过dspbuilder的SignalCompiler生成VHDL代码,具体步骤如下:1.双击SignalCompiler,生成如下的对话框。2.Family设置为CycloneII3.标签选择为Advanced,依次点击CreateProject,Synthesis,Fitter。需要注意的是,必须等每一步运行完后,再点下一步。生成文件为QuartusII的工程文件,在Matlab设计的CIC.mdl同一文件夹下,为cic_dspbuilder文件夹下。至此,dspbuilder转换完成。95CIC滤波器的FPGA实现双击cic.qpf,打开工程文件,将cic2VHDL_GNIDDHHVE3.vhd文件生成symbolfile文件,并新建CIC.bdf文件,搭建CIC滤波器系统,如下图所示:我们先运用下QuartusII自带的波形仿真软件验证一下CIC滤波器。新建vwf波形仿真文件,设置引脚后
本文标题:CIC滤波器论文
链接地址:https://www.777doc.com/doc-2905766 .html