CIC滤波器在数字接收机上的应用Word格式文档下载.docx
《CIC滤波器在数字接收机上的应用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《CIC滤波器在数字接收机上的应用Word格式文档下载.docx(10页珍藏版)》请在冰点文库上搜索。
它一般位于信号处理链的前端,靠近A/D。
数字下变频器(DDC)中数字滤波器的主要作用是抽取、低通滤波、一般由FIR滤波器实现。
但是如果系统输人信号的采样频率很高,当以普通FIR滤波器完成低通滤波时,由于FIR滤波器本身的处理效率很低,需要在如此高的采样频率下完成一系列乘加运算,这种方法将对实现抽取处理芯片的处理速度提出非常高的要求,在工程将难以实现。
因此,如何采用结构简单、处理高效的低通滤波器来满足工程实现的具体要求,就是抽取能否实现的关键所在。
CIC滤波器是一种基于零极点相消的FIR滤波器,已经被证明是在高速抽取或插值系统中非常有效的商分解速率滤波器。
1CIC滤波器的基本原理
积分梳状CIC滤波器的结构简单,处理速度高,最大的优点是不需要进行乘法运算,可以对高速数据流进行低通滤波和抽取因子不是2的幕次倍的抽取处理,它常用在多级抽取的第一级。
积分梳状滤波器一般由两个基本的环节组成:
基本递归式积分器(I)和梳状微分器(C)。
积分部分包括N个理想的积分器,每个积分器都是单极点的IIR滤波器。
积分器也可以看成是累加器。
根据Z变换,积分器的传。
函数为:
。
梳状器是对称的FIR滤波器,其对应的传递函数为:
单级CIC滤波器的原理结构如图1所示。
图1单级CIC滤波器的原理结构图
设抽取因子为D,则单级CIC滤波器具有下述特性。
单级CIC的冲击响应具有如下形式:
单级CIC的频率特性为
单级CIC的传递函数为
传递函数H(z)具有递归的IIR滤波器的形式,但实际上,由于D不等于1,所以,可以将H(z)简化为
从上式中可以看出,尽管传递函数具有递归形式,但H(z)仍可表达为FIR滤波器。
需要相同位移的数字FIR滤波器时,一般需要D—1个加法器,而使用CIC滤波器实现相同的功能只需要1个加法器和1个减法器。
单级CIC滤波器的幅频特性如图2所示
图2单级CIC滤彼器的幅频特性
从图2中可以看出,单级CIC滤波器的旁瓣电平比较大,只比主瓣低13.46dB,这也就是意味着此低通滤波器的阻带衰减很差,难以满足系统实用化要求。
为了降低旁瓣电平,可以采用多级CIC滤波器级联的办法来解决。
Q个单级CIC滤波器级联得到的传递函数为
其第一旁瓣抑制为
但是,对于多级的CIC滤波器,还要考虑滤波器的带内衰减的问题,也就是说在信号同带内信号幅值容差不能太大。
在
处,若设该容差为
占,则
单级CIC滤波器的容差为
Q级CIC滤波器的带内容差为
由此可以看出,Q级CIC滤波器的带内容差也是单级CIC滤波器的
倍。
也就是说,多级级联虽然能够增大阻带衰减,但是同时也会导致带内平坦度变差。
所以,一般来说,CIC滤波器的级联数是有限的,不宜太多,一般以5级为限。
当Q=5时,
=5*13.46=67.3dB可见5级级联的CIC滤波器就具有67.3dB的阻带衰减,基本上可
以满足实际工作的需要。
5级CIC滤波器的幅频特性如图3所示
图35级CIC滤波器的幅频特性
从图中可以看出,多级CIC滤波器的旁瓣电平较单级的情况已经大大减少,阻带衰减也有所改善。
在使用级联CIC滤波器时需要注意的一个问题是,有M级CIC滤波器级联的滤波器有一个处理增益
,因此在用数字信号处理器实现CIC滤波器时,每一级必须包含足够的精度,即每一级所使用的运算有效位数都将比前一级要多。
CIC滤波器的基础是完美的零极点抵消,要实现这样一个事实,只有使用精确的积分算法才是唯一可行的。
二进制补码就具有支持无误差算法的能力,系统中的运算是采用二进制补码的形式运行的。
在二进制补码中,算法是以模
执行,因此,虽然累加器会有溢出的情况发生,但二进制补码系统的精确算法会自动地对积分器的溢出进行补偿,依然可以得到正确的输出结果,不会受到累加器溢出的影响。
假设输人数据的宽度为
,N级CIC滤波器级联,内插因子为D,则输出数据宽度为
在实际设计中,每一级积分器和梳状器的位数都用
这样就可以保证最后输出结果的精度。
2CIC滤波器的仿真结果
通过MATLAB中的抽取函数仿真出单级CIC滤波器的频响如图所示
程序如下:
D=5;
%5倍抽取
r=D;
fs=1e5;
%抽样频率
S1_cic=ones(1,D);
[h1,f1]=freqz(ones(1,D),1,1000,fs);
holdon;
%单级CIC可近似为FIR滤波器
plot(f1/(fs/2),20*log10(abs(h1))-max(20*log10(abs(h1))),'
r'
'
LineWidth'
1.4)
ylabel('
\fontsize{12}\bf幅度响应(dB)’)
xlabel('
\fontsize{12}\bf归一化频率(\times\pirad/sample)'
)
grid;
boxon;
axis([01-80,0])
两级级联后频响如下:
S2_cic=conv(ones(1,D),ones(1,D));
%两个单级卷积
[h2,f2]=freqz(S2_cic,1,1000,fs);
plot(f2/(fs/2),20*log10(abs(h2))-max(20*log10(abs(h2))),'
\fontsize{12}\bf幅度响应(dB))
三级级联后频响如下:
S3_cic=conv(conv(ones(1,D),ones(1,D)),ones(1,D));
%三个单级卷积
[h3,f3]=freqz(S3_cic,1,1000,fs);
plot(f3/(fs/2),20*log10(abs(h3))-max(20*log10(abs(h3))),'
\fontsize{12}\bf幅度响应(dB)'
由仿真验证了:
随着滤波器级数的增加阻带衰减逐渐变好,但带内平坦度变差。
以sin函数为例,利用MATLAB中CIC抽取滤波器函数仿真结果如下:
%5倍抽取
hm=mfilt.cicdecim(r);
%CIC抽取滤波器函数
n=0:
10239;
x=sin(2*pi*n*1e3/fs);
%以sin函数为例
y_fi=filter(hm,x);
x=double(x);
y=double(y_fi);
y=y/max(abs(y));
stem(n(1:
22*r)/fs,x(r:
22*r+r-1));
22)/(fs/r),y(3:
24),'
filled'
);
图形如下:
用simulink仿真,在参考其自带的CIC滤波器内波结构模型后。
通过库中的延时、求和等基本库函模型,依照CIC滤波器的基本结构画出框图如下:
将其封装进子模块中:
仿真模块如下图:
本仿真以5倍抽取为通带截止频率为20Hz为例。
其中SineWave1的频率为10Hz,SineWave2的频率为50Hz。
仿真得到波形如下图:
其中第一个波形为SineWave1;
第二个波形为SineWave2;
第三个波形为合成波;
第四个为经过CIC滤波器后的输出波形。
3
结论
CIC滤波器具有结构简单、规整,需要的存储量小的优点。
由于它不需要乘法器,加之滤波器的所有系数均为1,而且利用积分环节减少了中间过程的存储量,因此常常用在高速采样和插值比很大的场合
CIC抽取滤波器实现起来有以下几个优点
(1)只需要加法器,无需一般的FIR滤波器所需的乘法运算;
(2)无需存储滤波器的系数;
(3)抽取器可以放到梳状部分的左侧,减少计算量;
(4)结构规则易于拓展;
(5)无需外部控制;
(6)抽取倍数可变。
这些优点无论是对提高实时性,还是简化硬件都有重要意义,所以CIC滤波器在数字接收机中具有特别重要的位置。
参考文献
【1】姜宇柏,游思晴.软件无线电原理与工程应用.北京:
机械工业出版杜,2006
【2】陈亚勇.MATLAB信号处理详解.北京:
人民邮电出版社,2001