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