1 引 言
數字濾波器是數字信號處理的基礎,用來對信號進行過濾、檢測與參數估計等處理,在通信、圖像、語音、雷達等許多領域都有著十分廣泛的應用。尤其在圖像處理、數據壓縮等方面取得了令人矚目的進展和成就。鑒于此,數字濾波器的設計就顯得尤為重要。
目前數字濾波器的設計有許多現成的高級語言設計程序,但他們都存在設計效率較低,不具有可視圖形,不便于修改參數等缺點,而Matlab為數字濾波的研究和應用提供了一個直觀、高效、便捷的利器。他以矩陣運算為基礎,把計算、可視化、程序設計融合到了一個交互式的工作環境中。尤其是Matlab工具箱使各個領域的研究人員可以直觀方便地進行科學研究與工程應用。其中的信號處理工具箱、圖像處理工具箱、小波工具箱等更是為數字濾波研究的蓬勃發展提供了可能。
本文主要介紹基于Matlab環境的IIR數字濾波器的設計,然后將設計結果應用于圖像處理,針對處理結果進一步分析了濾波器性能的優劣。
2 IIR數字濾波器的設計
IIR數字濾波器最大的優點是給定一組指標時,他的階數要比相同組的FIR濾波器的低得多。基于Matlab的IIR濾波器的設計方法主要有完全設計法、模擬原型設計法和直接設計法等。
2.1 模擬原型法
采用經典低通濾波器作為連續域上的設計模型,通過頻域變換得到IIR數字濾波器,最后還要進行離散化處理。Matlab提供的低通模擬濾波器原型函數包括: besselap,buttap,cheb1lp,cheb2ap,ellipap;頻域變換函數包括:lp2bp,lp2bs,lp2hp, lp2lp;離散化處理函數有bilinear和impinvar。
2.2 完全設計法
Matlab信號處理工具箱提供了幾個直接設計IIR數字濾波器的函數,直接調用就可以設計濾波器,這為設計通用濾波器提供了方便。
設計Butterworth濾波器用函數butter(),可以設計低通、高通、帶通和帶阻的數字和模擬濾波器,其特性是通帶內的幅度響應最大限度的平滑,但損失了截止頻率處的下降斜度。
設計Chebyshev I型濾波器用函數chebyl()。可以設計低通、高通、帶通和帶阻的數字和模擬ChebyshevI型濾披器,其通帶內為等波紋,阻帶內為單調。Chebyshev I型濾波器的下降斜度比II型大,但其代價是通帶內波紋較大。
設計Chebyshev II型濾波器用函數cheby2()。可以設計低通、高通、帶通和帶阻的數字和模擬Chebyshev II型濾波器,其通帶內為單調,阻帶內等波紋。Chebyshev II型濾波器的下降斜度比I型小,但其阻帶內波紋較大。
設計橢圓濾波器用函數ellip(),與cheby1,cheby2類似,可以設計低通、高通、帶通和帶阻的數字和模擬濾波器。與Butterworth和 chebyshev濾波器相比,ellip函數可以得到下降斜度更大的濾波器,得到通帶和阻帶均為等波紋。一般情況下,橢圓濾波器能以最低的階實現指定的性能指標。
2.3 直接設計法
直接設計方法的思想是基于給定的濾波器參數直接在離散域上尋找合適的數字濾波器,他不限于常規的濾波器類型,如低通、高通、帶通和帶阻等。這種方法甚至可以設計多帶的頻率響應,Matlab提供yulewalk函數用于輔助設計。
2.4 通用Butterworth設計方法
使用這種方法設計的Butterworth數字濾波器可以有不同數目的零點和極點,Matlab提供的maxflat函數實現了這一功能。這個函數與 butter函數很相似,但他可以指定兩個階參數,其中歸一化和非歸一化各一個。如果這兩個參數的值相同,那么他與butter函數的結果就是相同的。
2.5 參數建模法
尋找接近于所需要設計的濾波器的通用模型,時域上的建模函數為lpc,prony,Stmcb;頻域上的建模函數有invfreqs和invfreqz。
3 IIR數字濾波器的實現
當從設計中求得了濾波器H(z)的分子分母系數向量之后,用filter指令可以實現對應的數字濾波器;也可通過Simulink建模仿真來實現濾波器。
(1)用filter指令實現
(2)用Simulink實現
首先構建Simulink模型:
然后設置仿真參數:仿真時間段為0~1 s,求解器采用固定步長的離散求解器,其余參數采用默認值。設置離散濾波器參數:分子系數向量[0,1],分母系數向量[1,-0.8],采樣時間0.1 s。
再設置數據輸入輸出模塊的參數,輸入變量名為simin,并允許數據外插。輸出數據為simout,設定為向量格式,將設置好的仿真存盤為discretfil ter.mdl文件。仿真程序:
(3)理論計算
由此可見,用filter指令和Simulink建模仿真結果與理論計算結果是一致的。
4 數字濾波器應用于圖像處理
示例:用同一指標的低通濾波器對加不同噪聲的同一幅圖像濾波效果的比較。
由濾波效果圖發現,我們設計的3階butterworthz低通濾波器在d0(截止頻率)為20時。對3種噪聲的濾除效果相差不多,都達到了濾除噪聲的目的,但使圖像均不同程度的模糊。這是因為在一幅圖像中,圖像的邊緣、圖像中的顆粒噪聲均代表了圖像信號的高頻分量,而圖像的背景則代表了其低頻分量。用濾波的方法濾除其商頻分最就能去掉噪聲,但同時使圖像的高頻分量得到衰減,也就是說濾波后圖像變模糊了。當然也不難想象,Butterworth低通濾波器的截止頻率越低,圖像信號的高頻分量損失就越多,濾波后的圖像也就越模糊。
圖3使用的是同一階數(N=5)不同截止頻率的濾波器對加入鹽椒噪聲的圖像的濾波效果比較。
5 結 語
綜上所述,利用Matlab的信號處理工具箱能夠方便快捷地設計和實現各種濾波器,這對于信號的傳輸和處理有著極其重要的作用。