课程设计(论文)说明书
题 目: 基于Dsp builder的
CIC插值滤波器设计
院 (系): 信息与通信学院 专 业: 通信工程 学生姓名: 孙望 学 号: 0900210225 指导教师: 刘争红
职 称: 讲师
2012 年 5 月 20 日
摘 要
随着数字信号处理技术的发展,软件无线电技术也出现了新的景象,软件无线电逐渐取代了传统的“纯硬件电路”的无线通信模式,其思想是在特定的硬件平台上用软件实现通信的功能,但随着随着系统的功能逐渐复杂化,一块芯片上需集成各种各样的功能,这个时候,优化有限的资源实现更多的功能就成了需要工程师必须考虑的问题。而在广泛运用的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代码生成;
1
引 言
级联积分梳状滤波器,英文名称(CIC cascade integrator comb),无线和局域网通信系统发送信号、信息的速度和频率常常超过数字处理能力的上限(比如56Hz)。使用中频(IF)级可将信号频率降低到ADO可以接受的值上(例如100MSa/s)。而信息占据的频带可能比ADC带宽还要低很多(例如,l00kHz)。对窄带通信而言,信道带宽远低于第一个ADO的速率((fbandwidth/fs)《1)。对于宽带应用,二者带宽需求的差异可小于10倍。不过,AL>C采样后的信号在送人“后端”处理器进行分析之前必须首先被下变换到基带。这一般是通过将数字化之后的信号与一个合成的正弦信号(正弦和余弦)混频来完成的,其中合成的正弦信号来自直接数字综合器或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插值滤波器
2
的8倍插值,同时用Modelsim完成RTL级仿真,并与Simulink的仿真结果进行比较。
DSP builder简介:
Altera可编程逻辑器件(PLD)中的DSP系统设计需要高级算法和HDL开发工具。Altera DSP Builder将The MathWorks MATLAB和Simulink系统级设计工具的算法开发、仿真和验证功能与VHDL综合、仿真和Altera开发工具整合在一起,实现了这些工具的集成。
DSP Builder在算法友好的开发环境中帮助设计人员生成DSP设计硬件表征,从而缩短了DSP设计周期。已有的MATLAB函数和Simulink模块可以和Altera DSP Builder模块以及Altera知识产权(IP)MegaCore功能相结合,将系统级设计实现和DSP算法开发相链接。DSP Builder支持系统、算法和硬件设计共享一个公共开发平台。
设计人员可以使用DSP Builder模块迅速生成Simulink系统建模硬件。DSP Builder包括比特和周期精度的Simulink模块,涵盖了算法和存储功能等基本操作。可以使用DSP Builder模型中的MegaCore功能实现复杂功能的集成。
Altera还提供DSP Builder高级模块集,这一Simulink库实现了时序驱动的Simulink综合。
Altera MegaCore是高级参数化IP功能,例如有限冲击响应(FIR)滤波器和快速傅立叶变换(FFT)等,经过配置能够迅速方便的达到系统性能要求。MegaCore功能支持Altera的IP评估特性,使您在购买许可之前,便可以验证功能及其时序。
Altera IP MegaStore网站上为DSP Builder和IP评估流程提供DSP IP完整介绍 DSP Builder SignalCompiler模块读取由DSP Builder和MegaCore模块构建的Simulink建模文件(.mdl),生成VHDL文件和工具命令语言(Tcl)脚本,进行综合、硬件实施和仿真。图示为DSP Builder设计流程。
DSP Builder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势【10】。DSP Builder依赖于Math Works公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compiler可以把Matlab/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制综合与编译的TCL脚本。而对后者的处理可以由FPGA/CPLD开发工具Quartus II来完成。
3
2 CIC滤波器的基本原理
级联积分梳状滤波器(cascade integrator comb filter)是高分解率滤波器的一种非常有效的结构,具有结构简单。规整,需要的存储量小的优点。由于不需要乘法器,而且利用积分环节减少了中间过程的存储量,因此常常用在高速采样和插值比很大的场合。
CIC滤波器一般由Integrator(积分部分)和Comb(梳状部分)两个基本模块组成。 Integrator模块的差分方程为:
y[n]=y[n-1]+x[n] HI(Z)=1/(1-Z-1) y[n]=x[n]-x[n-RD] HC(z)=1-z-RD
转换到Z域后,其传递函数为 Comb模块的差分方程为 转换到Z域后,其传递函数为
CIC滤波器有2种形式,一种被称为抽取器,另外一种被称为内插器。抽取器是由N个Intergrator模块级联(采样频率为fs),再级联N个Comb模块(采样频率为fs/RD),结构见图1(a)。而内插器的级联方式则与抽取器的级联方式相反,结构见图1(b)。
图1 多级CIC结构框图
抽取器Z域的传递函数为
内插器的Z域的传递函数为
4