原创 【博客大赛】基于FPGA的CIC以及补偿滤波器的设计

2014-2-10 17:36 6097 28 30 分类: FPGA/CPLD 文集: 无线算法

基于FPGACIC以及补偿滤波器的设计

KevinWan

 

CIC滤波器

CIC滤波器最早是由Hogenauer提出的,后来出现了不少改进的结构形式。CIC滤波器的特点:

只需要加法器,无需乘法器

无需存储滤波器系数

结构易于拓展

无需外部控制

窗口长度控制截止频率方便

CIC也被称为无乘法运算的滤波器,概念上,滤波器计算可以理解为:一个输入数据到达后,寄存器中的数据向右平移以便接纳新的数据,然后滤波器将所有的存储器的数据相加,最后输出求和结果,可以通过下式描述:

20140210173414303001.jpg
 

可以采用递归的方式实现:

20140210173453962001.jpg
 

 

20140206214857312006.jpg

1 CIC原理结构图

最基本的CIC抽取滤波器是指该滤波器的冲激响应具有如下形式:

20140206214903443007.jpg

WCDMACIC为例,CIC抽取滤波器在f=0处的幅度值为R,单阶CIC滤波器如图所示。称频率区间0fsMCIC滤波器的主瓣,而其他区间为旁瓣。由图可以看见随着频率的增大,旁瓣电平不断减小,单阶CIC滤波器的频率响应特**:

20140206214909318008.jpg

2:单阶CIC的频率响应图

上图为单阶CIC的频率响应图,旁瓣衰减了12DB左右,说明阻带衰减很差,一般很难满足实用要求。为了降低旁瓣电平,可以采用多级CIC滤波器级联的办法来解决,4阶相同窗口长度的CIC的频率特性如下:

20140206214915945009.jpg

34阶相同窗口长度的CIC的频率响应图

上图为4阶相同窗口长度CIC的频率响应图,旁瓣衰减了50DB左右,明显比单阶CIC旁瓣衰减的要多,但还是不够理想,一般采用各个窗口长度不相等的CIC串联,采用4阶窗口不相同的CIC频率响应图:

20140206214923154010.jpg

44阶不同窗口长度的CIC的频率响应图

上图为4阶不同窗口长度CIC的频率响应图,旁瓣衰减了70DB左右,明显比单阶CIC和相同窗口的CIC旁瓣衰减的要多,由此可见4级级联的CIC滤波器具有70 dB左右的阻带衰减,基本能满足实际要求。比较理想,本系统采用这种方式设计多级CIC

20140206214929570011.jpg

5:前端CIC的频率响应图

20140206214936495012.jpg

6:后端CIC的频率响应图

 

CIC补偿FIR滤波器

FIR滤波器

FIR滤波器具有线性相位和稳定两大优点,他的突出特点是单位取样响应h(n)仅有有限个非零值。对于一个N阶的FIR滤波器,其具体形式如下:

20140210173532350001.jpg
 

FIR滤波器的实现方法按照结构主要可以分为三种:

直接结构实现的FIR滤波器

转置结构实现的FIR滤波器

分布式算法实现的FIR滤波器

FIR补偿滤波器

CICM(states)很大时,他很难有一个平坦的通带,在数字下变频中,补偿滤波器放在CIC之后,而在数字上变频中,补偿滤波器作为预处理放在CIC之前,总之,CIC补偿滤波器是应用在多采样率的系统中,是在牺牲采样率的基础上,获得高效的硬件性能。

CIC的频率响应特性为:

20140210173559447001.jpg
 

R很大时,上式公式就可以转换为sinc公式。而补偿滤波器要达到补偿效果,其频率响应就应该是CIC滤波器频率响应的倒数,即:

20140210173624721001.jpg
 

所以,CIC补偿滤波器也可以成为“inverse sinc filter”,在多采样率的系统中,CIC补偿滤波器作为多采样率滤波器,可以是插值或者抽取滤波器,但采样率变化最少是2CIC补偿滤波器Matlab代码如下:

%CIC顶部补偿滤波器

slen=floor(2.2/FS*FLEN);

zv(1:FLEN/SEG_LEN)=1;

for m=1:slen

    zv(m)=(F_tf(slen)/F_tf(m));

end

采用8倍抽取的方式设计FIR补偿滤波器,采用IQ复用的方式,节省硬件乘法器和逻辑资源。

20140206214958408016.jpg

7CIC补偿FIR的频率响应图

源代码:

20140206215005796017.png

文章评论2条评论)

登录后参与讨论

用户377235 2014-3-18 11:12

不是用工具产生的,是代码写的

用户443418 2014-3-11 19:53

CIC补偿滤波器也可以成为“inverse sinc filter” 这个是fdatool里面的那个inverse sinc filter选项吗?就是可以直接用fdatool进行设计吗?
相关推荐阅读
用户211539 2015-09-28 16:21
FPGA采购和技术咨询:3044959554
Altera Xilinx  FPGA采购和技术咨询QQ:3044959554...
用户211539 2014-02-12 23:05
【博客大赛】Altera CycloneIV SerDes应用和仿真
Altera CycloneIV SerDes应用和仿真 KevinWan   基本原理 SerDes是SERializer和DESerializer的英文缩写,即串行收发器。 Altera SerD...
用户211539 2014-02-10 17:29
【博客大赛】SPWM的FPGA设计
SPWM的FPGA设计 KevinWan   SPWM:正弦波脉宽调制,将正弦半波N等分,把每一等分的正弦曲线与横轴所包围的面积用一个与此面积相等的等高矩形脉冲来替代。三角波载波信号U...
用户211539 2014-02-09 15:58
【博客大赛】Altera ALTMEPHY DDR2应用和仿真--基于QuartusII下例化的IP
Altera ALTMEPHY DDR2应用和仿真 --基于QuartusII下例化的IP KevinWan Modelsim仿真(本文是基于QuartusII下例化的IP,非Qsys) 编译如下库:...
用户211539 2014-02-09 15:55
Altera ALTMEPHY DDR2详细介绍(三)
Altera ALTMEPHY DDR2详细介绍(三) KevinWan 接口规则 配置DDR2 SDRAM控制器 DDR2 SDRAM的配置中的大部分参数都是相关数据手册中的参数,通常需要修改的包括...
我要评论
2
28
关闭 站长推荐上一条 /2 下一条