《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > EDA與制造 > 設(shè)計(jì)應(yīng)用 > 基于MATLAB在IIR濾波器的設(shè)計(jì)與仿真
基于MATLAB在IIR濾波器的設(shè)計(jì)與仿真
摘要: 傳統(tǒng)的數(shù)字濾波器的設(shè)計(jì)使用繁瑣的公式計(jì)算,,改變參數(shù)后需要重新計(jì)算,,從而在設(shè)計(jì)濾波器尤其是高階濾波器時(shí)工作量很大,。利用MATLAB信號(hào)處理箱可以快速有效地實(shí)現(xiàn)數(shù)字濾波器的設(shè)計(jì)與仿真,。
關(guān)鍵詞: Matlab IIR濾波器
Abstract:
Key words :

  1 引言

  在現(xiàn)代通信系統(tǒng)中,由于信號(hào)中經(jīng)?;煊懈鞣N復(fù)雜成分,,所以很多信號(hào)的處理和分析都是基于濾波器而進(jìn)行的。但是,,傳統(tǒng)的數(shù)字濾波器的設(shè)計(jì)使用繁瑣的公式計(jì)算,,改變參數(shù)后需要重新計(jì)算,從而在設(shè)計(jì)濾波器尤其是高階濾波器時(shí)工作量很大,。利用MATLAB信號(hào)處理箱(Signal Processing Toolbox)可以快速有效地實(shí)現(xiàn)數(shù)字濾波器的設(shè)計(jì)與仿真,。

  2 數(shù)字濾波器及傳統(tǒng)設(shè)計(jì)方法

  數(shù)字濾波器可以理解為是一個(gè)計(jì)算程序或算法,將代表輸入信號(hào)的數(shù)字時(shí)間序列轉(zhuǎn)化為代表輸出信號(hào)的數(shù)字時(shí)間序列,,并在轉(zhuǎn)化過(guò)程中,,使信號(hào)按預(yù)定的形式變化。數(shù)字濾波器有多種分類,,根據(jù)數(shù)字濾波器沖激響應(yīng)的時(shí)域特征,,可將數(shù)字濾波器分為兩種,即無(wú)限長(zhǎng)沖激響應(yīng)(IIR)濾波器和有限長(zhǎng)沖激響應(yīng)(FIR)濾波器,。

  IIR數(shù)字濾波器具有無(wú)限寬的沖激響應(yīng),,與模擬濾波器相匹配,所以IIR濾波器的設(shè)計(jì)可以采取在模擬濾波器設(shè)計(jì)的基礎(chǔ)上進(jìn)一步變換的方法,。其設(shè)計(jì)方法主要有經(jīng)典設(shè)計(jì)法,、直接設(shè)計(jì)法和最大平滑濾波器設(shè)計(jì)法。FIR數(shù)字濾波器的單位脈沖響應(yīng)是有限長(zhǎng)序列,。它的設(shè)計(jì)問(wèn)題實(shí)質(zhì)上是確定能滿足所要求的轉(zhuǎn)移序列或脈沖響應(yīng)的常數(shù)問(wèn)題,,設(shè)計(jì)方法主要有窗函數(shù)法、頻率采樣法和等波紋最佳逼近法等,。

  在對(duì)濾波器實(shí)際設(shè)計(jì)時(shí),,整個(gè)過(guò)程的運(yùn)算量是很大的,。設(shè)計(jì)階數(shù)較高的IIR濾波器時(shí),計(jì)算量更大,,設(shè)計(jì)過(guò)程中改變參數(shù)或?yàn)V波器類型時(shí)都要重新計(jì)算,。

  設(shè)計(jì)完成后對(duì)已設(shè)計(jì)的濾波器的頻率響應(yīng)要進(jìn)行校核。要得到幅頻,、相頻響應(yīng)特性,,運(yùn)算量也是很大的。平時(shí)所要設(shè)計(jì)的數(shù)字濾波器,,階數(shù)和類型并不一定是完全給定的,很多時(shí)候要根據(jù)設(shè)計(jì)要求和濾波效果不斷地調(diào)整,,以達(dá)到設(shè)計(jì)的最優(yōu)化,。在這種情況下,濾波器設(shè)計(jì)就要進(jìn)行大量復(fù)雜的運(yùn)算,,單純的靠公式計(jì)算和編制簡(jiǎn)單的程序很難在短時(shí)間內(nèi)完成,。利用MATLAB強(qiáng)大的計(jì)算功能進(jìn)行計(jì)算機(jī)輔助設(shè)計(jì),可以快速有效地設(shè)計(jì)數(shù)字濾波器,,大大地簡(jiǎn)化了計(jì)算量,。

  3 IIR濾波器的MATLAB設(shè)計(jì)

  3.1  FDATool界面設(shè)計(jì)

  3.1.1 FDATool的介紹

  FDATool(Filter Design&Analysis Tool)是MATLAB信號(hào)處理工具箱里專用的濾波器設(shè)計(jì)分析工具,MATLAB 6.O以上的版本還專門增加了濾波器設(shè)計(jì)工具箱(Filter Design Toolbox),。FDATool可以設(shè)計(jì)幾乎所有的常規(guī)濾波器,,包括FIR和IIR的各種設(shè)計(jì)方法。它操作簡(jiǎn)單,,方便靈活,。

  FDATool。界面總共分兩大部分,,一部分是Design Filter,。在界面的下半部,用來(lái)設(shè)置濾波器的設(shè)計(jì)參數(shù),;另一部分則是特性區(qū),,在界面的上半部分,用來(lái)顯示濾波器的各種特性,。Design Filter部分主要分為:Filter Type(濾波器類型)選項(xiàng),,包括Lowpass(低通)、Highpass(高通),、Bandpass(帶通),、Bandstop(帶阻)和特殊的 FIR濾波器。

  Design Method(設(shè)計(jì)方法)選項(xiàng),,包括IIR濾波器的Butterwotth(巴特沃思)法,、Chebyshev  Type I(切比雪夫I型)法,、Chebyshev Type II(切比雪夫II型)法、Elliptic(橢圓濾波器)法和FIR濾波器的Equiripple法,、Least-Squares(最小乘方)法,、 Window(窗函數(shù))法。

  Filter Order(濾波器階數(shù))選項(xiàng),,定義濾波器的階數(shù),,包括Specify Order(指定階數(shù))和Minimum Order(最小階數(shù))。在Specify Order中填入所要設(shè)計(jì)的濾波器的階數(shù)(N階濾波器,,Specify Order="N-1"),。如果選擇Minimum Order,則MATLAB根據(jù)所選擇的濾波器類型自動(dòng)使用最小階數(shù),。

  Frequency Specifications選項(xiàng),,可以詳細(xì)定義頻帶的各參數(shù),包括采樣頻率和頻帶的截止頻率,。它的具體選項(xiàng)由Filter Type選項(xiàng)和Design Method選項(xiàng)決定,。例如Bandpass(帶通)濾波器需要定義Fstop1(下阻帶截止頻率)、Fpass1(通帶下限截止頻率),、Fpass2 (通帶上限截止頻率),、Fstop2(上阻帶截止頻率),而Lowpass(低通)濾波器只需要定義Fstop1,、Fpass1,。采用窗函數(shù)設(shè)計(jì)濾波器時(shí),由于過(guò)渡帶是由窗函數(shù)的類型和階數(shù)所決定,,所以只需定義通帶截止頻率,,而不必定義阻帶參數(shù)。

  Magnitude Specifications選項(xiàng),,可以定義幅值衰減的情況,。例如設(shè)計(jì)帶通濾波器時(shí),可以定義Wstop1(頻率Fstop1處的幅值衰減),、Wpass (通帶范圍內(nèi)的幅值衰減),、Wstop2(頻率Fstop2處的幅值衰減)。當(dāng)采用窗函數(shù)設(shè)計(jì)時(shí),,通帶截止頻率處的幅值衰減固定為6db,,所以不必定義。

  Window Specifications選項(xiàng),,當(dāng)選取采用窗函數(shù)設(shè)計(jì),,該選項(xiàng)可定義,它包含了各種窗函數(shù),。

  3.1.2  IIR濾波器設(shè)計(jì)實(shí)例

  本文以一個(gè)IIR濾波器的設(shè)計(jì)為例說(shuō)明如何使用MATLAB設(shè)計(jì)數(shù)字濾波器,。要求設(shè)計(jì)一個(gè)10階的帶通Chebyshev I濾波器,,它的通帶范圍是100到200Hz,采樣頻率為1000Hz,,Rp=0.5,。

  本例中,首先在Filter Type中選擇Bandpass(帶通濾波器),;在Design Method選項(xiàng)中選擇IIR,,接著在相鄰的右則選項(xiàng)中選擇Chebyshev I(切比雪夫I型);指定Filter Order項(xiàng)中的Specify Order="10",;由于采用的是切比雪夫設(shè)計(jì),,不必在Options中選擇;然后在Frequency Specifications中選擇Unit為Hz,,給出采樣頻率Fs=1000,,通帶Fpass1=100和Fpass2=200;最后在 Magnitude Specifications中 選擇Unit為db,,Apass=0.5。設(shè)置完成后點(diǎn)擊Design Filter即可得到所設(shè)計(jì)的IIR濾波器,。通過(guò)菜單選項(xiàng)Analysis可以在特性區(qū)看到所設(shè)計(jì)的幅頻響應(yīng),、相頻響應(yīng)、沖擊響應(yīng)和零極點(diǎn)配置等特性,,如圖1所示,。設(shè)計(jì)完成后將結(jié)果保存為filterl.fda文件。

