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