CIC滤波器

CIC滤波器是无线通信的常用模块,一般用于数字下变频(DDC)核数字上变频(DUC)系统。CIC滤波器结构简单,没有乘法器,只有加法器、积分器和寄存器,可以实现高速滤波,常用在输入采样率最高的第一级。

1.单级CICI滤波器
CIC滤波器包括两个基本组成部分:积分部分和梳妆部分,如图所示:

CIC滤波器

积分部分的积分器是单极点的IIR滤波器,并且反馈系数为1,状态方程为:

y(n)=y(n1)+x(n)y(n)=y(n−1)+x(n)

上述的积分器也可以看做是累加器。根据Z变换,积分器的传输函数为:
H1(z)=11z1H1(z)=11−z−1

梳妆器是一份FIR滤波器,其状态方程为:

y(n)=x(n1)+x(nDM)y(n)=x(n−1)+x(n−DM)

式中,D是设计参数,称为微分延迟,其传输函数为:
Hc(z)=1zDMHc(z)=1−z−DM

那么:单级CIC滤波器的传递函数为:
H(z)=11z1(1zDM)H(z)=11−z−1(1−z−DM)

z=ejwz=ejw,带入上式,可以得到传递函数的幅频响应为:
|H(ejw)|=|11ejw(1ejwDM)|=|ejwDM/2(ejwDM/2ejwDM/2)ejw/2(ejw/2ejw/2)|=|ejw(DM1)/2||cos(wDM/2)+jsin(wDM/2)cos(wDM/2)+jsin(wDM/2)cos(w/2)+jsin(w/2)cos(w/2)+jsin(w/2)|=|sin(wDM/2)sin(w/2)||H(ejw)|=|11−e−jw(1−e−jwDM)|=|e−jwDM/2(ejwDM/2−e−jwDM/2)e−jw/2(ejw/2−e−jw/2)|=|e−jw(DM−1)/2|∗|cos(wDM/2)+jsin(wDM/2)−cos(wDM/2)+jsin(wDM/2)cos(w/2)+jsin(w/2)−cos(w/2)+jsin(w/2)|=|sin(wDM/2)sin(w/2)|

CIC滤波器的幅频响应特性如图所示,其中[0,2π/DM]为主瓣,其他的区间称为旁瓣。
CIC滤波器幅频特性

从幅频响应特性可以看到,主瓣的最大值为DM(在w=0w=0时),旁瓣的最大值在w=3π/DMw=3π/DM处 取得
|H(ejw)|w=3πDM=|1sin(3π/2DM)||H(ejw)|w=3πDM=|1sin(3π/2DM)|

它与主瓣电平的差值为:
α=20lg(DM1/sin(3π/2DM))=20lg(DMsin(3π/2DM))α=20lg(DM1/sin(3π/2DM))=20lg(DM∗sin(3π/2DM))

根据在θθ0~45°45°时,θsinθθ≈sinθ,可得:
α=20lg(3π2)=13.36dBα=20lg(3π2)=13.36dB

可见单级CIC滤波器的旁瓣电平较大,阻带衰减较差。为降低旁瓣电平,可以采用多级CIC滤波器级联办法来实现。

2.多级CICI滤波器
一个N级CIC抽取滤波器系统传递函数为:

H(z)=(1zDM1z1)NH(z)=(1−z−DM1−z−1)N

在N级级联时,阻带衰减为单级衰减的N倍,即13.46×N(dB)。
CIC滤波器(Cascaded Integrator-Comb Filter)是一种高效的线性相位滤波器,广泛应用于数字信号处理领域,特别是在需要进行抽取(降采样)或插值(升采样)的场景中。它由积分器(Integrator)和梳状滤波器(Comb Filter)组成,通常以级联形式实现,能够在不使用乘法器的情况下完成滤波功能,因此非常适合在FPGA或ASIC等硬件平台上实现。 ### CIC滤波器的基本原理 CIC滤波器的基本结构可以分为两个部分:积分器和梳状滤波器。对于一个N阶CIC滤波器,通常由N个积分器和N个梳状滤波器组成。在抽取模式下,积分器先对输入信号进行积分操作,然后通过一个抽取器降低采样率,最后由梳状滤波器对信号进行差分处理。 其基本传递函数为: $$ H(z) = \left(\frac{1 - z^{-D}}{1 - z^{-1}}\right)^N $$ 其中,$D$ 是差分器的延迟因子,$N$ 是滤波器的阶数。该表达式说明了CIC滤波器在频域中的响应特性,其幅频响应类似于一个低通滤波器,具有较大的通带增益和一定的带外衰减[^1]。 ### CIC滤波器的增益与位宽设计 CIC滤波器的一个显著特点是其在直流(零频)处具有最大增益,增益值为: $$ G = (R \cdot D)^N $$ 其中,$R$ 是抽取或插值因子,$D$ 是延迟单元的长度,$N$ 是滤波器阶数。由于没有乘法器,信号在各级滤波器中会不断被放大,因此必须对信号的位宽进行扩展,以防止溢出。 例如,对于输入信号为 $x$ 位宽的情况,各级滤波器的位宽应扩展为: $$ x + N \cdot \log_2(R \cdot D) $$ 在FPGA实现中,通常采用向上取整的方式计算扩展位宽,以确保足够的动态范围[^3]。 ### CIC滤波器的硬件实现结构 CIC滤波器的硬件实现主要包括以下模块: 1. **积分器(Integrator)**:执行累加操作,结构为 $y(n) = y(n-1) + x(n)$。 2. **抽取器(Decimator)**:在积分器之后插入抽取操作,降低输出采样率。 3. **梳状滤波器(Comb Filter)**:执行差分操作,结构为 $y(n) = x(n) - x(n-D)$。 在Verilog HDL中,积分器可以表示为: ```verilog always @(posedge clk or negedge rst_n) begin if (!rst_n) integrator <= 0; else integrator <= integrator + input_data; end ``` 梳状滤波器的实现则需要一个延迟线: ```verilog reg [WIDTH-1:0] delay_line [0:D-1]; always @(posedge clk or negedge rst_n) begin if (!rst_n) delay_line <= '{default: 0}; else delay_line[0] <= integrator_out; for (i = 1; i < D; i = i + 1) delay_line[i] <= delay_line[i - 1]; end assign comb_out = integrator_out - delay_line[D-1]; ``` ### CIC滤波器的应用 CIC滤波器主要应用于以下场景: - **数字下变频系统(DDC)**:用于抽取前的抗混叠滤波。 - **Delta-Sigma ADC后处理**:适用于高分辨率、低带宽的模数转换系统。 - **软件无线电(SDR)**:用于灵活的采样率转换[^1]。 在MATLAB中,可以通过`freqz`函数分析其频率响应,例如: ```matlab [h, f] = freqz(ones(1, D), 1, 1000, fs); ``` 该语句用于计算长度为 $D$ 的FIR滤波器的频率响应,帮助设计者评估滤波器性能[^2]。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值