你的位置:首頁(yè) > 電源管理 > 正文

基于Matlab的FIR數(shù)字濾波器設(shè)計(jì)

發(fā)布時(shí)間:2011-12-21

中心議題:
  • 基于Matlab的FIR數(shù)字濾波器設(shè)計(jì)
  • 數(shù)字濾波器及設(shè)計(jì)
解決方案:
  • 使用Matlab信號(hào)處理工具箱提供的函數(shù)
  • 窗函數(shù)法設(shè)計(jì)FIR濾波器方案
  • FDATool的設(shè)計(jì)

提出FIR敷字濾波器的設(shè)計(jì)方案,并基于Matlab實(shí)現(xiàn)濾波仿真。通過(guò)使用Matlab信號(hào)處理工具箱提供的函數(shù),選擇適當(dāng)?shù)拇昂瘮?shù)編寫程序,其中窗函數(shù)按照實(shí)際信號(hào)的處理需求,參數(shù)折中選擇。實(shí)驗(yàn)獲得了比較理想的濾波器特性,可以實(shí)現(xiàn)較好的濾波作用。而且在實(shí)際應(yīng)用中只需按需求修改濾波器參數(shù),并結(jié)合程序的相應(yīng)改動(dòng),即可實(shí)現(xiàn)不同功能的濾波器。另外,介紹了利用FDATool設(shè)計(jì)濾波器的方法,簡(jiǎn)單修改參數(shù)即可實(shí)現(xiàn)多種濾波器。

數(shù)字濾波器可以過(guò)濾時(shí)間離散信號(hào),通過(guò)對(duì)抽樣數(shù)據(jù)進(jìn)行數(shù)字處理來(lái)達(dá)到頻域?yàn)V波的目的,目前已經(jīng)廣泛應(yīng)用在高保真的信號(hào)處理,如數(shù)字音頻、圖像處理、數(shù)據(jù)傳輸、生物醫(yī)學(xué)等領(lǐng)域。由于計(jì)算機(jī)技術(shù)和大規(guī)模集成電路的發(fā)展,數(shù)字濾波器已可用計(jì)算機(jī)軟件實(shí)現(xiàn)。借助Mathb強(qiáng)大的數(shù)據(jù)處理能力,靈活使用模塊集和工具箱,可以按照需求編寫程序來(lái)實(shí)現(xiàn)多種濾波器設(shè)計(jì)。伴隨Matlab的不斷發(fā)展以及工具箱的不斷開(kāi)發(fā),工作平臺(tái)的改善,使用Mathb的編程工作量會(huì)大大減少。Matlab提供了完整的聯(lián)機(jī)查詢、幫助系統(tǒng),提供了比較完備的調(diào)試系統(tǒng),程序不必經(jīng)過(guò)編譯就可以直接運(yùn)行,而且能夠及時(shí)地報(bào)告出現(xiàn)的錯(cuò)誤及進(jìn)行出錯(cuò)原因分析。而這也使得基于Matlab的設(shè)計(jì)變得方便易于使用。

1 數(shù)字濾波器及設(shè)計(jì)方案

應(yīng)用數(shù)字濾波器處理模擬信號(hào)時(shí),首先要對(duì)輸入模擬信號(hào)進(jìn)行限帶、抽樣和模/數(shù)轉(zhuǎn)換,數(shù)字濾波器輸入信號(hào)的抽樣率應(yīng)大于被處理信號(hào)帶竟的兩倍,其頻率響應(yīng)具有以抽樣頻率為間隔的周期重復(fù)特性,且以折疊頻率即1/2抽樣頻率點(diǎn)呈鏡像對(duì)稱。濾波器的輸出信號(hào)須經(jīng)數(shù)/模轉(zhuǎn)換、平滑處理。

FIR數(shù)字濾波器的輸出值u(Kt)與輸出的過(guò)去值u(Kt-kt)表達(dá)關(guān)系如下:

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

窗函數(shù)法的基本思想是先給定理想的濾波器頻響為,
式中:ωc為截止頻率;α為采樣延遲。

而所要求設(shè)計(jì)的頻響為,之后的工作便是使逼近。加窗w(n)對(duì)理想濾波器的單位抽樣響應(yīng)hd(n)(見(jiàn)式(3))截?cái)啵玫剿O(shè)計(jì)的h(n)。

對(duì)于FDATool設(shè)計(jì)法,本文通過(guò)選擇適當(dāng)參數(shù),利用Matlab完成。
[page]
2 FIR數(shù)字濾波器設(shè)計(jì)

2.1 窗函數(shù)法設(shè)計(jì)FIR濾波器方案

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

(1)通過(guò)傅里葉逆變換獲得理想濾波器的單位脈沖響應(yīng)hd(n)。

(2)由性能指標(biāo)確定窗函數(shù)W(n)和窗口長(zhǎng)度N。

