1、用窗函数法设计FIR数字滤波器用窗函数法设计FIR数字滤波器一. 实验目的(1) 掌握用窗函数法设计FIR数字滤波器的原理与方法。(2) 熟悉线性相位FIR数字滤波器的特性。(3) 了解各种窗函数对滤波特性的影响。二. 实验内容和要求(1) 复习用窗函数法设计FIR数字滤波器一节内容,阅读本实验原理,掌握设计步骤。(2) 用升余弦窗设计一线性相位低通FIR数字滤波器,截止频率。窗口长度N =15,33。要求在两种窗口长度情况下,分别求出,打印出相应的幅频特性和相频特性曲线,观察3dB带宽和20dB带宽。总结窗口长度N 对滤波器特性的影响。设计低通FIR数字滤波器时,一般以理想低通滤波特性为逼近
2、函数,即其中(3) ,用四种窗函数设计线性相位低通滤波器,绘制相应的幅频特性曲线,观察3dB带宽和20dB带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。三. 实验方法、步骤及结果测试如果所希望的滤波器的理想的频率响应函数为,则其对应的单位脉冲响应为 (4.1)窗函数设计法的基本原理是用有限长单位脉冲响应序列逼近。由于往往是无限长序列,而且是非因果的,所以用窗函数将截断,并进行加权处理,得到: (4.2)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为 (4.3)式中,N为所选窗函数的长度。我们知道,用窗函数法设计的滤波器性能取决于窗函数的类型及窗口长度N的取值。设
3、计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表4.1。表1 各种窗函数的基本参数窗函数旁瓣峰值幅度/dB过渡带宽阻带最小衰减/dB矩形窗-134/N-12三角形窗-258/N-25汉宁窗-318/N-44哈明窗-418/N-53不莱克曼窗-5712/N-74凯塞窗(=7.865)-5710/N-80这样选定窗函数类型和长度N之后,求出单位脉冲响应,并按照式(4.3)求出。是否满足要求,要进行演算。一般在尾部加零使长度满足2的整数次幂,以便用FFT计算。如果要观察细节,补零点数增多即可。如果不满足要求,则要
4、重新选择窗函数类型和长度N ,再次验算,直至满足要求。如果要求线性相位特性,则还必须满足根据上式中的正、负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。要根据所设计的滤波特性正确选择其中一类,例如,要设计线性相位低通特性,可以选择这一类,而不能选择这一类。主程序框图如图4.1所示。其中幅度特性要求用dB表示。设画图时,用打印幅度特性。第k点对应的频率。为使曲线包络更接近的幅度特性曲线,DFT变换区间要选大些。例如窗口长度N=33时,可通过在末尾补零的方法,使长度变为64,再进行64点DFT,则可以得到更精确的幅度衰减特性曲线。下面给出MATLAB主程序:%实验四,用窗函数法设计FIR数字
5、滤波器b=1;close all;i=0;while(b); temp=menu(选择窗函数长度N,N=10,N=15,N=20,N=25,N=30,N=33,N=35,N=40,N=45,N=50,N=55,N=60,N=64); menu1=10,15,20,25,30,33,35,40,45,50,55,60,64; N=menu1(temp); temp=menu(选择逼近理想低通滤波器截止频率Wc,Wc=pi/4,Wc=pi/2,Wc=3*pi/4,Wc=pi,Wc=0.5,Wc=1.0,Wc=1.5,Wc=2.0,Wc=2.5,Wc=3.0); menu2=pi/4,pi/2,3*
6、pi/4,pi,0.5,1,1.5,2,2.5,3; w=menu2(temp); n=0:(N-1); hd=ideal(w,N); %得到理想低通滤波器 k=menu(请选择窗口类型:,boxcar,hamming,hanning,blackman); if k=1 B=boxcar(N); string=Boxcar,N=,num2str(N); else if k=2 B=hamming(N); string=Hamming,N=,num2str(N); else if k=3 B=hanning(N); string=Hanning,N=,num2str(N); else if k=
7、4 B=blackman(N); string=Blackman,N=,num2str(N); end end end end h=hd.*(B); %得到FIR数字滤波器 H,m=freqz(h,1,1024,whole); %求其频率响应 mag=abs(H); %得到幅值 db=20*log10(mag+eps)/max(mag); pha=angle(H); %得到相位 i=i+1; figure(i) subplot(2,2,1); n=0:N-1; stem(n,h,.); axis(0,N-1,-0.1,0.3); hold on; n=0:N-1; x=zeros(N); pl
8、ot(n,x,-); xlabel(n); ylabel(h(n); title(实际低通滤波器的h(n); text(0.3*N),0.27,string); hold off; subplot(2,2,2); plot(m/pi,db); axis(0,1,-100,0); xlabel(w/pi); ylabel(dB); title(衰减特性(dB); grid; subplot(2,2,3); plot(m,pha); hold on; n=0:7; x=zeros(8); plot(n,x,-); title(相频特性); xlabel(频率(rad); ylabel(相位(rad
9、); axis(0,3.15,-4,4); subplot(2,2,4); plot(m,mag); title(频率特性); xlabel(频率W(rad); ylabel(幅值); axis(0,3.15,0,1.5); text(0.9,1.2,string); b=menu(Do You want To Continue ?,Yes,No); if b=2 b=0; endendtemp=menu(Close All Figure ?,Yes,No);if temp=1 close allend%实验中的子函数:产生理想低通滤波器单位脉冲响应hd(n)function hd=ideal
10、(w,N);alpha=(N-1)/2;n=0:(N-1);m=n-alpha+eps;hd=sin(w*m)./(pi*m);程序运行结果:运行程序,根据实验内容要求和程序提示选择你要进行的实验参数。三个实验参数选定后,程序运行输出用所选窗函数设计的实际FIR低通数字滤波器的单位脉冲响应h(n)、幅频衰减特性(20lg|H(ejw)|)、相频特性及幅频特性|H(ejw)|的波形,h(n)和|H(ejw)|图中标出了所选窗函数类型及其长度N值。对四种窗函数(N=15和N=33)的程序运行结果如图4-2到图4-9所示,由图可以看出用各种窗函数设计的FIR滤波器的阻带最小衰减及过渡带均与教材中一致。在通带内均为严格相位特性。图6-2 矩形窗(N=15)图6-3 矩形窗(N=33)图6-4 哈明窗(N=15)图6-5 哈明窗(N=33)图6-6 汉宁窗(N=15)图6-7 汉宁窗(N=33)图6-8 布莱克曼窗(N=15)图6-9 布莱克曼窗(N=33)
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2