您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 用窗函数法设计FIR数字滤波器
用窗函数法设计FIR数字滤波器一、实验目的1.掌握用窗函数法设计FIR数字滤波器的原理和方法。2.熟悉线性相位FIR数字滤波器特征。3.了解各种窗函数对滤波特性的影响。二、实验仪器微型计算机matlab软件三、实验原理和方法如果所希望的滤波器的理想频率响应函数为)(jdeH,则其对应的单位脉冲响应为)(nhd=21deeHjjd)((2-1)窗函数设计法的基本原理是用有限长单位脉冲响应序列)(nh逼近)(nhd。由于)(nhd往往是无限长序列,且是非因果的,所以用窗函数)(n将)(nhd截断,并进行加权处理,得到:)(nh=)(nhd)(n(2-2))(nh就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数)(jdeH为:)(jdeH=10)(Nnjenh(2-3)式中,N为所选窗函数)(n的长度。由第七章可知,用窗函数法设计的滤波器性能取决于窗函数)(n的类型及窗口长度N的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见第七章。这样选定窗函数类型和长度N后,求出单位脉冲响应)(nh=)(nhd·)(n,并按式(2-3)求出)(jeH。)(jeH是否满足要求,要进行验算。一般在)(nh尾部加零使长度满足于2的整数次幂,以便用FFT计算)(jeH。如果要观察细节,补零点数增多即可。如果)(jeH不满足要求,则要重新选择窗函数类型和长度N,再次验算,直至满足要求。如果要求线性相位特性,则)(nh还必须满足)1()(nNhnh(2-4)根据上式中的正负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。要根据设计的滤波特性正确选择其中一类。例如,要设计线性低通特征,可选择)1()(nNhnh一类,而不能选)1()(nNhnh一类。四、实验内容1.复习用窗函数法设计FIR数字滤波器一节内容,阅读本实验原理掌握设计步骤。2.编写程序①编写能产生矩型窗、哈明窗、汉宁窗、莱克曼窗的窗函数子程序。②编写主程序。主程序框图如图设:)()(nhDFTkH(2-4))()()(KjHkHkHIR(2-5))()()(22kHkHkHIR(2-6)画图时,20lg)(kH打印幅度特性。第k点对应的频率kNk2。为使曲线包络更接近)(jeH的幅度特性曲线,DFT变换区间要选大些。例如窗口长度N=33时,可通过在)(nh末尾补零的方法,使长度变为64,再进行4点DFT,则可得到更精确的幅度衰减特性曲线。3.上机实验内容开始读入窗口长度N计算hd(n)调窗函数子程序求ω(n)计算h(n)=hd(n)*ω(n)调FFT子程序对h(n)进行DFT调绘图子程序绘制幅频特性曲线相位特性曲线结束计算幅度特性和相位特性用四种窗函数设计线性相位低通FIR数字滤波器,截止频率4crad,N=256。绘制相应的幅频特性曲线,观察3dB带宽和20dB带宽以及阻带最小衰减,比较四种窗函数对滤波器特性的影响。设计低通FIR数字滤波器时,一般以理想低通滤波特性为逼近函数)(jdeH,即ccjjdeeH,0,)(其中21N(2-8))()(sin21)(21)(nndeedeeHnhcnjjnjjddcc(2-9)五、思考题1.如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?写出设计步骤。2.定性说明本实验中3dB截止频率的理论值在什么位置?是否等于理想低通的截止频率ω?3.如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为1和2,试求理想带通的单位脉冲响应)(nh。六、实验报告要求1.简述实验目的及原理。2.按照实验步骤及要求,比较各种情况下的滤波性能,说明窗口长度N和窗函数类型对滤波特性的影响。3.总结用窗函数法设计FIR滤波器的主要特点。4.简要回答思考题。参考程序1:N=input('窗宽度N=');k=input('窗型:1.矩形窗,2.hanning(升余弦窗),3.hamming(改进的升余弦窗),4.Blackman请选择:');subplot(2,2,1);w=pi/5;a=(N-1)/2;n=0:(N-1);m=n-a+eps;h=sin(w*m)./(pi*m);ifk==1B=bartlett(N);elseifk==2B=hanning(N);elseifk==3B=hamming(N);elseifk==4B=blackman(N);endendendendhd=h.*(B');stem(n,hd,'.');xlabel('n');ylabel('h(n)');title('在矩形窗下的N=33时h(n)函数');subplot(2,2,2);[H,m]=freqz(hd,[1],1024);mag=abs(H);db=20*log10((mag+eps)/max(mag));plot(m/pi,db);xlabel('w/п');ylabel('20log[H(ejw)]');title('h(n)的幅频特性');grid;pha=angle(H);subplot(2,2,3);plot(m,pha);xlabel('n');ylabel('φ');title('h(n)的相频特性');subplot(2,2,4);plot(m,mag);xlabel('w');ylabel('H(ejw)');title('h(n)的幅频特性');参考程序2:b=1;closeall;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*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');ifk==1B=boxcar(N);string=['Boxcar','N=',num2str(N)];elseifk==2B=hamming(N);string=['Hamming','N=',num2str(N)];elseifk==3B=hanning(N);string=['Hanning','N=',num2str(N)];elseifk==4B=blackman(N);string=['Blackman','N=',num2str(N)];endendendendh=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]);holdon;n=0:N-1;x=zeros(N);plot(n,x,'-');xlabel('n');ylabel('h(n)');title('实际低通滤波器的h(n)');text((0.3*N),0.27,string);holdoff;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);holdon;n=0:7;x=zeros(8);plot(n,x,'-');title('相频特性');xlabel('频率(rad)');ylabel('相位(rad)');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('DoYouwantToContinue?','Yes','No');ifb==2b=0;endendtemp=menu('CloseAllFigure?','Yes','No');iftemp==1closeallend
本文标题:用窗函数法设计FIR数字滤波器
链接地址:https://www.777doc.com/doc-5806726 .html