你的位置:首頁 > 電源管理 > 正文

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FDATool(Filter Design&Analysis Too1)是Matlab信號處理工具箱專用的濾波器設(shè)計(jì)分析工具,操作簡單、靈活,可以采用多種方法設(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。通過菜單“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á)到了妻求,濾波作用比較明顯。曲線相對比較平穩(wěn),能夠滿足微弱信號濾波器的設(shè)計(jì)技術(shù)指標(biāo)。特別是從方案二中的相頻特性曲線來看,曲線通過原點(diǎn)且為一條平滑直線,說明具有良好的線性相位特性,而這也是在應(yīng)用中選擇FIR數(shù)字濾波器的重要原因,但是它的實(shí)際效果還要經(jīng)過實(shí)踐的檢驗(yàn)。FIR幅頻特性精度比IIR低,且濾波器所需階次比較高,但是它擁有很好的線性相位,即不同頻率分量的信號經(jīng)過FIR濾波器后他們的時(shí)問差不變。另外,F(xiàn)IR還存在的缺點(diǎn)應(yīng)加以改善,如信號的延遲偏大。這就考慮到用高性能的DSP器件,由于其處理速度快,此缺點(diǎn)在一點(diǎn)程度上是可以改善的。

4 結(jié)語


本文通過設(shè)計(jì)實(shí)例,介紹了利用Matlab實(shí)現(xiàn)數(shù)字信號處理中的數(shù)字濾波器設(shè)計(jì),從結(jié)果可以看出它們均可以達(dá)到技術(shù)指標(biāo)要求,而且方法簡單、快捷,大大減輕了工作量。濾波器的設(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ù),并對程序作較少的改動(dòng),即可實(shí)現(xiàn)不同的濾波器,實(shí)用性較強(qiáng)。
要采購濾波器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
壓控振蕩器 壓力傳感器 壓力開關(guān) 壓敏電阻 揚(yáng)聲器 遙控開關(guān) 醫(yī)療電子 醫(yī)用成像 移動(dòng)電源 音頻IC 音頻SoC 音頻變壓器 引線電感 語音控制 元件符號 元器件選型 云電視 云計(jì)算 云母電容 真空三極管 振蕩器 振蕩線圈 振動(dòng)器 振動(dòng)設(shè)備 震動(dòng)馬達(dá) 整流變壓器 整流二極管 整流濾波 直流電機(jī) 智能抄表
?

關(guān)閉

?

關(guān)閉