数字信号处理(DSP)实验——IIR数字滤波器设计与仿真
一、實驗目的
(1)熟悉IIR數字濾波器的原理與方法;
(2)學會調用MATLAB信號處理工具箱中濾波器設計函數(或濾波器設計分析工具fdatool)設計各種IIR數字濾波器,學會根據濾波需求確定濾波器指標參數。
(3)通過觀察濾波器輸入輸出信號的時域波形及其頻譜,建立數字濾波的概念。
二、實驗原理與方法
設計IIR數字濾波器一般采用間接法(脈沖響應不變法和雙線性變換法),應用最廣泛的是雙線性變換法。基本設計過程是:①先將給定的數字濾波器的指標轉換成過渡模擬濾波器的指標; ②設計過渡模擬濾波器;③將過渡模擬濾波器系統函數轉換成數字濾波器的系統函數。MATLAB信號處理工具箱中的各種IIR數字濾波器設計函數都是采用雙線性變換法。濾波器設計函數butter、cheby1 、cheby2 和ellip可以分別被調用來直接設計巴特沃斯、切比雪夫1、切比雪夫2和橢圓模擬和數字濾波器。本實驗要求讀者調用如上函數直接設計IIR數字濾波器。調用MATLAB信號處理工具箱函數filter對給定的輸入信號x(n)進行濾波,得到濾波后的輸出信號y(n)。
三、實驗內容及步驟
1.調用信號產生函數mstg產生由三路抑制載波調幅信號相加構成的復合信號st,該函數還會自動繪圖顯示st的時域波形和幅頻特性曲線,如圖3.1所示。由圖可見,三路信號時域混疊無法在時域分離。但頻域是分離的,所以可以通過濾波的方法在頻域分離,這就是本實驗的目的。
2. 要求將st中三路調幅信號分離,通過觀察st的幅頻特性曲線,分別確定可以分離st中三路抑制載波單頻調幅信號的三個濾波器(低通濾波器、帶通濾波器、高通濾波器)的通帶截止頻率和阻帶截止頻率。要求濾波器的通帶最大衰減為0.1dB,阻帶最小衰減為60dB。
提示:抑制載波單頻調幅信號的數學表示式為
其中,cos(2πfct)稱為載波,fc為載波頻率,cos(2πf0t)稱為單頻調制信號,f0為調制正弦波信號頻率,且滿足fc>f0。由上式可見,所謂抑制載波單頻調幅信號,就是2個正弦信號相乘,它有2個頻率成分:和頻fc+f0和差頻fc-f0,這2個頻率成分關于載波頻率fc對稱。所以,1路抑制載波單頻調幅信號的頻譜圖是關于載波頻率fc對稱的2根譜線,其中沒有載頻成分,故取名為抑制載波單頻調幅信號。容易看出,圖5.1中三路調幅信號的載波頻率分別為250Hz、500Hz、1000Hz。如果調制信號m(t)具有帶限連續頻譜,無直流成分,則s(t)=m(t)cos(2πfct)就是一般的抑制載波調幅信號。其頻譜圖是關于載波頻率fc對稱的2個邊帶(上下邊帶),在專業課通信原理中稱為雙邊帶抑制載波 (DSB-SC) 調幅信號,簡稱雙邊帶 (DSB) 信號。如果調制信號m(t)有直流成分,則s(t)=m(t)cos(2πfct)就是一般的雙邊帶調幅信號。其頻譜圖是關于載波頻率fc對稱的2個邊帶(上下邊帶),并包含載頻成分。
3. 編程序調用MATLAB濾波器設計函數ellipord和ellip分別設計這三個橢圓濾波器,并繪圖顯示其幅頻響應特性曲線。
4. 調用濾波器實現函數filter,用三個濾波器分別對信號產生函數mstg產生的信號st進行濾波,分離出st中的三路不同載波頻率的調幅信號y1(n)、y2(n)和y3(n), 并繪圖顯示y1(n)、y2(n)和y3(n)的時域波形,觀察分離效果。
5. 信號產生函數mstg清單
6.實驗程序框圖如圖3.2所示。
四、思考題
1.請閱讀信號產生函數mstg,確定三路調幅信號的載波頻率和調制信號頻率。
2.信號產生函數mstg中采樣點數N=800,對st進行N點FFT可以得到6根理想譜線。如果取N=1000,可否得到6根理想譜線?為什么?N=2000呢?請改變函數mstg中采樣點數N的值,觀察頻譜圖驗證您的判斷是否正確。
【因為信號st是周期序列,譜分析時要求觀察時間為整數倍周期。所以,本題的一般解答方法是,先確定信號st的周期,在判斷所給采樣點數N對應的觀察時間Tp=NT是否為st的整數個周期。但信號產生函數mstg產生的信號st共有6個頻率成分,求其周期比較麻煩,故采用下面的方法解答。
分析發現,st的每個頻率成分都是25Hz的整數倍。采樣頻率Fs=10kHz=25×400Hz,即在25Hz的正弦波的1個周期中采樣400點。所以,當N為400的整數倍時一定為st的整數個周期。因此,采樣點數N=800和N=2000時,對st進行N點FFT可以得到6根理想譜線。如果取N=1000,不是400的整數倍,不能得到6根理想譜線。】
3.修改信號產生函數mstg,給每路調幅信號加入載波成分,產生調幅(AM)信號,重復本實驗,觀察AM信號與抑制載波調幅信號的時域波形及其頻譜的差別。
提示:AM信號表示式:
五、濾波器參數及實驗程序清單
1、濾波器參數選取
觀察圖3.1可知,三路調幅信號的載波頻率分別為250Hz、500Hz、1000Hz。帶寬(也可以由信號產生函數mstg清單看出)分別為50Hz、100Hz、200Hz。所以,分離混合信號st中三路抑制載波單頻調幅信號的三個濾波器(低通濾波器、帶通濾波器、高通濾波器)的指標參數選取如下:
說明:
(1)為了使濾波器階數盡可能低,每個濾波器的邊界頻率選擇原則是盡量使濾波器過渡帶寬盡可能寬。
(2)與信號產生函數mstg相同,采樣頻率Fs=10kHz。
(3)為了濾波器階數最低,選用橢圓濾波器。
按照圖3.2 所示的程序框圖編寫的實驗程序為exp3.m。
2、實驗程序清單
% 實驗程序exp3.m % IIR數字濾波器設計及軟件實現 clear all; close all Fs=10000;T=1/Fs; %采樣頻率 %調用信號產生函數mstg產生由三路抑制載波調幅信號相加構成的復合信號st st=mstg;%低通濾波器設計與實現 ========================================= fp=280;fs=450; wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF指標(低通濾波器的通、阻帶邊界頻) [N,wp]=ellipord(wp,ws,rp,rs); %調用ellipord計算橢圓DF階數N和通帶截止頻率wp [B,A]=ellip(N,rp,rs,wp); %調用ellip計算橢圓帶通DF系統函數系數向量B和A y1t=filter(B,A,st); %濾波器軟件實現 % 低通濾波器設計與實現繪圖部分 figure(2);subplot(3,1,1); myplot(B,A); %調用繪圖函數myplot繪制損耗函數曲線 yt='y_1(t)'; subplot(3,1,2);tplot(y1t,T,yt); %調用繪圖函數tplot繪制濾波器輸出波形%帶通濾波器設計與實現 =========================================== 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); %調用ellipord計算橢圓DF階數N和通帶截止頻率wp [B,A]=ellip(N,rp,rs,wp); %調用ellip計算橢圓帶通DF系統函數系數向量B和A y2t=filter(B,A,st); %濾波器軟件實現 % 帶通濾波器設計與實現繪圖部分 figure(3);subplot(3,1,1); myplot(B,A); %調用繪圖函數myplot繪制損耗函數曲線 yt='y_2(t)'; subplot(3,1,2);tplot(y2t,T,yt);%高通濾波器設計與實現 ================================================ fp=890;fs=600; wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF指標(高通濾波器的通、阻帶邊界頻) [N,wp]=ellipord(wp,ws,rp,rs); %調用ellipord計算橢圓DF階數N和通帶截止頻率wp [B,A]=ellip(N,rp,rs,wp,'high'); %調用ellip計算橢圓帶通DF系統函數系數向量B和A y3t=filter(B,A,st); %濾波器軟件實現 % 高低通濾波器設計與實現繪圖部分 figure(4);subplot(3,1,1) myplot(B,A) %調用繪圖函數myplot繪制損耗函數曲線 y3t=filter(B,A,st); yt='y_3(t)'; subplot(3,1,2);tplot(y3t,T,yt); % tplot函數 function tplot(xn,T,yn) %時域序列連續曲線繪圖函數 % xn:信號數據序列,yn:繪圖信號的縱坐標名稱(字符串) % T為采樣間隔 n=0:length(xn)-1;t=n*T; plot(t,xn); xlabel('t/s');ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]) % myplot函數 function myplot(B,A) %myplot(B,A) %時域離散系統損耗函數繪圖 %B為系統函數分子多項式系數向量 %A為系統函數分母多項式系數向量 [H,W]=freqz(B,A,1000); m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel('\omega/\pi');ylabel('幅度(dB)') axis([0,1,-80,5]);title('損耗函數曲線');六、實驗程序運行結果
程序exp3.m運行結果如圖3.2所示。由圖可見,三個分離濾波器指標參數選取正確,算耗函數曲線達到所給指標。分離出的三路信號y1(n),y2(n)和y3(n)的波形是抑制載波的單頻調幅波。
低通濾波器損耗函數及調幅信號y1(t)
帶通濾波器損耗函數及調幅信號y2(t)
高通濾波器損耗函數及調幅信號y3(t)
總結
以上是生活随笔為你收集整理的数字信号处理(DSP)实验——IIR数字滤波器设计与仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端构建新世代,Esbuild 原来还能
- 下一篇: PS教程第十二课:会打开 会关闭我会了