- 26
- 0
- 约3.08千字
- 约 10页
- 2020-02-18 发布于安徽
- 举报
.
Word 文档
CIC插值滤波器的FPGA设计与实现
摘要:基于多速率信号处理原理,设计了用于下变频的CIC插值滤波器,由于CIC滤波器结构只用到加法器和延迟器,没有乘法器,很适合用FPGA来实现,所以本文分析了CIC滤波器的原理,性能及影响参数,借助MATLAB设计符合系统要求CIC滤波器,并利用Modelsim软件建模仿真,验证CIC滤波器性能是否达到要求。
(一)CIC滤波器基本原理
A.CIC滤波器的基本单元
CIC滤波器主要由积分滤波Integrator和梳状滤波Comb两个基本单元部分构成。
典型的CIC滤波器的结构,它由两个基本单元I(积分滤波器)和C(梳状滤波器)级联构成。本设计主要针对插值滤波器,所以插值滤波器的结构示意图如图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仿真
参数、位宽、模块的设计
图2-1 CIC插值滤波器的设计流程图
(三)模型的建立和测试
A.位宽策略
对于数字滤波器,一个不得不考虑的问题是为防止溢出每一级所需的位宽。对于抽取器来说,CIC滤波器的输出增益为
(3-1)
所以,在全精度的情况下,最后一级输出的位宽为
(3-2)
其中表示输入数据的宽度,为了保证精度,每一个积分器和梳状滤波器的输入输出位宽都为。
对于插值器而言,输出增益为
(3-3)
因此,第i级为避免溢出所需要的位宽为
(3-4)
最后一级输出位宽为
(3-5)
在实际当中,当差分延时M=1时,为保证稳定,所有积分器的位宽在理论值的基础上加一。
不仅是滤波器输出的最大可能的位数,也是每一级滤波器的最大可能位数。但有时候,输出位宽需要根据实际需要引入四舍五入或截取的方法来减少位数。简单的做法是直接在输出端做四舍五入或者截取,更复杂点的方式是在每一级都做四舍五入或者进行截取。这自然需要研究一下因四舍五入或截取所引起的滤波器输出端误差,具体的方法就是通过单独研究每一级误差源(指每一级滤波器截取或四舍五入引起的误差)的均值和方差,利用统计特性研究滤波器输出端总的均值和方差。
表 3.1不同参数全精度下的输出位宽
输入位宽
级数N
插值比R
差分延时M
输出位宽
8bit
4
16
1
21bit
8bit
4
16
2
24bit
12bit
3
16
1
21bit
16bit
4
32
1
32bit
16bit
4
64
1
35bit
16bit
4
128
1
38bit
根据实际时的滤波器结构,可以认为误差源有2N+1个:2N个滤波器级因四舍五入或截取所产生的误差源和一个输出寄存器因四舍五入或截取所产生的误差源。
对于CIC滤波器的三个基本单元,都不涉及乘法器,而采样率变换器不使用任何运算单元。
(四)CIC滤波器的matlab仿真
在matlab的程序里,分三部分即根据CIC插值滤波器的原理进行描述。
激励信号采样正弦信号,以及白噪声信号的测试模型。测试信号的点数,正弦信号的频率和采样率可以根据需要设定。
1.仿真结果
图4-1是CIC插值滤波器的频率响应曲线,其中正弦频率fs=200Hz,采样率Fs=800Hz。
图4-1 CIC插值滤波器的频响曲线
图4-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滤
原创力文档

文档评论(0)