1 引言
在現(xiàn)代通信系統(tǒng)中,,由于信號中經(jīng)常混有各種復雜成分,,所以很多信號的處理和分析都是基于濾波器而進行的,。但是,傳統(tǒng)的數(shù)字濾波器的設計使用繁瑣的公式計算,,改變參數(shù)后需要重新計算,,從而在設計濾波器尤其是高階濾波器時工作量很大。利用MATLAB信號處理箱(Signal Processing Toolbox)可以快速有效地實現(xiàn)數(shù)字濾波器的設計與仿真,。
2 數(shù)字濾波器及傳統(tǒng)設計方法
數(shù)字濾波器可以理解為是一個計算程序或算法,,將代表輸入信號的數(shù)字時間序列轉化為代表輸出信號的數(shù)字時間序列,并在轉化過程中,,使信號按預定的形式變化,。數(shù)字濾波器有多種分類,根據(jù)數(shù)字濾波器沖激響應的時域特征,,可將數(shù)字濾波器分為兩種,,即無限長沖激響應(IIR)濾波器和有限長沖激響應(FIR)濾波器。
IIR數(shù)字濾波器具有無限寬的沖激響應,與模擬濾波器相匹配,,所以IIR濾波器的設計可以采取在模擬濾波器設計的基礎上進一步變換的方法,。其設計方法主要有經(jīng)典設計法、直接設計法和最大平滑濾波器設計法,。FIR數(shù)字濾波器的單位脈沖響應是有限長序列,。它的設計問題實質(zhì)上是確定能滿足所要求的轉移序列或脈沖響應的常數(shù)問題,設計方法主要有窗函數(shù)法,、頻率采樣法和等波紋最佳逼近法等,。
在對濾波器實際設計時,整個過程的運算量是很大的,。設計階數(shù)較高的IIR濾波器時,,計算量更大,設計過程中改變參數(shù)或濾波器類型時都要重新計算,。
設計完成后對已設計的濾波器的頻率響應要進行校核,。要得到幅頻、相頻響應特性,,運算量也是很大的,。平時所要設計的數(shù)字濾波器,階數(shù)和類型并不一定是完全給定的,,很多時候要根據(jù)設計要求和濾波效果不斷地調(diào)整,,以達到設計的最優(yōu)化。在這種情況下,,濾波器設計就要進行大量復雜的運算,,單純的靠公式計算和編制簡單的程序很難在短時間內(nèi)完成。利用MATLAB強大的計算功能進行計算機輔助設計,,可以快速有效地設計數(shù)字濾波器,,大大地簡化了計算量。
3 IIR濾波器的MATLAB設計
3.1 FDATool界面設計
3.1.1 FDATool的介紹
FDATool(Filter Design&Analysis Tool)是MATLAB信號處理工具箱里專用的濾波器設計分析工具,,MATLAB 6.O以上的版本還專門增加了濾波器設計工具箱(Filter Design Toolbox),。FDATool可以設計幾乎所有的常規(guī)濾波器,包括FIR和IIR的各種設計方法,。它操作簡單,方便靈活,。
FDATool,。界面總共分兩大部分,一部分是Design Filter,。在界面的下半部,,用來設置濾波器的設計參數(shù);另一部分則是特性區(qū),在界面的上半部分,,用來顯示濾波器的各種特性,。Design Filter部分主要分為:Filter Type(濾波器類型)選項,包括Lowpass(低通),、Highpass(高通),、Bandpass(帶通)、Bandstop(帶阻)和特殊的 FIR濾波器,。
Design Method(設計方法)選項,,包括IIR濾波器的Butterwotth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法,、Chebyshev Type II(切比雪夫II型)法,、Elliptic(橢圓濾波器)法和FIR濾波器的Equiripple法、Least-Squares(最小乘方)法,、 Window(窗函數(shù))法,。
Filter Order(濾波器階數(shù))選項,定義濾波器的階數(shù),,包括Specify Order(指定階數(shù))和Minimum Order(最小階數(shù)),。在Specify Order中填入所要設計的濾波器的階數(shù)(N階濾波器,Specify Order="N-1"),。如果選擇Minimum Order,,則MATLAB根據(jù)所選擇的濾波器類型自動使用最小階數(shù)。
Frequency Specifications選項,,可以詳細定義頻帶的各參數(shù),,包括采樣頻率和頻帶的截止頻率。它的具體選項由Filter Type選項和Design Method選項決定,。例如Bandpass(帶通)濾波器需要定義Fstop1(下阻帶截止頻率),、Fpass1(通帶下限截止頻率)、Fpass2 (通帶上限截止頻率),、Fstop2(上阻帶截止頻率),,而Lowpass(低通)濾波器只需要定義Fstop1、Fpass1,。采用窗函數(shù)設計濾波器時,,由于過渡帶是由窗函數(shù)的類型和階數(shù)所決定,所以只需定義通帶截止頻率,,而不必定義阻帶參數(shù),。
Magnitude Specifications選項,可以定義幅值衰減的情況,。例如設計帶通濾波器時,,可以定義Wstop1(頻率Fstop1處的幅值衰減),、Wpass (通帶范圍內(nèi)的幅值衰減)、Wstop2(頻率Fstop2處的幅值衰減),。當采用窗函數(shù)設計時,,通帶截止頻率處的幅值衰減固定為6db,所以不必定義,。
Window Specifications選項,,當選取采用窗函數(shù)設計,該選項可定義,,它包含了各種窗函數(shù),。
3.1.2 IIR濾波器設計實例
本文以一個IIR濾波器的設計為例說明如何使用MATLAB設計數(shù)字濾波器。要求設計一個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可以在特性區(qū)看到所設計的幅頻響應、相頻響應,、沖擊響應和零極點配置等特性,,如圖1所示。設計完成后將結果保存為filterl.fda文件,。
圖1濾波器的幅頻,、相頻和沖激響應(特性區(qū))
3.2 程序設計法
在MATLAB環(huán)境下運行該程序即可得到濾波器的時域沖激響應。由于篇幅所限,,這里不再詳述源程序,。 在MATLAB中,對各種濾波器的設計都有相應的計算振幅,、相位和沖激響應的函數(shù),,可以用來做濾波器程序設計。上例的IIR濾波器的沖激響應可用程序設計如下:
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,'.');
3.3設計實例分析
由圖1(a)可知,,這種濾波器在100-200Hz的通帶范圍內(nèi)是等波紋的,而在阻帶中是單調(diào)的,,這是Chebyshev I濾波器的幅頻特性,。由圖1(b)可知,在100-200Hz的范圍內(nèi)相移較小,,其曲線近似一條直線,,失真較小,;當頻率超過這一范圍時,,相移較大,而且其曲線是非直線的,,所以失真也較大,。圖1(c)得到了Chebyshev I濾波器的時域沖激響應,在5ms-100ms有沖激響應,,超過這一范圍的沖激響應近似為零,,進而實現(xiàn)了Chebyshev I帶通濾波器的設計。
4 Simulink仿真
4.1 Simulink仿真實例
通過調(diào)用Simulink中的功能模塊,,可以構成數(shù)字濾波器的仿真框圖,。在仿真過程中,雙擊各功能模塊,,隨時改變參數(shù),,獲得不同狀態(tài)下的仿真結果。例如原始信號x(t)=2sin(0.05wt)+w(t),,w(t)為隨機信號,,幅值為0.2,通過一傳遞函數(shù)為H(z)=0.15/(1-0.8z-1)的濾波器可得到如圖2的仿真結果,。其中仿真過程中可導入FDATool所設計的濾波器文件,。
4.2 仿真分析
比較圖2中(b)和(c)的波形可知,輸入的原始信號經(jīng)過濾波器濾波后,,(b)中波形的毛刺部分(即干擾噪聲)被濾除,,輸出的信號更接近正弦波,如(c)中所示波形,。由此說明,,傳遞函數(shù)為H(z)=0.15/(1-0.8z-1)的濾波器的設計是恰當?shù)摹?/p>
5 結論
利用MATLAB的強大運算功能,基于MATLAB的信號處理工具箱(Signal Processing Toolbox)的數(shù)字濾波器設計法可以快速有效地設計由軟件組成的常規(guī)數(shù)字濾波器,,設計方便,、快捷,,大大減輕了工作量。在設計過程中可以對比濾波器特性,。隨時更改參數(shù),,以達到濾波器設計的最優(yōu)化。利用MATLAB設計數(shù)字濾波器在數(shù)字通信系統(tǒng)和計算機領域信號處理中,,有著廣泛的應用前景,。