资源描述:
《FIR滤波器的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三:FIR数字滤波器的设计实验目的1)掌握用窗函数法,频率采样法及优化设计法设计FIR滤波器的原理及方法。2)熟悉线性相位FIR滤波器的幅频特性和相频特性。3)了解各种不同窗函数对滤波器性能的影响。一、实验内容1.N=45,计算并画出矩形窗、汉明窗、布莱克曼窗的归一化的幅度谱,并比较各自的主要特点。clearall;N=45;wn1=kaiser(N,0);wn2=hamming(N);wn3=blackman(N);[h1,w1]=freqz(wn1,N);[h2,w2]=freqz(wn2,N);[h3,w3]=freqz(wn3
2、,N);plot(w1/pi,20*log10(abs(h1)),'r-',w2/pi,20*log10(abs(h2)),'b-',w3/pi,20*log10(abs(h3)),'g-');axis([0,1,-120,10]);grid;xlabel('归一化频率/pi');ylabel('幅度/dB');title('三种窗口函数');legend('矩形窗','汉明窗','布莱克曼窗',3);分析:阻带衰减和过渡带带宽是相互矛盾的,矩形窗过渡带带宽窄,但是阻带衰减比较少;布莱克曼窗过渡带带宽宽,但是阻带衰减比较大1.N=15,
3、带通滤波器的两个通带边界分别是ω1=0.3π,ω2=0.5π。用汉宁窗设计此线性相位带通滤波器,观察它的实际3dB和20dB带宽。N=45,重复这一设计,观察幅频和相位特性的变化,注意长度N变化的影响。N=15;h=fir1(N-1,[0.30.5],'bandpass',hanning(N));figure(1)freqz(h,1);axis([0,1,-60,10]);title('N=15,汉宁窗');N=45;h=fir1(N-1,[0.30.5],'bandpass',hanning(N));figure(2)freqz(h,1
4、);axis([0,1,-60,10]);title('N=45,汉宁窗');结论:增加窗口函数的长度能够在幅度频谱和相位频谱上获得较好的特性。但代价是增加了计算量和系统的阶数。1.分别改用矩形窗和布莱克曼窗,设计(2)中的带通滤波器,观察并记录窗函数对滤波器幅频特性的影响,比较三种窗的特点。clearall;%矩形窗N=15;h=fir1(N-1,[0.30.5],'bandpass',kaiser(N,0));[h1,w1]=freqz(h,1);subplot(2,1,1);plot(w1/pi,20*log10(abs(h1)))
5、;axis([0,1,-60,10]);grid;xlabel('归一化频率/pi');ylabel('幅度/dB');title('N=15,矩形窗');N=45;h=fir1(N-1,[0.30.5],'bandpass',kaiser(N,0));[h1,w1]=freqz(h,1);subplot(2,1,2);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-60,10]);grid;xlabel('归一化频率/pi');ylabel('幅度/dB');title('N=45,矩形窗');cl
6、earall;%布莱克曼窗N=15;h=fir1(N-1,[0.30.5],'bandpass',blackman(N));[h1,w1]=freqz(h,1);subplot(2,1,1);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-60,10]);grid;xlabel('归一化频率/pi');ylabel('幅度/dB');title('N=15,布莱克曼窗');N=45;h=fir1(N-1,[0.30.5],'bandpass',blackman(N));[h1,w1]=freqz(h,1
7、);subplot(2,1,2);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-60,10]);grid;xlabel('归一化频率/pi');ylabel('幅度/dB');title('N=45,布莱克曼窗');总结:同实验内容1的结论,除此之外,利用各窗口函数构造的带通滤波器的特性也有些差别。汉宁窗在这方面具有较好的特性。1.用Kaiser窗设计一专用线性相位滤波器,N=40,当β=4、6、10时,分别设计、比较它们的幅频和相频特性,注意β取不同值时的影响。clearall;N=40;f=[00
8、.20.20.40.40.60.60.80.81];a=[0011001100];beta=4;h=fir2(N-1,f,a,kaiser(N,beta));[h1,w1]=freqz(h,1