IIR數(shù)字濾波器設計及軟件實現(xiàn)實驗報告.doc
實驗報告實驗四:IIR數(shù)字濾波器設計及軟件實現(xiàn)1實驗目的(1)熟悉用雙線性變換法設計IIR數(shù)字濾波器的原理與方法;(2)學會調用MATLAB信號處理工具箱中濾波器設計函數(shù)(或濾波器設計分析工具fdatool)設計各種IIR數(shù)字濾波器,學會根據(jù)濾波需求確定濾波器指標參數(shù)。(3)掌握IIR數(shù)字濾波器的MATLAB實現(xiàn)方法。(3)通過觀察濾波器輸入輸出信號的時域波形及其頻譜,建立數(shù)字濾波的概念。2實驗原理設計IIR數(shù)字濾波器一般采用間接法(脈沖響應不變法和雙線性變換法),應用最廣泛的是雙線性變換法?;驹O計過程是:先將給定的數(shù)字濾波器的指標轉換成過渡模擬濾波器的指標; 設計過渡模擬濾波器;將過渡模擬濾波器系統(tǒng)函數(shù)轉換成數(shù)字濾波器的系統(tǒng)函數(shù)。MATLAB信號處理工具箱中的各種IIR數(shù)字濾波器設計函數(shù)都是采用雙線性變換法。第六章介紹的濾波器設計函數(shù)butter、cheby1 、cheby2 和ellip可以分別被調用來直接設計巴特沃斯、切比雪夫1、切比雪夫2和橢圓模擬和數(shù)字濾波器。本實驗要求讀者調用如上函數(shù)直接設計IIR數(shù)字濾波器。本實驗的數(shù)字濾波器的MATLAB實現(xiàn)是指調用MATLAB信號處理工具箱函數(shù)filter對給定的輸入信號x(n)進行濾波,得到濾波后的輸出信號y(n)。3. 實驗內(nèi)容及步驟(1)調用信號產(chǎn)生函數(shù)mstg產(chǎn)生由三路抑制載波調幅信號相加構成的復合信號st,該函數(shù)還會自動繪圖顯示st的時域波形和幅頻特性曲線,如圖10.4.1所示。由圖可見,三路信號時域混疊無法在時域分離。但頻域是分離的,所以可以通過濾波的方法在頻域分離,這就是本實驗的目的。圖10.4.1 三路調幅信號st的時域波形和幅頻特性曲線(2)要求將st中三路調幅信號分離,通過觀察st的幅頻特性曲線,分別確定可以分離st中三路抑制載波單頻調幅信號的三個濾波器(低通濾波器、帶通濾波器、高通濾波器)的通帶截止頻率和阻帶截止頻率。要求濾波器的通帶最大衰減為0.1dB,阻帶最小衰減為60dB。提示:抑制載波單頻調幅信號的數(shù)學表示式為其中,稱為載波,fc為載波頻率,稱為單頻調制信號,f0為調制正弦波信號頻率,且滿足。由上式可見,所謂抑制載波單頻調幅信號,就是2個正弦信號相乘,它有2個頻率成分:和頻和差頻,這2個頻率成分關于載波頻率fc對稱。所以,1路抑制載波單頻調幅信號的頻譜圖是關于載波頻率fc對稱的2根譜線,其中沒有載頻成分,故取名為抑制載波單頻調幅信號。容易看出,圖10.4.1中三路調幅信號的載波頻率分別為250Hz、500Hz、1000Hz。如果調制信號m(t)具有帶限連續(xù)頻譜,無直流成分,則就是一般的抑制載波調幅信號。其頻譜圖是關于載波頻率fc對稱的2個邊帶(上下邊帶),在專業(yè)課通信原理中稱為雙邊帶抑制載波 (DSB-SC) 調幅信號,簡稱雙邊帶 (DSB) 信號。如果調制信號m(t)有直流成分,則就是一般的雙邊帶調幅信號。其頻譜圖是關于載波頻率fc對稱的2個邊帶(上下邊帶),并包含載頻成分。(3)編程序調用MATLAB濾波器設計函數(shù)ellipord和ellip分別設計這三個橢圓濾波器,并繪圖顯示其幅頻響應特性曲線。 (4)調用濾波器實現(xiàn)函數(shù)filter,用三個濾波器分別對信號產(chǎn)生函數(shù)mstg產(chǎn)生的信號st進行濾波,分離出st中的三路不同載波頻率的調幅信號y1(n)、y2(n)和y3(n), 并繪圖顯示y1(n)、y2(n)和y3(n)的時域波形,觀察分離效果。4信號產(chǎn)生函數(shù)mstg清單function st=mstg%產(chǎn)生信號序列向量st,并顯示st的時域波形和頻譜%st=mstg 返回三路調幅信號相加形成的混合信號,長度N=1600N=1600 %N為信號st的長度。Fs=10000;T=1/Fs;Tp=N*T; %采樣頻率Fs=10kHz,Tp為采樣時間t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10;%第1路調幅信號的載波頻率fc1=1000Hz,fm1=fc1/10; %第1路調幅信號的調制信號頻率fm1=100Hzfc2=Fs/20; %第2路調幅信號的載波頻率fc2=500Hzfm2=fc2/10; %第2路調幅信號的調制信號頻率fm2=50Hzfc3=Fs/40;%第3路調幅信號的載波頻率fc3=250Hz,fm3=fc3/10; %第3路調幅信號的調制信號頻率fm3=25Hzxt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %產(chǎn)生第1路調幅信號xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %產(chǎn)生第2路調幅信號xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %產(chǎn)生第3路調幅信號st=xt1+xt2+xt3; %三路調幅信號相加fxt=fft(st,N); %計算信號st的頻譜%=以下為繪圖部分,繪制st的時域波形和幅頻特性曲線=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(幅度)5實驗程序框圖如圖10.4.2所示,供讀者參考。調用函數(shù)mstg產(chǎn)生st,自動繪圖顯示st的時域波形和幅頻特性曲線調用ellipord和ellip分別設計三個橢圓濾波器,并繪圖顯示其幅頻響應特性曲線。調用filter,用三個濾波器分別對信號st進行濾波,分離出三路不同載波頻率的調幅信號y1(n)、y2(n)和y3(n)繪圖顯示y1(n)、y2(n)和y3(n)的時域波形和幅頻特性曲線End圖10.4.2 實驗4程序框圖6思考題(1)請閱讀信號產(chǎn)生函數(shù)mstg,確定三路調幅信號的載波頻率和調制信號頻率。(2)信號產(chǎn)生函數(shù)mstg中采樣點數(shù)N=800,對st進行N點FFT可以得到6根理想譜線。如果取N=1000,可否得到6根理想譜線?為什么?N=2000呢?請改變函數(shù)mstg中采樣點數(shù)N的值,觀察頻譜圖驗證您的判斷是否正確。(3)修改信號產(chǎn)生函數(shù)mstg,給每路調幅信號加入載波成分,產(chǎn)生調幅(AM)信號,重復本實驗,觀察AM信號與抑制載波調幅信號的時域波形及其頻譜的差別。提示:AM信號表示式:。實驗結果:一、濾波器參數(shù)及實驗程序清單1、濾波器參數(shù)選取觀察圖10.4.1可知,三路調幅信號的載波頻率分別為250Hz、500Hz、1000Hz。帶寬(也可以由信號產(chǎn)生函數(shù)mstg清單看出)分別為50Hz、100Hz、200Hz。所以,分離混合信號st中三路抑制載波單頻調幅信號的三個濾波器(低通濾波器、帶通濾波器、高通濾波器)的指標參數(shù)選取如下:對載波頻率為250Hz的條幅信號,可以用低通濾波器分離,其指標為帶截止頻率Hz,通帶最大衰減dB;阻帶截止頻率Hz,阻帶最小衰減dB,對載波頻率為500Hz的條幅信號,可以用帶通濾波器分離,其指標為帶截止頻率Hz,Hz,通帶最大衰減dB;阻帶截止頻率Hz,Hz,Hz,阻帶最小衰減dB,對載波頻率為1000Hz的條幅信號,可以用高通濾波器分離,其指標為帶截止頻率Hz,通帶最大衰減dB;阻帶截止頻率Hz,阻帶最小衰減dB,說明:(1)為了使濾波器階數(shù)盡可能低,每個濾波器的邊界頻率選擇原則是盡量使濾波器過渡帶寬盡可能寬。(2)與信號產(chǎn)生函數(shù)mstg相同,采樣頻率Fs=10kHz。(3)為了濾波器階數(shù)最低,選用橢圓濾波器。按照圖10.4.2 所示的程序框圖編寫的實驗程序為exp4.m。2、實驗程序清單%IIR數(shù)字濾波器設計及軟件實現(xiàn)clear all;clear all;%調用信號產(chǎn)生函數(shù)mstg產(chǎn)生又三路抑制載波調幅信號相加構成的復合信號st;%st=mstg; %低通濾波器設計與實現(xiàn)Fs=10000;fp=280;fs=450;wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs= 60 ; %DF指標;(低通濾波器的通阻帶邊界頻率)N,wp0=ellipord(wp,ws,rp,rs);%調用ellipod計算橢圓DF階數(shù)N和通帶截止頻率wpB,A=ellip(N,rp,rs,wp0);%調用ellip計算橢圓帶通DF系統(tǒng)函數(shù)系數(shù)向量B和Ay1t=filter(B,A,st);%濾波器的軟件實現(xiàn)%下面為繪圖部分figure(2);subplot(2,1,1);H1,w=freqz(B,A,1000);m=abs(H1);plot(w/pi,20*log(m/max(m);grid on;title(低通濾波損耗函數(shù)曲線);axis(0,1,-300,20);xlabel(w/pi);ylabel(H1);subplot(2,1,2);ss=0:0.02/1600:0.02-0.02/1600;plot(ss,y1t);title(低通濾波后的波形);axis(0,0.02,-1.2,1.2);xlabel(t/s);ylabel(y1t);%下面為嘗試部分%N=1600; %N為信號st的長度。%Fs=10000;T=1/Fs;Tp=N*T; %采樣頻率Fs=10kHz,Tp為采樣時間%t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;%figure(5)%stem(k,abs(fft(y1t,1600)/max(abs(fft(y1t,1600),.);grid;title(b) s(t)的頻譜);axis(0,Fs/5,0,1.2);%帶通濾波器的實現(xiàn)與設計fpl=450;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,wp0=ellipord(wp,ws,rp,rs);B,A=ellip(N,rp,rs,wp0);y2t=filter(B,A,st);figure(3);subplot(2,1,1);H2,w=freqz(B,A,1000);m=abs(H2);plot(w/pi,20*log(m/max(m);grid on;axis(0,1,-300,20);title(帶通濾波損耗函數(shù)曲線);xlabel(w/pi);ylabel(H2);subplot(2,1,2);plot(ss,y2t);title(帶通濾波后的波形);axis(0,0.02,-1.2,1.2);xlabel(t/s);ylabel(y2t);%高通濾波器的實現(xiàn)與設計fp=890;fs=600;wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60;N,wp0=ellipord(wp,ws,rp,rs);B,A=ellip(N,rp,rs,wp0,high);y3t=filter(B,A,st);figure(4);subplot(2,1,1);H3,w=freqz(B,A,1000);m=abs(H3);plot(w/pi,20*log(m/max(m);grid on;title(高通濾波損耗函數(shù)曲線);axis(0,1,-250,20);xlabel(w);ylabel(H3);subplot(2,1,2);plot(ss,y3t);title(高通濾波后的波形);axis(0,0.02,-1.2,1.2);xlabel(t/s);ylabel(y3t);clc;clear二、實驗程序運行結果實驗4程序exp4.m運行結果如圖所示。由圖可見,三個分離濾波器指標參數(shù)選取正確,算耗函數(shù)曲線達到所給指標。分離出的三路信號y1(n),y2(n)和y3(n)的波形是抑制載波的單頻調幅波。(a) 低通濾波器損耗函數(shù)及其分離出的調幅信號y1(t)(b) 帶通濾波器損耗函數(shù)及其分離出的調幅信號y2(t)(c)高通濾波器損耗函數(shù)及其分離出的調幅信號y3(t)三、思考題及簡答:(1)請閱讀信號產(chǎn)生函數(shù)mstg,確定三路調幅信號的載波頻率和調制信號頻率。如上實驗截圖所示。(2)信號產(chǎn)生函數(shù)mstg中采樣點數(shù)N=800,對st進行N點FFT可以得到6根理想譜線。如果取N=1000,可否得到6根理想譜線?為什么?N=2000呢?請改變函數(shù)mstg中采樣點數(shù)N的值,觀察頻譜圖驗證您的判斷是否正確。(3)修改信號產(chǎn)生函數(shù)mstg,給每路調幅信號加入載波成分,產(chǎn)生調幅(AM)信號,重復本實驗,觀察AM信號與抑制載波調幅信號的時域波形及其頻譜的差別。答:分析發(fā)現(xiàn),由于 st的每個頻率成分都是25Hz的整數(shù)倍。采樣頻率Fs=10kHz=25400Hz,即在25Hz的正弦波的1個周期中采樣400點。所以,當N為400的整數(shù)倍時一定為st的整數(shù)個周期。因此,采樣點數(shù)N=800和N=2000時,對st進行N點FFT可以得到6根理想譜線。如果取N=1000,不是400的整數(shù)倍,不能得到6根理想譜線。四、實驗總結:通過本次關于IIR數(shù)字濾波器的設計及軟件實現(xiàn)實驗,我們可以學到關于如何在MatLab軟件上實現(xiàn)數(shù)字濾波器的設計與實現(xiàn)對現(xiàn)實數(shù)字波形的濾波處理。熟悉用雙線性變換法設計IIR數(shù)字濾波器的原理與方法,學會調用MATLAB信號處理工具箱中濾波器設計函數(shù)(或濾波器設計分析工具fdatool)設計各種IIR數(shù)字濾波器,學會根據(jù)濾波需求確定濾波器指標參數(shù)。掌握IIR數(shù)字濾波器的MATLAB實現(xiàn)方法。通過觀察濾波器輸入輸出信號的時域波形及其頻譜,建立數(shù)字濾波的概念。