- 基于Matlab的FIR數字濾波器設計
- 數字濾波器及設計
- 使用Matlab信號處理工具箱提供的函數
- 窗函數法設計FIR濾波器方案
- FDATool的設計
提出FIR敷字濾波器的設計方案,并基于Matlab實(shí)現濾波仿真。通過(guò)使用Matlab信號處理工具箱提供的函數,選擇適當的窗函數編寫(xiě)程序,其中窗函數按照實(shí)際信號的處理需求,參數折中選擇。實(shí)驗獲得了比較理想的濾波器特性,可以實(shí)現較好的濾波作用。而且在實(shí)際應用中只需按需求修改濾波器參數,并結合程序的相應改動(dòng),即可實(shí)現不同功能的濾波器。另外,介紹了利用FDATool設計濾波器的方法,簡(jiǎn)單修改參數即可實(shí)現多種濾波器。
數字濾波器可以過(guò)濾時(shí)間離散信號,通過(guò)對抽樣數據進(jìn)行數字處理來(lái)達到頻域濾波的目的,目前已經(jīng)廣泛應用在高保真的信號處理,如數字音頻、圖像處理、數據傳輸、生物醫學(xué)等領(lǐng)域。由于計算機技術(shù)和大規模集成電路的發(fā)展,數字濾波器已可用計算機軟件實(shí)現。借助Mathb強大的數據處理能力,靈活使用模塊集和工具箱,可以按照需求編寫(xiě)程序來(lái)實(shí)現多種濾波器設計。伴隨Matlab的不斷發(fā)展以及工具箱的不斷開(kāi)發(fā),工作平臺的改善,使用Mathb的編程工作量會(huì )大大減少。Matlab提供了完整的聯(lián)機查詢(xún)、幫助系統,提供了比較完備的調試系統,程序不必經(jīng)過(guò)編譯就可以直接運行,而且能夠及時(shí)地報告出現的錯誤及進(jìn)行出錯原因分析。而這也使得基于Matlab的設計變得方便易于使用。
1 數字濾波器及設計方案
應用數字濾波器處理模擬信號時(shí),首先要對輸入模擬信號進(jìn)行限帶、抽樣和模/數轉換,數字濾波器輸入信號的抽樣率應大于被處理信號帶竟的兩倍,其頻率響應具有以抽樣頻率為間隔的周期重復特性,且以折疊頻率即1/2抽樣頻率點(diǎn)呈鏡像對稱(chēng)。濾波器的輸出信號須經(jīng)數/模轉換、平滑處理。
FIR數字濾波器的輸出值u(Kt)與輸出的過(guò)去值u(Kt-kt)表達關(guān)系如下:

這是不斷乘累加的過(guò)程,解決了濾波器的系數α問(wèn)題,再加上乘法和加法計算即可實(shí)現濾波器設計。由于FIR濾波器的單位脈沖響應h(n)是有限長(cháng)序列,因此濾波器沒(méi)有不穩定的問(wèn)題,FIR濾波器一般為非遞歸結構,因此在采用Matlab設計時(shí)采用有限精度的計算,以避免出現遞歸結構中極性震蕩等不穩定現象。常見(jiàn)的兩種FIR濾波器設計方法是窗函數法和頻率采樣法。雖然頻率采樣法可以精確控制采樣點(diǎn)的頻率響應,但是設計中必須插入過(guò)渡點(diǎn)來(lái)改善紋波,而且截止頻率不易控制,過(guò)渡點(diǎn)也需要進(jìn)一步的優(yōu)化,對比來(lái)看窗函數法則是一種基本的設計理念,設計方法比較成熟。并且Matlab中提供的函數可以方便地實(shí)現加窗線(xiàn)性相位FIR濾波器設計,包括了比較常見(jiàn)的低通、帶通、高通和帶阻數字濾波器。本文采用的是窗函數結合編程的設計方法。
窗函數法的基本思想是先給定理想的濾波器頻響為,

而所要求設計的頻響為,之后的工作便是使


對于FDATool設計法,本文通過(guò)選擇適當參數,利用Matlab完成。
[page]
2 FIR數字濾波器設計
2.1 窗函數法設計FIR濾波器方案
在Matlab中可直接產(chǎn)生窗函數:矩形窗(Rectangle Window),三角窗(Triangular Window),漢寧窗(Hanging Window),凱塞窗(Kaiser Window)等,通過(guò)調用系統的函數即可實(shí)現窗的加載。具體調用方法如下:調用格式:w=函數名(n),根據長(cháng)度n產(chǎn)生一個(gè)矩形窗w。一般正常的心電信號頻率范圍在0.05~100 Hz之內,這本身就是一種比較微弱的電信號,當受到身體其他器官的干擾信號后,心電信號將會(huì )嚴重失真。另外還要考慮到電子器件噪聲和50 Hz的工頻信號的存在。這就需要盡量消除噪聲和干擾的影響。這里選取低通濾波器的設計指標為:通帶截止頻率ωp=0.2π,阻帶截止頻率ωs=0.3π,最小阻帶衰減As≥50 dB。所以得出過(guò)渡帶寬tr_width=ωs-ωp,列長(cháng)N=10 π/tr_width。選擇窗函數一般是選擇主瓣較寬的,這樣可以增加阻帶的衰減,保證了通帶的平穩,另外在保證阻帶最小衰減指標的情況下,適當增加列長(cháng)N值,窄化過(guò)渡帶。根據窗函數最小阻帶衰減的特性。只有海明窗和凱塞窗可提供大于50 dB的衰減。實(shí)際應用中選用窗函數大多是它們的折中,凱塞窗可以通過(guò)改變參數值來(lái)折中選擇主瓣寬度和旁瓣衰減,基于此的濾波器適應能力強且比較靈活。本文即是采用的凱塞窗編程設計。窗函數設計法是用一定寬度窗函數截取無(wú)限脈沖響應序列獲得有限長(cháng)的脈沖響應序列,設計步驟為:
(1)通過(guò)傅里葉逆變換獲得理想濾波器的單位脈沖響應hd(n)。

