基于MATLAB在IIR濾波器的設(shè)計與仿真
Window Specifications選項,當(dāng)選取采用窗函數(shù)設(shè)計,該選項可定義,它包含了各種窗函數(shù)。
本文以一個IIR濾波器的設(shè)計為例說明如何使用MATLAB設(shè)計數(shù)字濾波器。要求設(shè)計一個10階的帶通Chebyshev I濾波器,它的通帶范圍是100到200Hz,采樣頻率為1000Hz,Rp=0.5。
本例中,首先在Filter Type中選擇Bandpass(帶通濾波器);在Design Method選項中選擇IIR,接著在相鄰的右則選項中選擇Chebyshev I(切比雪夫I型);指定Filter Order項中的Specify Order=10;由于采用的是切比雪夫設(shè)計,不必在Options中選擇;然后在Frequency Specifications中選擇Unit為Hz,給出采樣頻率Fs=1000,通帶Fpass1=100和Fpass2=200;最后在 Magnitude Specifications中 選擇Unit為db,Apass=0.5。設(shè)置完成后點擊Design Filter即可得到所設(shè)計的IIR濾波器。通過菜單選項Analysis可以在特性區(qū)看到所設(shè)計的幅頻響應(yīng)、相頻響應(yīng)、沖擊響應(yīng)和零極點配置等特性,如圖1所示。設(shè)計完成后將結(jié)果保存為filterl.fda文件。
圖1濾波器的幅頻、相頻和沖激響應(yīng)(特性區(qū))
3.2 程序設(shè)計法
在MATLAB環(huán)境下運行該程序即可得到濾波器的時域沖激響應(yīng)。由于篇幅所限,這里不再詳述源程序。在MATLAB中,對各種濾波器的設(shè)計都有相應(yīng)的計算振幅、相位和沖激響應(yīng)的函數(shù),可以用來做濾波器程序設(shè)計。上例的IIR濾波器的沖激響應(yīng)可用程序設(shè)計如下:
n=10; %階數(shù)為10
Rp=0.5; %幅值衰減為0.5
Wn[100 200]/500;
[b,a]=chebyl(n,Rp,wn);
[y,t]impz(b,a,101);
stem(t,y,'.');
評論