(3)求得實(shí)際濾波器的單位脈沖響應(yīng)h(n),h(n)即為所設(shè)計(jì)FIR濾波器系數(shù)向量a(n)。

(4)檢驗(yàn)濾波器性能。

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

 
程序執(zhí)行的結(jié)果如圖1,圖2所示。
 

從濾波效果圖看,所設(shè)計(jì)的濾波器基本消除了噪聲和干擾的影響,客觀的得出真實(shí)信號(hào)。按照設(shè)計(jì)方案中濾波器的指標(biāo),執(zhí)行函數(shù)操作可以得到:N=68,As=59。之后增加參數(shù)N值。在該設(shè)計(jì)中,利用凱塞窗函數(shù),執(zhí)行了多種N值的改變。伴隨N值增大,過(guò)渡帶變窄,但阻帶的最小衰減沒(méi)有改變。

2.2 FDATool設(shè)計(jì)方案

FDATool(Filter Design&Analysis Too1)是Matlab信號(hào)處理工具箱專用的濾波器設(shè)計(jì)分析工具,操作簡(jiǎn)單、靈活,可以采用多種方法設(shè)計(jì)FIR濾波器。這種方法設(shè)計(jì)的數(shù)字濾波器,可以隨時(shí)調(diào)整濾波器濾披特性,而且濾波結(jié)果實(shí)時(shí)顯示在圖形區(qū),減少了工作量,有利于濾波器設(shè)計(jì)的進(jìn)一步優(yōu)化。在Matlab命令窗口輸入FDATool后回車會(huì)彈出FDATool界面,也可在Matlab主界面下方選擇“start”→“toolbox”→“ filterdesign”。具體參數(shù)選擇為:

(1)濾波器類型(filter type)為lowpass;

(2)設(shè)計(jì)方法(design method)為FIR,使用窗口Window;

(3)濾波器的階數(shù)(fiter order)為15;

(4)窗口類型(Window)為Kaiser,beta為0.5;

(5)fs為48 000 Hz,fc為10 800 Hz。
[page]
點(diǎn)擊“design filter”即可。值得注意的是,這里選擇filter order為15階,而不是所設(shè)計(jì)的16階濾波器。因?yàn)槌?shù)系數(shù)項(xiàng)h(0)=0。通過(guò)菜單“analysis”選擇“magnitude”和“phase response”即可得到圖3,圖4的特性顯示。“analysis”選擇“step response”和“im-pulse”可以得到圖5,圖6的響應(yīng)顯示??梢钥闯鏊O(shè)計(jì)FIR濾波器的階躍響應(yīng)和沖擊響應(yīng)比較接近理想狀態(tài)。
 
 

3 結(jié)論

從圖1~4的特性曲線中可以看出該濾波器的性能基本達(dá)到了妻求,濾波作用比較明顯。曲線相對(duì)比較平穩(wěn),能夠滿足微弱信號(hào)濾波器的設(shè)計(jì)技術(shù)指標(biāo)。特別是從方案二中的相頻特性曲線來(lái)看,曲線通過(guò)原點(diǎn)且為一條平滑直線,說(shuō)明具有良好的線性相位特性,而這也是在應(yīng)用中選擇FIR數(shù)字濾波器的重要原因,但是它的實(shí)際效果還要經(jīng)過(guò)實(shí)踐的檢驗(yàn)。FIR幅頻特性精度比IIR低,且濾波器所需階次比較高,但是它擁有很好的線性相位,即不同頻率分量的信號(hào)經(jīng)過(guò)FIR濾波器后他們的時(shí)問(wèn)差不變。另外,F(xiàn)IR還存在的缺點(diǎn)應(yīng)加以改善,如信號(hào)的延遲偏大。這就考慮到用高性能的DSP器件,由于其處理速度快,此缺點(diǎn)在一點(diǎn)程度上是可以改善的。

4 結(jié)語(yǔ)


本文通過(guò)設(shè)計(jì)實(shí)例,介紹了利用Matlab實(shí)現(xiàn)數(shù)字信號(hào)處理中的數(shù)字濾波器設(shè)計(jì),從結(jié)果可以看出它們均可以達(dá)到技術(shù)指標(biāo)要求,而且方法簡(jiǎn)單、快捷,大大減輕了工作量。濾波器的設(shè)計(jì)工作完成后,可以借助Matlah的export操作導(dǎo)出所設(shè)計(jì)濾波器的系統(tǒng)函數(shù)H(x)。由于Matl-ah具有強(qiáng)大的接口功能,仿真后的結(jié)果可以很方便的移植到DSP,CPLD或FPGA等器件中。在實(shí)際應(yīng)用中,只需按要求修改濾波器參數(shù),并對(duì)程序作較少的改動(dòng),即可實(shí)現(xiàn)不同的濾波器,實(shí)用性較強(qiáng)。
要采購(gòu)濾波器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