12.12 一階濾波算法

一階濾波算法,即通過軟件算法來實現模擬硬件低通濾波器。

一階濾波算法

RC低通濾波器

一階濾波算法公式為:Y(n)=aX(n)+(1-a)Y(n-1)

Y(n)-本次濾波輸出值;

Y(n-1)-上次濾波輸出值;

a-濾波係數。

其中,濾波係數a越小,濾波結果越平滑,但反應靈敏度越低;濾波係數a越大,則反應靈敏度越高,但濾波結果平滑性越差,越不穩定。所以,在選取濾波係數時,應對平滑性和靈敏度進行考慮然後取捨。

同時,應注意小數捨棄帶來的誤差。 比如: 本次採樣值=25,上次濾波結果=24,濾波係數=10, 根據濾波算法:

本次濾波結果=(25*10+24*(256-10))/256=24.0390625

但是,我們在單片機運算中,很少採用浮點數。因此運算後的小數部分要麼捨棄,要麼進行四捨五入運算。這樣一來,本例中的結果24.0390625就變成了24。假如每次採樣值都=25,那麼濾波結果永遠=24。也就是說濾波結果和實際數據一直存在無法消除的誤差。

改善誤差的辦法有兩種:

1、增大濾波係數,但會導致平滑度降低。

2、擴展數據有效位數,但會增加CPU運算壓力。


分享到:


相關文章: