1. 程式人生 > >十一種通用濾波演算法及優缺點

十一種通用濾波演算法及優缺點

1、限幅濾波法(又稱程式判斷濾波法)
A、方法:
   根據經驗判斷,確定兩次取樣允許的最大偏差值(設為A)
   每次檢測到新值時判斷:
   如果本次值與上次值之差<=A,則本次值有效
   如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值
B、優點:
   能有效克服因偶然因素引起的脈衝干擾
C、缺點
   無法抑制那種週期性的干擾
   平滑度差

2、中位值濾波法
A、方法:
   連續取樣N次(N取奇數)
   把N次取樣值按大小排列
   取中間值為本次有效值
B、優點:
   能有效克服因偶然因素引起的波動干擾
   對溫度、液位的變化緩慢的被測引數有良好的濾波效果
C、缺點:
   對流量、速度等快速變化的引數不宜

3、算術平均濾波法
A、方法:
   連續取N個取樣值進行算術平均運算
   N值較大時:訊號平滑度較高,但靈敏度較低
   N值較小時:訊號平滑度較低,但靈敏度較高
   N值的選取:一般流量,N=12;壓力:N=4
B、優點:
   適用於對一般具有隨機干擾的訊號進行濾波
   這樣訊號的特點是有一個平均值,訊號在某一數值範圍附近上下波動
C、缺點:
   對於測量速度較慢或要求資料計算速度較快的實時控制不適用
   比較浪費RAM
  
4、遞推平均濾波法(又稱滑動平均濾波法)
A、方法:
   把連續取N個取樣值看成一個佇列
   佇列的長度固定為N
   每次取樣到一個新資料放入隊尾,並扔掉原來隊首的一次資料.(先進先出原則)
   把佇列中的N個數據進行算術平均運算,就可獲得新的濾波結果
   N值的選取:流量,N=12;壓力:N=4;液麵,N=4~12;溫度,N=1~4
B、優點:
   對週期性干擾有良好的抑制作用,平滑度高
   適用於高頻振盪的系統
C、缺點:
   靈敏度低
   對偶然出現的脈衝性干擾的抑制作用較差
   不易消除由於脈衝干擾所引起的取樣值偏差
   不適用於脈衝干擾比較嚴重的場合
   比較浪費RAM
  
5、中位值平均濾波法(又稱防脈衝干擾平均濾波法)
A、方法:
   相當於“中位值濾波法”+“算術平均濾波法”
   連續取樣N個數據,去掉一個最大值和一個最小值
   然後計算N-2個數據的算術平均值
   N值的選取:3~14
B、優點:
   融合了兩種濾波法的優點
   對於偶然出現的脈衝性干擾,可消除由於脈衝干擾所引起的取樣值偏差
C、缺點:
   測量速度較慢,和算術平均濾波法一樣
   比較浪費RAM


6、限幅平均濾波法
A、方法:
   相當於“限幅濾波法”+“遞推平均濾波法”
   每次取樣到的新資料先進行限幅處理,
   再送入佇列進行遞推平均濾波處理
B、優點:
   融合了兩種濾波法的優點
   對於偶然出現的脈衝性干擾,可消除由於脈衝干擾所引起的取樣值偏差
C、缺點:
   比較浪費RAM

7、一階滯後濾波法
A、方法:
   取a=0~1
   本次濾波結果=(1-a)*本次取樣值+a*上次濾波結果
B、優點:
   對週期性干擾具有良好的抑制作用
   適用於波動頻率較高的場合
C、缺點:
   相位滯後,靈敏度低
   滯後程度取決於a值大小
   不能消除濾波頻率高於取樣頻率的1/2的干擾訊號
  
8、加權遞推平均濾波法
A、方法:
   是對遞推平均濾波法的改進,即不同時刻的資料加以不同的權
   通常是,越接近現時刻的資料,權取得越大。
   給予新取樣值的權係數越大,則靈敏度越高,但訊號平滑度越低
B、優點:
   適用於有較大純滯後時間常數的物件
   和取樣週期較短的系統
C、缺點:
   對於純滯後時間常數較小,取樣週期較長,變化緩慢的訊號
   不能迅速反應系統當前所受干擾的嚴重程度,濾波效果差

9、消抖濾波法
A、方法:
   設定一個濾波計數器
   將每次取樣值與當前有效值比較:
   如果取樣值=當前有效值,則計數器清零
   如果取樣值<>當前有效值,則計數器+1,並判斷計數器是否>=上限N(溢位)
      如果計數器溢位,則將本次值替換當前有效值,並清計數器
B、優點:
   對於變化緩慢的被測引數有較好的濾波效果,
   可避免在臨界值附近控制器的反覆開/關跳動或顯示器上數值抖動
C、缺點:
   對於快速變化的引數不宜
   如果在計數器溢位的那一次取樣到的值恰好是干擾值,則會將干擾值當作有效值匯入系統

10、限幅消抖濾波法
A、方法:
   相當於“限幅濾波法”+“消抖濾波法”
   先限幅,後消抖
B、優點:
   繼承了“限幅”和“消抖”的優點
   改進了“消抖濾波法”中的某些缺陷,避免將干擾值匯入系統
C、缺點:
   對於快速變化的引數不宜


第11種方法:IIR 數字濾波器

A. 方法:
確定訊號頻寬, 濾之。
Y(n) = a1*Y(n-1) + a2*Y(n-2) + ... + ak*Y(n-k) + b0*X(n) + b1*X(n-1) + b2*X(n-2) + ... + bk*X(n-k)

B. 優點:高通,低通,帶通,帶阻任意。設計簡單(用matlab)
C. 缺點:運算量大。