中文在线中文资源,色鲁97精品国产亚洲AV高,亚洲欧美日韩在线一区,国产精品福利午夜在线观看

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

基于Matlab的FIR數字濾波器設計

發布時間:2011-12-21

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

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

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

1 數字濾波器及設計方案

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

FIR數字濾波器的輸出值u(Kt)與輸出的過去值u(Kt-kt)表達關系如下:

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

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

而所要求設計的頻響為,之后的工作便是使逼近。加窗w(n)對理想濾波器的單位抽樣響應hd(n)(見式(3))截斷,得到所要設計的h(n)。

對于FDATool設計法,本文通過選擇適當參數,利用Matlab完成。
[page]
2 FIR數字濾波器設計

2.1 窗函數法設計FIR濾波器方案

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

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

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

(3)求得實際濾波器的單位脈沖響應h(n),h(n)即為所設計FIR濾波器系數向量a(n)。

(4)檢驗濾波器性能。

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

 
程序執行的結果如圖1,圖2所示。
 

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

2.2 FDATool設計方案

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

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

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

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

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

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

3 結論

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

4 結語


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

關閉

?

關閉

  • <center id="09kry"></center>

  • 主站蜘蛛池模板: 长春市| 达拉特旗| 湖南省| 陆河县| 奉化市| 南华县| 洛浦县| 龙门县| 洛阳市| 桐乡市| 化德县| 鄯善县| 邵东县| 元氏县| 嘉义市| 内丘县| 永兴县| 海淀区| 平度市| 古蔺县| 孝义市| 红原县| 湘西| 高安市| 大邑县| 志丹县| 贵州省| 班戈县| 双柏县| 广南县| 南岸区| 天峨县| 高邮市| 库尔勒市| 改则县| 新丰县| 浮山县| 余姚市| 抚州市| 天峻县| 额尔古纳市|