徐 欢,胡津津,袁 媛
(安徽电子信息职业技术学院 电子信息工程系,安徽 蚌埠 233030)
随着计算机和微电子等学科的飞速发展,数字信号处理已经成为当今极为重要的学科和技术,应用范围也越来越广泛.数字滤波器的设计和应用在数字信号处理中有着非常重要的地位.数字滤波器按照长度分类可以分成有线长单位脉冲响应(FIR)滤波器,和无限长单位脉冲响应(IIR)滤波器.FIR滤波器相比较于IIR滤波器具有更多的优点,如线性相位特性、系统的稳定性等[1].
MATLAB软件是mathworks公司开发的一种设计软件,优点很多,可以进行数值运算、符号运算和图形处理等功能,广泛用于各领域的分析、设计和复杂运算.随着MATLAB软件的不断更新,特别是MATLAB的信号处理工具箱(FDATool)的推出,现在MATLAB软件已经成为数字信号处理应用中用来分析和仿真设计的重要工具[2].本论文主要讨论利用MATLAB软件,结合窗函数法设计FIR数字滤波器的过程.
实际实现的滤波器的单位取样响应为h(n),长度为N,系统函数为H(z),显然我们用一个有限长的序列h(n)去代替理想滤波器的单位取样响应hd(n)肯定会引起误差,这就是所谓的吉布斯效应,该效应引起通带内和阻带内的波动性,这是由于直接将hd(n)截断引起的,也称为截断效应.窗函数法又称为傅立叶级数法,选取的傅立叶级数的项数越多,引起的误差就越小,但是随着项数增多也会使得成本和体积加大,所以应该在满足技术要求的情况下尽量减少h(n)的长度.
窗函数的设计法是根据给定需要设计的滤波器的技术指标参数,选择滤波器的阶数N和合适的窗函数,设h(n)=hd(n)ω(n),ω(n)表示窗函数.
窗函数设计法的条件是:
(1)通带尽可能窄;
(2)阻带内的波动性可能小,增强阻带的衰减.
实际常用的窗函数有矩形窗、三角形窗、汉宁窗、哈明窗、布莱克曼窗和凯赛—贝塞尔窗,设计时可参考这六种窗函数基本参数,如表1.
表1 六种窗函数的基本参数
窗函数设计FIR滤波器的步骤如下:
(1)根据指标要求的频率参数,确定逼近理想滤波器的频率响应Hd(ejω);
(3)根据指标给出的滤波器幅度要求和过度带宽的要求,选择窗函数和窗长度N,原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数;
(4)加窗处理,计算滤波器的单位取样响应h(n),h(n)=hd(n)ω(n);
(5)检验h(n)的频响H(ejω)是否满足Hd(ejω)的要求,
(6)若满足要求,根据h(n)画出网络结构图,若不满足,重复(3)(4)(5)(6),一般N需要经过多次试探.
用窗函数法设计一个FIR带通滤波器,指标如下:
低端阻带截止频率ω1s=0.2π,低端通带截止频率ω1p=0.35π,高端通带截止频率ωhp=0.65π,高端阻带截止频率ωhs=0.8π,通带最大衰减Rp=1dB,阻带最小衰减Rs=40dB,绘出h(n)及其幅频特性曲线.
根据设计要求,设计的是带通滤波器,所以参数为ωc=[ωp/π,ωnp/π],根据阻带最小衰减Rs=40dB,选择汉宁窗,窗口长度N由过度带宽B=0.15π决定,Blackman窗设计的滤波器的过度带宽为8π/M,故N取54.因N=M+1,所以滤波器阶数M=53.hanning窗设计程序示例如下:
clear all;
wls=0.2*pi;
wlp=0.35*pi;
whp=0.65*pi;
wc=[wlp/pi,whp/pi];
B=wlp-wls;
N=ceil(8/0.15);
n=0:N-1;
window=hanning(N);
[h1,w]=freqz(window,1);
subplot(2,2,1);stem(window);
axis([0 60 0 1.2]);
grid;
xlabel('n');
title('Hanning窗函数');
subplot(2,2,2);plot(w/pi,20*log(abs(h1)/abs(h1(1))));
axis([0 1 -350 0]);
grid;
xlabel('w/pi');
ylabel('幅度(dB)');
title('Hanning窗函数的频谱');
hn=fir1(N-1,wc,hanning (N));
[h2,w]=freqz(hn,1,512);
subplot(2,2,3);stem(n,hn);
axis([0 60 -0.25 0.25]);
grid;
xlabel('n');
ylabel('h(n)');
title('Hanning窗函数的单位脉冲响应');
subplot(2,2,4);
plot(w/pi,20*log(abs(h2)/abs(h2(1))));
grid;
xlabel('w/pi');
ylabel('幅度(dB)');
title('Hanning窗设计带通滤波器的幅频响应');
仿真结果如图1:
图1 汉宁窗设计带通滤波器的仿真
从图1可以看出,汉宁窗设计的带通滤波器带通下限截止频率大概为0.35π,带通上线截止频率大概为0.65π,对在通带频率之外的频率信号的幅度衰减很厉害,以致信号不能通过滤波器,达到了选频滤波的目的.
利用MATLAB语言设计FIR数字滤波器,由于在设计过程中方便、快捷,所以在很大程度上减轻了设计者的工作量.在设计过程中可以随时改变设计参数,根据仿真结果检验各滤波器
指标是否满足,因此在设计过程中为设计者合理设计滤波器提供了可靠的依据.
参考文献:
[1]丁玉美,高西全.数字信号处理[M].西安:西安电子科技大学出版社,2000.
[2]陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用[M].北京:电子工业出版社,2006.
[3]胡广书.数字信号处理——理论算法与实现[M].北京:清华大学出版社,2003.