2013年7月13日 星期六

數位濾波器 (Digital Filter)

http://4rdp.blogspot.tw/2013/07/digital-filter.html

數位濾波器,以數學方法處理輸入訊號,讓輸入訊號中的雜訊消除,使得感測訊號穩定變化平滑,這樣控制才不會有跳動的情形。

電子迴路中,有兩類雜訊可以濾除,一是50/60 Hz電源雜訊,另一為隨機雜訊,無論你利用電路硬體或是程式軟件處理皆可,通常兩種方式一起施行,硬體先濾除較高頻率雜訊,軟體再做進一步處理。

現代生活,周遭充滿電器設備,電力公司供給的電源是交流,台灣採 60Hz系統,日本用 50Hz系統,因此,電器設備會散發 50/60 Hz 固定頻率幅射干擾,有些裝有類比信號感應器的電子設備,就會感應到這部分雜訊,因為是固定頻率,只要取 0.1秒 (50/60 Hz最大公因數)或倍數時間為一個週期來取樣訊號,如此就自然平均 (正負半週對扣)消除之,這稱之為 50/60 Hz noise rejection。如果你的取樣時間更短,那記得每 0.1 秒平均一次,就可以降低 50/60 Hz 雜訊干擾。

常見數位訊號處理有 IIR (Infinite Impulse Response filter,無限脈衝響應濾波器)、FIR (Finite Impulse Response filter,有限脈衝響應濾波器) 兩種方式,在此彙整自習重點及提出個人工作經驗的淺見,

有限脈衝響應濾波器(FIR filter)的優點:

脈衝響應(impulse response)為有限時間長度,換句話說當輸入數位訊號為有限時間長度的時候,輸出數位訊號也為有限時間長度。比無限脈衝響應濾波器(IIR filter)較容易最佳化(optimize)。是偶對稱(even)或奇對稱(odd)且有限時間長度。輸出數據是穩定的(stable),因為Z轉換(Z transform)後所有的極點(pole)都在單位圓內。

有限脈衝響應濾波器(FIR filter)的缺點:
設計方式較無限脈衝響應濾波器(IIR filter)不容易。主因在必須記憶每一筆輸入訊號及排序移動,硬體電路不易設計。

FIR 輸出值,為輸入訊號的加權計算:
Y(n) = h0 X(n) + h1 X(n-1) + … + hP X(n-P)
常見的 Moving Average 就是 FIR 。

無限脈衝響應濾波器 (IIR filter) 的優點:
較容易設計以及實現。如果無須記憶訊號,硬體電路可利用放大回授電路達成。

無限脈衝響應濾波器 (IIR filter) 的缺點:
脈衝響應 (impulse response)為無限時間長度,當輸入數位訊號為有限時間長度的時候,輸出數位訊號會變成無限時間長度反應。因此比有限脈衝響應濾波器(FIR filter)較不易最佳化(optimize)。輸出不一定是穩定的,因為 Z 轉換 (Z transform) 後所有的極點 (pole)不一定都在單位圓內。

IIR 輸出值,為輸入訊號及回授訊號的加權計算:
 Y(n) = [h0 X(n) + h1 X(n-1) + … + hP X(n-P) - a1 Y(n-1) - a2 Y(n-2) -  … - aQ Y(n-Q)] / a0

因為有回授控制不易直覺理解,請參考試算表分析。以個人經驗,除了使用 IIR 或 FIR 外,還有人使用 Smooth 方式去除雜訊,其實它是另類的 IIR,只是正回授。

在試算表中包含步級響應 (Step Response) 與雜訊排斥 (Noise Rejection) 比較:
步級響應 ─
輸入訊號由零變一,看系統輸出能夠多快反應輸入訊號的改變,結果顯示 Smooth 方法需要很長時間才能縮小誤差。
雜訊排斥 ─
輸入一個定頻弦波,Smooth 可以濾除較多雜訊,但是混合步級訊號後濾雜訊的效果不彰,如果 FIR 設計與特定頻率相符,則可將該頻率濾除。

有興趣的讀者可以研究看看。

PS. 2013.08.10 試算表補充 Kalman Filter 比較

沒有留言:

張貼留言