濾波器的幅頻

濾波器的幅頻

濾波器的幅頻

圖1濾波器的幅頻,、相頻和沖激響應(yīng)(特性區(qū))

  3.2  程序設(shè)計(jì)法

       在MATLAB環(huán)境下運(yùn)行該程序即可得到濾波器的時(shí)域沖激響應(yīng),。由于篇幅所限,這里不再詳述源程序,。 在MATLAB中,,對(duì)各種濾波器的設(shè)計(jì)都有相應(yīng)的計(jì)算振幅、相位和沖激響應(yīng)的函數(shù),,可以用來(lái)做濾波器程序設(shè)計(jì),。上例的IIR濾波器的沖激響應(yīng)可用程序設(shè)計(jì)如下:

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設(shè)計(jì)實(shí)例分析

  由圖1(a)可知,,這種濾波器在100-200Hz的通帶范圍內(nèi)是等波紋的,,而在阻帶中是單調(diào)的,這是Chebyshev I濾波器的幅頻特性,。由圖1(b)可知,,在100-200Hz的范圍內(nèi)相移較小,其曲線近似一條直線,,失真較??;當(dāng)頻率超過(guò)這一范圍時(shí),相移較大,,而且其曲線是非直線的,,所以失真也較大。圖1(c)得到了Chebyshev  I濾波器的時(shí)域沖激響應(yīng),,在5ms-100ms有沖激響應(yīng),,超過(guò)這一范圍的沖激響應(yīng)近似為零,進(jìn)而實(shí)現(xiàn)了Chebyshev I帶通濾波器的設(shè)計(jì),。

  4 Simulink仿真

  4.1 Simulink仿真實(shí)例

  通過(guò)調(diào)用Simulink中的功能模塊,,可以構(gòu)成數(shù)字濾波器的仿真框圖。在仿真過(guò)程中,,雙擊各功能模塊,,隨時(shí)改變參數(shù),獲得不同狀態(tài)下的仿真結(jié)果,。例如原始信號(hào)x(t)=2sin(0.05wt)+w(t),,w(t)為隨機(jī)信號(hào),幅值為0.2,,通過(guò)一傳遞函數(shù)為H(z)=0.15/(1-0.8z-1)的濾波器可得到如圖2的仿真結(jié)果,。其中仿真過(guò)程中可導(dǎo)入FDATool所設(shè)計(jì)的濾波器文件。 

