CIC插值滤波器的FPGA设计与实现_第1页
CIC插值滤波器的FPGA设计与实现_第2页
CIC插值滤波器的FPGA设计与实现_第3页
CIC插值滤波器的FPGA设计与实现_第4页
CIC插值滤波器的FPGA设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CIC插值滤波器的FPGA设计与实现摘要:基于多速率信号处理原理,设计了用于下变频的CIC插值滤波器,由于CIC滤波器结构只用到加法器和延迟器,没有乘法器,很适合用FPGA来实现,所以本文分析了CIC滤波器的原理,性能及影响参数,借助MATLAB设计符合系统要求CIC滤波器,并利用Modelsim软件建模仿真,验证CIC滤波器性能是否达到要求。(一)CIC滤波器基本原理ACIC滤波器的基本单元CIC滤波器主要由积分滤波Integrator和梳状滤波Comb两个基本单元部分构成。典型的CIC滤波器的结构,它由两个基本单元I(积分滤波器)和C(梳状滤波器)级联构成。本设计主要针对插值滤波器,所以插

2、值滤波器的结构示意图如图1-1所示:图 1-1 3级级联的CIC插值滤波器结构示意图 积分器和梳状滤波器之间是一个采样率转换器,对于CIC插值器而言,它完成在每一个样值后补上R-1个0值的工作,对于CIC抽取器来说,它完成在实际的抽取工作,每R个样值中取样一个。R(插值倍数),M(延迟因子,一般取1或者2)以及N(级联级数)是影响CIC滤波器的三个参数,它们的值需根据通带性能的需求而设定。(二)CIC插值滤波器的设计流程 根据CIC滤波器的原理,本设计的流程如图2-1所示: 原理编写Matlab程序Matlab仿真比较和分析结果编写Verilog程序Quartus和Modelsim仿真参数、位

3、宽、模块的设计图2-1 CIC插值滤波器的设计流程图(三)模型的建立和测试A位宽策略对于数字滤波器,一个不得不考虑的问题是为防止溢出每一级所需的位宽。对于抽取器来说,CIC滤波器的输出增益为 (3-1)所以,在全精度的情况下,最后一级输出的位宽为 (3-2)其中表示输入数据的宽度,为了保证精度,每一个积分器和梳状滤波器的输入输出位宽都为。对于插值器而言,输出增益为 (3-3)因此,第i级为避免溢出所需要的位宽为 (3-4)最后一级输出位宽为 (3-5)在实际当中,当差分延时M=1时,为保证稳定,所有积分器的位宽在理论值的基础上加一。不仅是滤波器输出的最大可能的位数,也是每一级滤波器的最大可能位

4、数。但有时候,输出位宽需要根据实际需要引入四舍五入或截取的方法来减少位数。简单的做法是直接在输出端做四舍五入或者截取,更复杂点的方式是在每一级都做四舍五入或者进行截取。这自然需要研究一下因四舍五入或截取所引起的滤波器输出端误差,具体的方法就是通过单独研究每一级误差源(指每一级滤波器截取或四舍五入引起的误差)的均值和方差,利用统计特性研究滤波器输出端总的均值和方差。表 3.1不同参数全精度下的输出位宽输入位宽级数N插值比R差分延时M输出位宽8bit416121bit8bit416224bit12bit316121bit16bit432132bit16bit464135bit16bit412813

5、8bit根据实际时的滤波器结构,可以认为误差源有2N+1个:2N个滤波器级因四舍五入或截取所产生的误差源和一个输出寄存器因四舍五入或截取所产生的误差源。对于CIC滤波器的三个基本单元,都不涉及乘法器,而采样率变换器不使用任何运算单元。 (四)CIC滤波器的matlab仿真 在matlab的程序里,分三部分即根据CIC插值滤波器的原理进行描述。 激励信号采样正弦信号,以及白噪声信号的测试模型。测试信号的点数,正弦信号的频率和采样率可以根据需要设定。1.仿真结果 图4-1是CIC插值滤波器的频率响应曲线,其中正弦频率fs=200Hz,采样率Fs=800Hz。图4-1 CIC插值滤波器的频响曲线图4

6、-2是正弦信号做完4倍插值前后曲线的比较图4-2 正弦信号经过CIC插值滤波器前后的信号(N=3,R=4,M=1)白噪声信号的频率响应曲线如图4-3所示,而经CIC滤波器处理后的白噪声信号频率响应曲线如图4-4所示。 图4-3 白噪声的频率响应图4-4 白噪声经过CIC插值滤波器处理后的频率响应(N=3,M=1,R=4)(五) CIC滤波器的FPGA实现1. 接口设计 CLK DOUTRSTOEDIN CIC FILTER 图5-1 CIC插值滤波器的接口符号表5.1:CIC滤波器的管脚说明信号名称方向位宽定义备注CLK输入1时钟上升沿RST输入1复位高电平异步OE输入1使能高有效CLK同步,

7、单周期有效DIN输入参数化输入信号数据与CLK同步DOUT输出参数化输出信号数据与CLK同步2.子模块的划分和定义按照MATALB仿真时的方式,将子模块划分为积分器(interg),梳状滤波器(comb)和采样率变换器(in)三个子模块。clk outresetcex_in combclk outresetcex_in intergclk outresetx_in in 图5-2 子模块的划分框图及接口声明梳状滤波器的实现(M=3):图5-3 梳状滤波器RTL框图,N=3积分滤波器的实现(M=3): 图5-4 积分滤波器RTL框图,N=3采样率变换器(插值补零)的实现:图5-5 采样率变换器RTL框图其中cnt为计数器,即实现的插值倍数。 3.测试方式在传统的设计方法中,一般采用图4-2的方式进行测试,这种方式结构简单,目标明确,但是testbench模块以及其激励信号是不可综合的,因而无法在FPGA上进行测试和调试。因此本设计testbench的模块流程如下:Matlab仿真输出ROM数据激励信号ROM输入CIC插值滤波器对比图5-6 testbench模块的结构图 这种结构更方便结果的对比,而且是可综合模块,可以在FPGA上进行调试。4测试结果 图5-7是N=3,R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论