一階低通濾波算法


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. 一階濾波算法的不足 

   濾波系數越小,濾波結果越平穩,但是靈敏度越低;濾波系數越大,靈敏度越高,但是濾波結果越不穩定。

  一階濾波無法完美地兼顧靈敏度和平穩度。有時,我們只能尋找一個平衡,在可接受的靈敏度范圍內取得盡可能好的平穩度。而在一些場合,我們希望擁有這樣一種接近理想狀態的濾波算法。即:當數據快速變化時,濾波結果能及時跟進(靈敏度優先);當數據趨於穩定,在一個固定的點上下振盪時,濾波結果能趨於平穩(平穩度優先)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM