IIR數(shù)字濾波器設(shè)計(jì)及軟件實(shí)現(xiàn).doc
實(shí)驗(yàn)四:IIR數(shù)字濾波器設(shè)計(jì)及軟件實(shí)現(xiàn)1、 實(shí)驗(yàn)原理與方法1、設(shè)計(jì)IIR數(shù)字濾波器一般采用間接法(脈沖響應(yīng)不變法和雙線性變換法),應(yīng)用最廣泛的是雙線性變換法,其基本設(shè)計(jì)過(guò)程是:(1)將給定的數(shù)字濾波器的指標(biāo)轉(zhuǎn)換成過(guò)渡模擬濾波器的指標(biāo);(2)設(shè)計(jì)過(guò)渡模擬濾波器;(3)將過(guò)渡模擬濾波器系統(tǒng)函數(shù)轉(zhuǎn)換成數(shù)字濾波器的系統(tǒng)函數(shù)。本實(shí)驗(yàn)的數(shù)字濾波器的MATLAB實(shí)現(xiàn)是指調(diào)用MATLAB信號(hào)處理工具箱函數(shù)filter對(duì)給定的輸入信號(hào)x(n)進(jìn)行濾波,得到濾波后的輸出信號(hào)y(n)。2、 實(shí)驗(yàn)內(nèi)容1、 調(diào)用信號(hào)產(chǎn)生函數(shù)mstg產(chǎn)生由三路抑制載波調(diào)幅信號(hào)相加構(gòu)成的復(fù)合信號(hào)st,該函數(shù)還會(huì)自動(dòng)繪圖顯示st的時(shí)域波形和幅頻特性曲線,如圖4.1所示。由圖可見(jiàn),三路信號(hào)時(shí)域混疊無(wú)法在時(shí)域分離。但頻域是分離的,所以可以通過(guò)濾波的方法在頻域分離,這就是本實(shí)驗(yàn)的目的。圖4.1 三路調(diào)幅信號(hào)st(即s(t)的時(shí)域波形和幅頻特性曲線2、要求將st中三路調(diào)幅信號(hào)分離,通過(guò)觀察st的幅頻特性曲線,分別確定可以分離st中三路抑制載波單頻調(diào)幅信號(hào)的三個(gè)濾波器(低通濾波器、帶通濾波器、高通濾波器)的通帶截止頻率和阻帶截止頻率。要求濾波器的通帶最大衰減為0.1dB,阻帶最小衰減為60dB。實(shí)驗(yàn)結(jié)果如圖4.2,程序見(jiàn)附錄4.2。提示:抑制載波單頻調(diào)幅信號(hào)的數(shù)學(xué)表示式為其中,稱(chēng)為載波,fc為載波頻率,稱(chēng)為單頻調(diào)制信號(hào),f0為調(diào)制正弦波信號(hào)頻率,且滿(mǎn)足。由上式可見(jiàn),所謂抑制載波單頻調(diào)幅信號(hào),就是2個(gè)正弦信號(hào)相乘,它有2個(gè)頻率成分:和頻和差頻,這2個(gè)頻率成分關(guān)于載波頻率fc對(duì)稱(chēng)。所以,1路抑制載波單頻調(diào)幅信號(hào)的頻譜圖是關(guān)于載波頻率fc對(duì)稱(chēng)的2根譜線,其中沒(méi)有載頻成分,故取名為抑制載波單頻調(diào)幅信號(hào)。容易看出,圖4.1中三路調(diào)幅信號(hào)的載波頻率分別為250Hz、500Hz、1000Hz。如果調(diào)制信號(hào)m(t)具有帶限連續(xù)頻譜,無(wú)直流成分,則就是一般的抑制載波調(diào)幅信號(hào)。其頻譜圖是關(guān)于載波頻率fc對(duì)稱(chēng)的2個(gè)邊帶(上下邊帶),在專(zhuān)業(yè)課通信原理中稱(chēng)為雙邊帶抑制載波 (DSB-SC) 調(diào)幅信號(hào),簡(jiǎn)稱(chēng)雙邊帶 (DSB) 信號(hào)。如果調(diào)制信號(hào)m(t)有直流成分,則就是一般的雙邊帶調(diào)幅信號(hào)。其頻譜圖是關(guān)于載波頻率fc對(duì)稱(chēng)的2個(gè)邊帶(上下邊帶),并包含載頻成分。3、編程序調(diào)用MATLAB濾波器設(shè)計(jì)函數(shù)ellipord和ellip分別設(shè)計(jì)這三個(gè)橢圓濾波器,并繪圖顯示其幅頻響應(yīng)特性曲線。實(shí)驗(yàn)結(jié)果如圖4.2、4.3、4.4,程序見(jiàn)附錄4.1、4.2、4.3。4、調(diào)用濾波器實(shí)現(xiàn)函數(shù)filter,用三個(gè)濾波器分別對(duì)信號(hào)產(chǎn)生函數(shù)mstg產(chǎn)生的信號(hào)st進(jìn)行濾波,分離出st中的三路不同載波頻率的調(diào)幅信號(hào)y1(n)、y2(n)和y3(n), 并繪圖顯示和的時(shí)域波形,觀察分離效果。實(shí)驗(yàn)結(jié)果如圖4.2、4.3、4.4,程序見(jiàn)附錄4.1、4.2、4.3。注:信號(hào)產(chǎn)生函數(shù)mstg清單function st=mstg%產(chǎn)生信號(hào)序列向量st,并顯示st的時(shí)域波形和頻譜%st=mstg 返回三路調(diào)幅信號(hào)相加形成的混合信號(hào),長(zhǎng)度N=800N=800 %N為信號(hào)st的長(zhǎng)度。Fs=10000;T=1/Fs;Tp=N*T; %采樣頻率Fs=10kHz,Tp為采樣時(shí)間t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10;%第1路調(diào)幅信號(hào)的載波頻率fc1=1000Hzfm1=fc1/10; %第1路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率fm1=100Hzfc2=Fs/20; %第2路調(diào)幅信號(hào)的載波頻率fc2=500Hzfm2=fc2/10; %第2路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率fm2=50Hzfc3=Fs/40;%第3路調(diào)幅信號(hào)的載波頻率fc3=250Hzfm3=fc3/10; %第3路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率fm3=25Hzxt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %產(chǎn)生第1路調(diào)幅信號(hào)xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %產(chǎn)生第2路調(diào)幅信號(hào)xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %產(chǎn)生第3路調(diào)幅信號(hào)st=xt1+xt2+xt3; %三路調(diào)幅信號(hào)相加fxt=fft(st,N); %計(jì)算信號(hào)st的頻譜%=以下為繪圖部分,繪制st的時(shí)域波形和幅頻特性曲線=subplot(3,1,1)plot(t,st);grid;xlabel(t/s);ylabel(s(t);axis(0,Tp/8,min(st),max(st);title(a) s(t)的波形)subplot(3,1,2)stem(f,abs(fxt)/max(abs(fxt),.);grid;title(b) s(t)的頻譜)axis(0,Fs/5,0,1.2);xlabel(f/Hz);ylabel(幅度)3、 實(shí)驗(yàn)結(jié)果和分析、討論及結(jié)論1、濾波器參數(shù)選取觀察圖4.1可知,三路調(diào)幅信號(hào)的載波頻率分別為250Hz、500Hz、1000Hz。帶寬(也可以由信號(hào)產(chǎn)生函數(shù)mstg清單看出)分別為50Hz、100Hz、200Hz。所以,分離混合信號(hào)st中三路抑制載波單頻調(diào)幅信號(hào)的三個(gè)濾波器(低通濾波器、帶通濾波器、高通濾波器)的指標(biāo)參數(shù)選取如下:對(duì)載波頻率為250Hz的條幅信號(hào),可以用低通濾波器分離,其指標(biāo)為:通帶截止頻率,通帶最大衰減;阻帶截止頻率,阻帶最小衰減。對(duì)載波頻率為500Hz的條幅信號(hào),可以用帶通濾波器分離,其指標(biāo)為:帶截止頻率,通帶最大衰減;阻帶截止頻率,阻帶最小衰減。對(duì)載波頻率為1000Hz的條幅信號(hào),可以用高通濾波器分離,其指標(biāo)為:帶截止頻率,通帶最大衰減;阻帶截止頻率,阻帶最小衰減。說(shuō)明:(1)為了使濾波器階數(shù)盡可能低,每個(gè)濾波器的邊界頻率選擇原則是盡量使濾波器過(guò)渡帶寬盡可能寬。(2)與信號(hào)產(chǎn)生函數(shù)mstg相同,采樣頻率Fs=10kHz。(3)為了濾波器階數(shù)最低,選用橢圓濾波器。2、實(shí)驗(yàn)結(jié)果由圖4.2、4.3、4.4可見(jiàn),三個(gè)分離濾波器指標(biāo)參數(shù)選取正確,損耗函數(shù)曲線達(dá)到所給指標(biāo)。分離出的三路信號(hào)和的波形是抑制載波的單頻調(diào)幅波。圖4.2 低通濾波器損耗函數(shù)及其分離出的調(diào)幅信號(hào)圖4.3 帶通濾波器損耗函數(shù)及其分離出的調(diào)幅信號(hào)圖4.4 高通濾波器損耗函數(shù)及其分離出的調(diào)幅信號(hào)圖4.5 調(diào)幅(AM)信號(hào)的時(shí)域波形圖及其頻譜4、 思考題1、請(qǐng)閱讀信號(hào)產(chǎn)生函數(shù)mstg,確定三路調(diào)幅信號(hào)的載波頻率和調(diào)制信號(hào)頻率。答:由信號(hào)產(chǎn)生函數(shù)mstg可知,圖4.1中三路調(diào)幅信號(hào)的載波頻率分別為250Hz、500Hz、1000Hz;調(diào)制信號(hào)頻率分別為100Hz、50Hz、25Hz。2、信號(hào)產(chǎn)生函數(shù)mstg中采樣點(diǎn)數(shù)N=1600,對(duì)st進(jìn)行N點(diǎn)FFT可以得到6根理想譜線。如果取N=1000,可否得到6根理想譜線?為什么?N=2000呢?請(qǐng)改變函數(shù)mstg中采樣點(diǎn)數(shù)N的值,觀察頻譜圖驗(yàn)證你的判斷是否正確。答:分析發(fā)現(xiàn),由于st的每個(gè)頻率成分都是25Hz的整數(shù)倍。采樣頻率Fs=10kHz=25400Hz,即在25Hz的正弦波的1個(gè)周期中采樣400點(diǎn)。所以,當(dāng)N為400的整數(shù)倍時(shí)一定為st的整數(shù)個(gè)周期。因此,采樣點(diǎn)數(shù)N=1600和N=2000時(shí),對(duì)st進(jìn)行N點(diǎn)FFT可以得到6根理想譜線。如果取N=1000,不是400的整數(shù)倍,不能得到6根理想譜線。3、修改信號(hào)產(chǎn)生函數(shù)mstg,給每路調(diào)幅信號(hào)加入載波成分,產(chǎn)生調(diào)幅(AM)信號(hào),重復(fù)本實(shí)驗(yàn),觀察AM信號(hào)與抑制載波調(diào)幅信號(hào)的時(shí)域波形及其頻譜的差別。提示:AM信號(hào)表示式:答:由抑制載波單頻調(diào)幅信號(hào)的數(shù)學(xué)表示式及AM信號(hào)表示式:可知,將信號(hào)產(chǎn)生函數(shù)mstg中的如下三條程序語(yǔ)句:xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); 改為(因?yàn)橐獫M(mǎn)足,故令、)xt1=(1+cos(2*pi*fm1*t)).*cos(2*pi*fc1*t); xt2=(1+cos(2*pi*fm2*t)).*cos(2*pi*fc2*t); xt3=(1+cos(2*pi*fm3*t)).*cos(2*pi*fc3*t); 則可以產(chǎn)生調(diào)幅(AM)信號(hào)。實(shí)驗(yàn)結(jié)果如圖4.5,程序見(jiàn)附錄4.4。5、 總結(jié)與心得體會(huì)通過(guò)此次實(shí)驗(yàn),我們可以學(xué)到關(guān)于如何在MatLab軟件上實(shí)現(xiàn)數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)對(duì)現(xiàn)實(shí)數(shù)字波形的濾波處理。熟悉用雙線性變換法設(shè)計(jì)IIR數(shù)字濾波器的原理與方法,學(xué)會(huì)調(diào)用MATLAB信號(hào)處理工具箱中濾波器設(shè)計(jì)函數(shù)(或?yàn)V波器設(shè)計(jì)分析工具fdatool)設(shè)計(jì)各種IIR數(shù)字濾波器,學(xué)會(huì)根據(jù)濾波需求確定濾波器指標(biāo)參數(shù)。掌握IIR數(shù)字濾波器的MATLAB實(shí)現(xiàn)方法。通過(guò)觀察濾波器輸入輸出信號(hào)的時(shí)域波形及其頻譜,建立數(shù)字濾波的概念。實(shí)驗(yàn)的心得體會(huì)見(jiàn)下:在此次試驗(yàn)中,溫習(xí)了關(guān)于MATLAB軟件的操作及應(yīng)用,基本使用方法和它的運(yùn)行環(huán)境。又進(jìn)一步地通過(guò)實(shí)驗(yàn)加深了對(duì)MATLAB軟件的了解,體會(huì)到了MATLAB具有完備的圖形處理功能,實(shí)現(xiàn)計(jì)算結(jié)果和編程的可視化等功能。通過(guò)做實(shí)驗(yàn)的過(guò)程以及實(shí)驗(yàn)分析的結(jié)果,掌握了IIR數(shù)字濾波器的MATLAB實(shí)現(xiàn)方法;學(xué)會(huì)使用函數(shù)ellipord和ellip設(shè)計(jì)橢圓濾波器的方法。通過(guò)這次的實(shí)驗(yàn)。極大地提升了自己對(duì)于程序編輯的熟練度,增加了對(duì)于書(shū)本里面知識(shí)點(diǎn)的應(yīng)用,更深一層的加深了對(duì)MATLAB軟件的使用。這對(duì)自己以后的實(shí)驗(yàn)積累了豐富的經(jīng)驗(yàn)。6、 附件:MATLAB原程序清單4.1 調(diào)用函數(shù)ellipord、ellip和filter,繪圖顯示其幅頻響應(yīng)特性曲線及調(diào)幅信號(hào)的時(shí)域波形clear all;close allFs=10000;T=1/Fs; %采樣頻率%調(diào)用信號(hào)產(chǎn)生函數(shù)mstg產(chǎn)生由三路抑制載波調(diào)幅信號(hào)相加構(gòu)成的復(fù)合信號(hào)stst=mstg;fp=280;fs=450; %下面wp,ws,為fp,fs的歸一化值范圍為0-1wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF指標(biāo)(低通濾波器的通、阻帶邊界頻)N,wp=ellipord(wp,ws,rp,rs); %調(diào)用ellipord計(jì)算橢圓DF階數(shù)N和通帶截止頻率wpB,A=ellip(N,rp,rs,wp); %調(diào)用ellip計(jì)算橢圓帶通DF系統(tǒng)函數(shù)系數(shù)向量B和Ah,w= freqz(B,A);y1t=filter(B,A,st); %濾波器軟件實(shí)現(xiàn)figure(2);subplot(2,1,1);plot(w,20*log10(abs(h);axis(0,1,-80,0)subplot(2,1,2);t=0:T:(length(y1t)-1)*T;plot(t,y1t);%axis(0,1,-80,0)4.2 調(diào)用函數(shù)ellipord、ellip和filter,繪圖顯示其幅頻響應(yīng)特性曲線及調(diào)幅信號(hào)的時(shí)域波形fpl=440;fpu=560;fsl=275;fsu=900;wp=2*fpl/Fs,2*fpu/Fs;ws=2*fsl/Fs,2*fsu/Fs;rp=0.1;rs=60;N,wp=ellipord(wp,ws,rp,rs); %調(diào)用ellipord計(jì)算橢圓DF階數(shù)N和通帶截止頻率wpB,A=ellip(N,rp,rs,wp); %調(diào)用ellip計(jì)算橢圓帶通DF系統(tǒng)函數(shù)系數(shù)向量B和Ah,w= freqz(B,A);y2t=filter(B,A,st);figure(3);subplot(2,1,1);plot(w,20*log10(abs(h);axis(0,1,-80,0)subplot(2,1,2);t=0:T:(length(y2t)-1)*T;plot(t,y2t);4.3 調(diào)用函數(shù)ellipord、ellip和filter,繪圖顯示其幅頻響應(yīng)特性曲線及調(diào)幅信號(hào)的時(shí)域波形fp=900;fs=550;wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF指標(biāo)(低通濾波器的通、阻帶邊界頻)N,wp=ellipord(wp,ws,rp,rs); %調(diào)用ellipord計(jì)算橢圓DF階數(shù)N和通帶截止頻率wpB,A=ellip(N,rp,rs,wp,high); %調(diào)用ellip計(jì)算橢圓帶通DF系統(tǒng)函數(shù)系數(shù)向量B和Ah,w= freqz(B,A);y3t=filter(B,A,st);figure(4);subplot(2,1,1);plot(w,20*log10(abs(h);axis(0,1,-80,0)subplot(2,1,2);t=0:T:(length(y3t)-1)*T;plot(t,y3t);4.4 調(diào)用信號(hào)產(chǎn)生函數(shù)mstg產(chǎn)生調(diào)幅(AM)信號(hào)function st=mstg %功能函數(shù)的寫(xiě)法%產(chǎn)生信號(hào)序列向量st,并顯示st的時(shí)域波形和頻譜%st=mstg 返回三路調(diào)幅信號(hào)相加形成的混合信號(hào),長(zhǎng)度N=800N=800 %N為信號(hào)st的長(zhǎng)度。Fs=10000;T=1/Fs;Tp=N*T; %采樣頻率Fs=10kHz,Tp為采樣時(shí)間t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10;%第1路調(diào)幅信號(hào)的載波頻率fc1=1000Hzfm1=fc1/10; %第1路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率fm1=100Hzfc2=Fs/20; %第2路調(diào)幅信號(hào)的載波頻率fc2=500Hzfm2=fc2/10; %第2路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率fm2=50Hzfc3=Fs/40;%第3路調(diào)幅信號(hào)的載波頻率fc3=250Hzfm3=fc3/10; %第3路調(diào)幅信號(hào)的調(diào)制信號(hào)頻率fm3=25Hzxt1=(1+cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %產(chǎn)生第1路調(diào)幅信號(hào)xt2=(1+cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %產(chǎn)生第2路調(diào)幅信號(hào)xt3=(1+cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %產(chǎn)生第3路調(diào)幅信號(hào)st=xt1+xt2+xt3; %三路調(diào)幅信號(hào)相加fxt=fft(st,N); %計(jì)算信號(hào)st的頻譜%=以下為繪圖部分,繪制st的時(shí)域波形和幅頻特性曲線=subplot(3,1,1)plot(t,st);grid;xlabel(t/s);ylabel(s(t);axis(0,Tp/8,min(st),max(st);title(a) s(t)的波形)subplot(3,1,2)stem(f,abs(fxt)/max(abs(fxt),.);grid;title(b) s(t)的頻譜)axis(0,Fs/5,0,1.2);xlabel(f/Hz);ylabel(幅度)