一阶低通滤波算法
1. 一階濾波算法的原理?
一階濾波,又叫一階慣性濾波,或一階低通濾波。是使用軟件編程實現普通硬件RC低通濾波器的功能。?
一階低通濾波的算法公式為:
Y(n)=αX(n) + (1-α)Y(n-1)?
式中:α=濾波系數;X(n)=本次采樣值;Y(n-1)=上次濾波輸出值;Y(n)=本次濾波輸出值。?一階低通濾波法采用本次采樣值與上次濾波輸出值進行加權,得到有效濾波值,使得輸出對輸入有反饋作用。
2. 一階濾波算法的程序(適用于單個采樣)
#define a 0.01 // 濾波系數a(0-1) char filter(void) {baroOffset = get_ad(); baro = a * baroOffset + (1.0f - a) * baroAlt;baroAlt = baro;return baro; }?
3. 一階濾波算法的不足?
? 濾波系數越小,濾波結果越平穩,但是靈敏度越低;濾波系數越大,靈敏度越高,但是濾波結果越不穩定。
一階濾波無法完美地兼顧靈敏度和平穩度。有時,我們只能尋找一個平衡,在可接受的靈敏度范圍內取得盡可能好的平穩度。而在一些場合,我們希望擁有這樣一種接近理想狀態的濾波算法。即:當數據快速變化時,濾波結果能及時跟進(靈敏度優先);當數據趨于穩定,在一個固定的點上下振蕩時,濾波結果能趨于平穩(平穩度優先)。
轉載于:https://www.cnblogs.com/jasonchan1202/p/8393826.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 用反射去构建一个对象吧!
- 下一篇: NLTK基础教程学习笔记(一)