(2)由性能指標確定窗函數W(n)和窗口長(cháng)度N。
(3)求得實(shí)際濾波器的單位脈沖響應h(n),h(n)即為所設計FIR濾波器系數向量a(n)。

(4)檢驗濾波器性能。
Matlab信號處理工具箱提供了各種窗函數、濾波器設計函數和濾波器實(shí)現函數。設計中利用Matlab提供的函數firl來(lái)實(shí)現,編程則是直接調用這些函數簡(jiǎn)單直觀(guān)的完成設計。調用格式:firl(n,Wn,‘ftype’,Window),其中n為階數、Wn為截止頻率、ftype是濾波器的類(lèi)型、Window是窗函數。應用凱塞窗的代碼如下:


從濾波效果圖看,所設計的濾波器基本消除了噪聲和干擾的影響,客觀(guān)的得出真實(shí)信號。按照設計方案中濾波器的指標,執行函數操作可以得到:N=68,As=59。之后增加參數N值。在該設計中,利用凱塞窗函數,執行了多種N值的改變。伴隨N值增大,過(guò)渡帶變窄,但阻帶的最小衰減沒(méi)有改變。
2.2 FDATool設計方案
FDATool(Filter Design&Analysis Too1)是Matlab信號處理工具箱專(zhuān)用的濾波器設計分析工具,操作簡(jiǎn)單、靈活,可以采用多種方法設計FIR濾波器。這種方法設計的數字濾波器,可以隨時(shí)調整濾波器濾披特性,而且濾波結果實(shí)時(shí)顯示在圖形區,減少了工作量,有利于濾波器設計的進(jìn)一步優(yōu)化。在Matlab命令窗口輸入FDATool后回車(chē)會(huì )彈出FDATool界面,也可在Matlab主界面下方選擇“start”→“toolbox”→“ filterdesign”。具體參數選擇為:
(1)濾波器類(lèi)型(filter type)為lowpass;
(2)設計方法(design method)為FIR,使用窗口Window;
(3)濾波器的階數(fiter order)為15;
(4)窗口類(lèi)型(Window)為Kaiser,beta為0.5;
(5)fs為48 000 Hz,fc為10 800 Hz。
[page]
點(diǎn)擊“design filter”即可。值得注意的是,這里選擇filter order為15階,而不是所設計的16階濾波器。因為常數系數項h(0)=0。通過(guò)菜單“analysis”選擇“magnitude”和“phase response”即可得到圖3,圖4的特性顯示。“analysis”選擇“step response”和“im-pulse”可以得到圖5,圖6的響應顯示??梢钥闯鏊O計FIR濾波器的階躍響應和沖擊響應比較接近理想狀態(tài)。


3 結論
從圖1~4的特性曲線(xiàn)中可以看出該濾波器的性能基本達到了妻求,濾波作用比較明顯。曲線(xiàn)相對比較平穩,能夠滿(mǎn)足微弱信號濾波器的設計技術(shù)指標。特別是從方案二中的相頻特性曲線(xiàn)來(lái)看,曲線(xiàn)通過(guò)原點(diǎn)且為一條平滑直線(xiàn),說(shuō)明具有良好的線(xiàn)性相位特性,而這也是在應用中選擇FIR數字濾波器的重要原因,但是它的實(shí)際效果還要經(jīng)過(guò)實(shí)踐的檢驗。FIR幅頻特性精度比IIR低,且濾波器所需階次比較高,但是它擁有很好的線(xiàn)性相位,即不同頻率分量的信號經(jīng)過(guò)FIR濾波器后他們的時(shí)問(wèn)差不變。另外,FIR還存在的缺點(diǎn)應加以改善,如信號的延遲偏大。這就考慮到用高性能的DSP器件,由于其處理速度快,此缺點(diǎn)在一點(diǎn)程度上是可以改善的。
4 結語(yǔ)
本文通過(guò)設計實(shí)例,介紹了利用Matlab實(shí)現數字信號處理中的數字濾波器設計,從結果可以看出它們均可以達到技術(shù)指標要求,而且方法簡(jiǎn)單、快捷,大大減輕了工作量。濾波器的設計工作完成后,可以借助Matlah的export操作導出所設計濾波器的系統函數H(x)。由于Matl-ah具有強大的接口功能,仿真后的結果可以很方便的移植到DSP,CPLD或FPGA等器件中。在實(shí)際應用中,只需按要求修改濾波器參數,并對程序作較少的改動(dòng),即可實(shí)現不同的濾波器,實(shí)用性較強。