一階濾波,又叫一階慣性濾波,或一階低通濾波。是使用軟體程式設計實現普通硬體rc低通濾波器的功能。
一階低通濾波的演算法公式為:
y(n)=αx(n) + (1-α)y(n-1)
式中:α=濾波係數;x(n)=本次取樣值;y(n-1)=上次濾波輸出值;y(n)=本次濾波輸出值。
一階低通濾波法採用本次取樣值與上次濾波輸出值進行加權,得到有效濾波值,使得輸出對輸入有反饋作用。
#define a 0.01 // 濾波係數a(0-1)
char value; //濾波後的值
char new_value; // 新的取樣值
char filter()
1. 關於靈敏度和平穩度的矛盾
濾波係數越小,濾波結果越平穩,但是靈敏度越低;
濾波係數越大,靈敏度越高,但是濾波結果越不穩定。
一階濾波無法完美地兼顧靈敏度和平穩度。有時,我們只能尋找乙個平衡,在可接受的靈敏度範圍內取得盡可能好的平穩度。而在一些場合,我們希望擁有這樣一種接近理想狀態的濾波演算法。即:
當資料快速變化時,濾波結果能及時跟進(靈敏度優先);
當資料趨於穩定,在乙個固定的點上下振盪時,濾波結果能趨於平穩(平穩度優先)。
2. 關於小數捨棄帶來的誤差
一階濾波演算法有乙個鮮為人知的問題:小數捨棄帶來的誤差。 比如: 本次取樣值=25,上次濾波結果=24,濾波係數=10, 根據濾波演算法:
本次濾波結果=(25*10+24*(256-10))/256=24.0390625
但是,我們在微控制器運算中,很少採用浮點數。因此運算後的小數部分要麼捨棄,要麼進行四捨五入運算。這樣一來,本例中的結果24.0390625就變成了24。假如每次取樣值都=25,那麼濾波結果永遠=24。也就是說濾波結果和實際資料一直存在無法消除的誤差。
2020 12 17一階RC低通濾波演算法原理與實現
羅伯特祥 2020 08 09 12 46 14 分類專欄 運動控制 linux 嵌入式 訊號處理 文章標籤 低通濾波器 rc濾波器 版權 一階濾波,又叫一階慣性濾波,或一階低通濾波,軟體實現rc低通濾波器的功能。y n x n 1 y n 1 y n x n 1 y n 1 y n x n 1 y...
微控制器ADC取樣演算法 一階低通濾波
演算法實現的公式如下 其中y n 為輸出,x n 為輸入,y n 1 為上一次輸出值,其中q為濾波係數。取值範圍為0 1.看一下在微控制器中c 的實現 引數 com 為取樣的原始數值 返回值 idata 經過一階濾波後的取樣值 unsigned int lowv unsigned int com 主...
一階低通濾波器方程 一階低通濾波原理詳解
在汽車標定中,使用最多的濾波演算法即低通濾波,很多朋友可能知道怎麼標定,但是不清楚具體的原理,因此本文將介紹一階低通濾波的原理 演算法建模 和優缺點 一階濾波演算法的原理 一階濾波,又叫一階慣性濾波,或一階低通濾波。一階低通濾波的演算法公式為 y n x n 1 y n 1 式中 濾波係數 x n ...