多速率信号处理-CIC滤波器

1 基本原理

级联积分梳状滤波器(Cascade Intergrator Comb)是多速率信号处理中一种十分高效的数字滤波器。CIC滤波器具有低通滤波器的特性,同时具有以下优势:

  • 滤波器系数全为1,设计时不需要存储滤波器系数,节省存储单元,同时使得滤波时只需要加法器和累加器,不需要乘法器
  • 结构规则,可灵活设置插值因子而不影响整体结构

1.1 积分器

积分器结构为

2024after4202409052106726.png

时域上可表示为

频域上可表示为

可得积分器的幅度谱为

从公式可以得出积分器只有极点而无零点,且对直流信号具有无限大的增益。

1725542139077.png

1.2 梳状滤波器

时域上可表示为

其中

  • R 是插值因子或抽取因子
  • M 是微分时延

频域上可表示为

幅度谱为

1725542829180.png

可知梳状滤波器只有零点,没有极点

若R=8、M=1,则结构为

1725542752856.png

由此可知单级CIC滤波器的幅度谱为

时,即时可以确定零点

时,可得此时的幅频响应为

从而实现了零极点相消

单级CIC滤波器在,所以主瓣区间为,其余都为旁瓣,第一旁瓣电平为

因此旁瓣抑制为

时,旁瓣抑制为

单级CIC滤波器的阻带衰减为

带内容差(通带波纹)为

其中b为带宽比例因子

单级CIC滤波器的旁瓣电平较高,可通过多级CIC级联改善。

1725886131150.png

对于N级CIC级联滤波器,旁瓣抑制、阻带衰减、带内容差可表示为

增大CIC滤波器阶数的话,可以增加旁瓣抑制和阻带衰减,但是会导致带内容差变大。因此考虑到通带性能,通常选择。在N不变的情况下,带宽比例因子b越小,CIC滤波器的通带和阻带特性也越好,因此CIC一般位于插值系统的最后一级(输入速率最高)

2 位增长问题

由多级滤波器的幅频响应可知,当

由此可知多级CIC滤波器可以引起的幅度增益的最大值为

假设输入的数据为有符号数,位宽为,取值范围为,则输出的最大值为

因此输出的最大位宽为

在FPGA设计时,要合理地设置输出信号的位宽,防止数据的溢出,为了节省资源,也可以在每一级适当的进行截位

3 Matlab设计CIC补偿滤波器

由于CIC滤波器通带内不平坦,因此需要在前级加入CIC补偿滤波器。Matlab中的对应函数为**fdesign.ciccomp,**语法如下

1
2
3
4
d = fdesign.ciccomp
d = fdesign.ciccomp(d,nsections,rcic)
d = fdesign.ciccomp(...,spec)
h = fdesign.ciccomp(...,spec,specvalue1,specvalue2,...)

其中梳状滤波器的延时长度为d,滤波器阶数为nsections,CIC速率转化因子为rcic。

3.1 example

1
2
3
4
h = fdesign.ciccomp;
set(h,NumberOfSections=5,DifferentialDelay=1);
cicComp = design(h,'equiripple',SystemObject=true);
filterAnalyzer(cicComp)

多速率信号处理-CIC滤波器
https://www.moerjielovecookie.icu/2025/04/27/多速率信号处理-CIC滤波器/
作者
Sawen Moerjie
发布于
2025年4月27日
许可协议