一階濾波算法,即通過軟件算法來實現模擬硬件低通濾波器。
![一階濾波算法](http://p2.ttnews.xyz/loading.gif)
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運算壓力。
閱讀更多 二進制君 的文章