仿真框圖

仿真框圖

仿真框圖

  4.2  仿真分析

  比較圖2中(b)和(c)的波形可知,,輸入的原始信號(hào)經(jīng)過(guò)濾波器濾波后,,(b)中波形的毛刺部分(即干擾噪聲)被濾除,輸出的信號(hào)更接近正弦波,,如(c)中所示波形,。由此說(shuō)明,傳遞函數(shù)為H(z)=0.15/(1-0.8z-1)的濾波器的設(shè)計(jì)是恰當(dāng)?shù)摹?/p>

  5 結(jié)論

  利用MATLAB的強(qiáng)大運(yùn)算功能,,基于MATLAB的信號(hào)處理工具箱(Signal Processing Toolbox)的數(shù)字濾波器設(shè)計(jì)法可以快速有效地設(shè)計(jì)由軟件組成的常規(guī)數(shù)字濾波器,,設(shè)計(jì)方便、快捷,,大大減輕了工作量,。在設(shè)計(jì)過(guò)程中可以對(duì)比濾波器特性。隨時(shí)更改參數(shù),,以達(dá)到濾波器設(shè)計(jì)的最優(yōu)化,。利用MATLAB設(shè)計(jì)數(shù)字濾波器在數(shù)字通信系統(tǒng)和計(jì)算機(jī)領(lǐng)域信號(hào)處理中,有著廣泛的應(yīng)用前景,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。