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