实验五用窗函数法设计FIR数字滤波器一、实验目的:1.掌握用窗函数法设计FIR数字滤波器的原理和方法2.熟悉线性相位FIR数字滤波器特性。3.了解各种窗函数对滤波特性的影响。二、实验原理线性相位特点在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往要求系统具有线性相位特性,因而常采用容易设计成线性相位的有限冲激响应FIR数字滤波器来实现。1.常用窗函数:1)矩形窗10[]0kMwk其他(5.21)2)Hann(汉纳)窗0.5-0.5cos(2/)0[]0kMkMwk其他(5.22)3)Hamming(汉明)窗0.54-0.46cos(2/)0[]0kMkMwk其他(5.23)4)Blackman(布莱克曼)窗0.42-0.5cos(2/)0.08cos(4/)0[]0kMkMkMwk其他(5.24)5)Kaiser(凯泽)窗200(1(12?))[]0()IkMwkkMI(5.25)其中2201(/2)()1!nxIxn下面介绍用窗函数设计FIR滤波器的步骤:a)根据技术要求确定待求滤波器的单位取样响应[]dhk。b)根据对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗函数长度/NAw,A决定于窗口的形式,w表示滤波器的过渡带。c)利用选好的窗函数计算滤波器的单位取样响应[][][]dhkhkwk。d)验算技术指标是否满足要求。设计出来的滤波器的频率响应用10()[]NjjnnHehke来计算。2.Matlab数字信号处理工具箱中常用的FIR数字滤波器设计函数hanning汉纳窗函数。hamming汉明窗函数。blackman布莱克曼窗函数。kaiser凯泽窗函数。kaiserord凯泽窗函数设计法的阶数估计。fir1窗函数法FIR数字滤波器设计:低通、高通、带通、带阻、多频率滤波。fir2频率抽样法FIR数字滤波器设计:任意频率响应。三、实验内容1.分别用矩形窗、hann窗,hamming窗设计一个阶数为9的FIR低通数字滤波器,截止频率3crad。1)画出各种方法设计的数字滤波器的单位脉冲响应。2)画出它们的幅频响应,并比较各滤波器的通带纹波和阻带纹波,有何结论?3)若当输入[]12cos()cos()42xkkk,计算各滤波器的输出并画出其波形。程序过程:clc;clearall;%阶数为M=9,数字截止频率为pi/3;设计II型低通线性相位滤波器M=9;Wc=pi/3;k=0:M;hd=Wc*sinc(Wc*(k-0.5*M))/pi;xk=1+2*cos(pi*k/4)+cos(pi*k/2);figure(1);%以下是矩形窗截断wk=ones(1,M+1);hk=hd.*wk;[H,w]=freqz(hk,1);subplot(311);stem(k,hk,'.');title('矩形窗截断的单位脉冲响应');%以下是hann窗截断wk=hanning(M+1);hk=hd.*wk';[H,w]=freqz(hk,1);subplot(312);stem(k,hk,'.');title('hanniing窗截断的单位脉冲响应');%以下是hamming窗截断wk=hamming(M+1);hk=hd.*wk';[H,w]=freqz(hk,1);subplot(313);stem(k,hk,'.');title('hamming窗截断的单位脉冲响应');figure(2);%以下是矩形窗截断wk=ones(1,M+1);hk=hd.*wk;[H,w]=freqz(hk,1);subplot(311);plot(w,20*log10(abs(H)));grid;title('矩形窗截断的幅频响应');%以下是hann窗截断wk=hanning(M+1);hk=hd.*wk';[H,w]=freqz(hk,1);subplot(312);plot(w,20*log10(abs(H)));grid;title('hanniing窗截断的幅频响应');%以下是hamming窗截断wk=hamming(M+1);hk=hd.*wk';[H,w]=freqz(hk,1);subplot(313);plot(w,20*log10(abs(H)));grid;title('hamming窗截断的幅频响应');figure(3);subplot(221);stem(k,xk,'.');title('输入x[k]');%以下是矩形窗截断wk=ones(1,M+1);hk=hd.*wk;subplot(222);stem(k,xk.*hk,'.');title('矩形窗滤波后输出');%以下是hann窗截断wk=hanning(M+1);hk=hd.*wk';subplot(223);stem(k,xk.*hk,'.');title('hanniing窗滤波后输出');%以下是hamming窗截断wk=hamming(M+1);hk=hd.*wk';subplot(224);stem(k,xk.*hk,'.');title('hamming窗滤波后输出');(1)(2)(3)2.分别用blackman窗和kaiser窗法设计一个满足下列指标的线性相位的FIR低通滤波器0.4,0.5,0.6,45ppssradAdBradAdB,画出所设计的滤波器的幅频响应。简单评述两种窗的设计结果。实现过程:%分别用blackman窗和kaiser窗法设计一个满足下列指标的线性相位的FIR低通滤波器clc;clearall;Wp=0.4*pi;Ws=0.6*pi;Ap=0.5;As=45;Wc=(Wp+Ws)/2;%Blackman窗的近似过渡带宽度为11.4pi/N;窗函数的长度NN=ceil(11.4*pi/(Ws-Wp));%N=58,滤波器阶次M=N-1=57可以设计II型低通线性相位系统M=N-1;k=0:M;hd=Wc*sinc(Wc*(k-0.5*M))/pi;wk=blackman(N);hk=hd.*wk';[H,w]=freqz(hk,1);subplot(211);plot(w/pi,20*log10(abs(H)));grid;xlabel('Normalizedfrequency');ylabel('GainindB');title('blackman窗设计的FIR滤波器');%kaiser窗设计subplot(212);f=[Wp/pi,Ws/pi];a=[1,0];dev=[1-10^(-0.05*Ap),10^(-0.05*As)];[M1,Wc1,beta,ftype]=kaiserord(f,a,dev);wk1=kaiser(M1+1,beta);hk1=fir1(M1,Wc1,ftype,wk1);[H1,w1]=freqz(hk1,1);plot(w1/pi,20*log10(abs(H1)));grid;xlabel('Normalizedfrequency');ylabel('GainindB');title('kaiser窗设计的FIR滤波器');比较:kaiser窗的过渡带较长,在阻带的衰减波动逐渐减小;利用blackman窗设计出的低通滤波器阻带衰减最大。3.用频率取样法设计一个44M的Ⅰ型线性相位带通FIR滤波器。带通滤波器的通带截止频率分别为120.3,0.5ppradrad。%用频率取样法设计一个M=44的Ⅰ型线性相位带通FIR滤波器。%带通滤波器的通带截止频率分别为clc;clearall;Wp1=0.3*pi;Wp2=0.5*pi;M=44;m=0:M/2;Wm=2*pi.*m/(M+1);%设计理想滤波器的幅度函数Ad[m]mtr1=floor(Wp2*(M+1)/(2*pi))+2;Ad1=double([Wm=Wp2]);mtr2=ceil(Wp1*(M+1)/(2*pi));Ad2=double([Wp1=Wm]);Ad=Ad1.*Ad2;Ad(mtr1)=0.38;Ad(mtr2)=0.28;Hd_1=Ad.*exp(-j*Wm*M/2);Hd_2=conj(fliplr(Hd_1(2:M/2)));Hd=[Hd_1,Hd_2];hk=real(ifft(Hd));w=linspace(0,pi,1000);H=freqz(hk,1,w);%归一化频率下的幅频响应plot(w/pi,abs(H));grid;xlabel('Normalizedfrequency');ylabel('GainindB');title('频率取样法设计的FIR滤波器');4.已知理想低通滤波器为1()0ccjdHeothers,矩形窗函数[][]NNwkRk1)求理想低通滤波器的单位脉冲响应[]dhk,并画出[]dhk。2)当16N时,画出矩形窗函数的幅频响应()jWe。3)[][][]dNhkhkwk,画出加窗处理以后的低通滤波器[]hk的幅频响应()jHe。实现过程:clc;clearall;OmegaC=0.5*pi;M=15;k=0:M;hd=OmegaC*sinc(OmegaC*(k-0.5*M))/pi;subplot(311);stem(k,hd,'.');grid;title('理想低通滤波器的单位脉冲响应');wk=ones(1,M+1);w=linspace(-pi,pi,1000);Wm=freqz(wk,1,w);subplot(312);plot(w/pi,abs(Wm));grid;title('矩形窗函数的幅频响应N=16');hk=hd.*wk;w=linspace(-pi,pi,1000);H=freqz(hk,1,w);subplot(313);plot(w/pi,abs(H));grid;title('加窗处理以后的低通滤波器的幅频响应');四、思考题1.FIR滤波器是否需要考虑稳定性问题?为什么?答:不需要;FIR滤波器的单位脉冲响应是有限长的,系统总是稳定的2.窗函数法和频率抽样法的优缺点是什么?答:窗函数法是利用有限长的单位脉冲响应h[k]逼近无限长的理想滤波器的hd[k],从而使设计的FIR滤波器的频率响应逼近理想滤波器的频率响应频率取样法是使设计的M阶FIR滤波器的频率响应在M+1个取样点上与理想滤波器的频率响应相等,不足的是设计出的FIR滤波器的幅度函数在通带边界存在过冲,在阻带也有较大波动。窗函数设计FIR数字滤波器是傅里叶变换的典型运用,而频率采样法设计的指导思想是频域采样定理和内插公式,其阻带衰减的改善是通过增加过渡采样点实现的,为了保证过渡带宽的不变,滤波器的采样点数也要相应增加,计算复杂度也随之增加。3.结合实验内容4,谈谈你对泄漏现象与Gibbs(吉伯斯)现象的理解。