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