實驗四用窗函數(shù)法設計FIR數(shù)字濾波器.doc
實驗四 用窗函數(shù)法設計FIR數(shù)字濾波器實驗項目名稱:用窗函數(shù)法設計FIR數(shù)字濾波器實驗項目性質(zhì):驗證性實驗所屬課程名稱:數(shù)字信號處理實驗計劃學時:2一. 實驗目的(1) 掌握用窗函數(shù)法設計FIR數(shù)字濾波器的原理與方法。(2) 熟悉線性相位FIR數(shù)字濾波器的特性。(3) 了解各種窗函數(shù)對濾波特性的影響。二. 實驗內(nèi)容和要求(1) 復習用窗函數(shù)法設計FIR數(shù)字濾波器一節(jié)內(nèi)容,閱讀本實驗原理,掌握設計步驟。(2) 用升余弦窗設計一線性相位低通FIR數(shù)字濾波器,截止頻率。窗口長度N =15,33。要求在兩種窗口長度情況下,分別求出,打印出相應的幅頻特性和相頻特性曲線,觀察3dB帶寬和20dB帶寬??偨Y(jié)窗口長度N 對濾波器特性的影響。設計低通FIR數(shù)字濾波器時,一般以理想低通濾波特性為逼近函數(shù),即其中(3) ,用四種窗函數(shù)設計線性相位低通濾波器,繪制相應的幅頻特性曲線,觀察3dB帶寬和20dB帶寬以及阻帶最小衰減,比較四種窗函數(shù)對濾波器特性的影響。三. 實驗主要儀器設備和材料計算機,MATLAB6.5或以上版本四. 實驗方法、步驟及結(jié)果測試如果所希望的濾波器的理想的頻率響應函數(shù)為,則其對應的單位脈沖響應為 (4.1)窗函數(shù)設計法的基本原理是用有限長單位脈沖響應序列逼近。由于往往是無限長序列,而且是非因果的,所以用窗函數(shù)將截斷,并進行加權處理,得到:(4.2)就作為實際設計的FIR數(shù)字濾波器的單位脈沖響應序列,其頻率響應函數(shù)為(4.3)式中,N為所選窗函數(shù)的長度。我們知道,用窗函數(shù)法設計的濾波器性能取決于窗函數(shù)的類型及窗口長度N的取值。設計過程中,要根據(jù)對阻帶最小衰減和過渡帶寬度的要求選擇合適的窗函數(shù)類型和窗口長度N 。各種類型的窗函數(shù)可達到的阻帶最小衰減和過渡帶寬度見表4.1。表4.1 各種窗函數(shù)的基本參數(shù)窗函數(shù)旁瓣峰值幅度/dB過渡帶寬阻帶最小衰減/dB矩形窗-134/N-12三角形窗-258/N-25漢寧窗-318/N-44哈明窗-418/N-53不萊克曼窗-5712/N-74凱塞窗(=7.865)-5710/N-80這樣選定窗函數(shù)類型和長度N之后,求出單位脈沖響應,并按照式(4.3)求出。是否滿足要求,要進行演算。一般在尾部加零使長度滿足2的整數(shù)次冪,以便用FFT計算。如果要觀察細節(jié),補零點數(shù)增多即可。如果不滿足要求,則要重新選擇窗函數(shù)類型和長度N ,再次驗算,直至滿足要求。如果要求線性相位特性,則還必須滿足根據(jù)上式中的正、負號和長度N的奇偶性又將線性相位FIR濾波器分成四類。要根據(jù)所設計的濾波特性正確選擇其中一類,例如,要設計線性相位低通特性,可以選擇這一類,而不能選擇這一類。主程序框圖如圖4.1所示。其中幅度特性要求用dB表示。開始讀入窗口長度N計算hd(n)調(diào)用窗函數(shù)子程序求w(n)調(diào)用子程序(函數(shù))計算H(k)=DFTh(n)調(diào)用繪圖子程序(函數(shù))繪制H(k)幅度相位曲線結(jié)束圖4-1 主程序框圖計算h(n)= hd(n) w(n)設畫圖時,用打印幅度特性。第k點對應的頻率。為使曲線包絡更接近的幅度特性曲線,DFT變換區(qū)間要選大些。例如窗口長度N=33時,可通過在末尾補零的方法,使長度變?yōu)?4,再進行64點DFT,則可以得到更精確的幅度衰減特性曲線。下面給出MATLAB主程序:%實驗四,用窗函數(shù)法設計FIR數(shù)字濾波器b=1;close all;i=0;while(b); temp=menu(選擇窗函數(shù)長度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); 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=4 B=blackman(N); string=Blackman,N=,num2str(N); end end end end h=hd.*(B); %得到FIR數(shù)字濾波器 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); plot(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); 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程序運行結(jié)果:運行程序,根據(jù)實驗內(nèi)容要求和程序提示選擇你要進行的實驗參數(shù)。三個實驗參數(shù)選定后,程序運行輸出用所選窗函數(shù)設計的實際FIR低通數(shù)字濾波器的單位脈沖響應h(n)、幅頻衰減特性(20lg|H(ejw)|)、相頻特性及幅頻特性|H(ejw)|的波形,h(n)和|H(ejw)|圖中標出了所選窗函數(shù)類型及其長度N值。對四種窗函數(shù)(N=15和N=33)的程序運行結(jié)果如圖4-2到圖4-9所示,由圖可以看出用各種窗函數(shù)設計的FIR濾波器的阻帶最小衰減及過渡帶均與教材中一致。在通帶內(nèi)均為嚴格相位特性。圖4-2 矩形窗(N=15)圖4-3 矩形窗(N=33)圖4-4 哈明窗(N=15)圖4-5 哈明窗(N=33)圖4-6 漢寧窗(N=15)圖4-7 漢寧窗(N=33)圖4-8 布萊克曼窗(N=15)圖4-9 布萊克曼窗(N=33)五. 實驗報告要求(1) 簡述實驗原理及目的。(2) 按照實驗步驟以及要求,比較各種情況下的濾波性能,說明窗口長度N和窗函數(shù)類型對濾波特性的影響。(3) 總結(jié)用窗函數(shù)法設計FIR濾波器的主要特點。(4) 簡要回答思考題。思考題如果給定通帶截止頻率和阻帶截止頻率以及阻帶最小衰減,如何用窗函數(shù)法設計線性相位低通濾波器,寫出設計步驟。如果要求用窗函數(shù)法設計帶通濾波器,而且給定上、下邊帶截止頻率為和,試求理想帶通的單位脈沖響應。