消抖濾波法的實現步驟為:設定乙個濾波計數器,將每次取樣值與當前有效值比較,如果取樣值等於當前有效值,則計數器清零。如果取樣值不等於當前有效值,則計數器+1,並判斷計數器是否》=上限n(溢位),如果計數器溢位,則將本次值替換當前有效值,並清計數器。也就是只有取樣值連續變化n次之後,才將取樣值做為有效值。
下面直接看c**的實現
define n 12
unsigned int filter9( void )
new_value = readvol_ch2();
}return value;
}void main( void )
}
主函式中實時取樣ad埠的波形值,然後將取樣值經過消抖濾波法進行濾波,然後用串列埠輸出原始取樣值和濾波後的值,並在串列埠波形軟體上顯示取樣的資料波形。
圖中藍色曲線為原始資料曲線,橙色曲線為經過濾波演算法後的曲線。
消抖濾波法對於變化緩慢的被測引數有較好的濾波效果,可避免在臨界值附近控制器的反覆開/關跳動或顯示器上數值抖動。
但是對於快速變化的引數不宜,如果在計數器溢位的那一次取樣到的值恰好是干擾值,則會將干擾值當作有效值匯入系統。
微控制器ADC取樣演算法 中位值平均濾波法
中位值平均濾波法濾波法就是通過連續取樣n個資料,然後對資料從小到大排序,然後去掉最大值和最小值,對剩餘的n 2個值計算算數平均值。也就是中位值濾波和算數平均濾波的結合。下面看c 的實現 define n 12 unsigned int filter5 void for j 0 j n 1 j for...
微控制器ADC取樣演算法 限幅平均濾波法
限幅平均濾波法相當於 限幅濾波法 遞推平均濾波法 每次取樣到的新資料先進行限幅處理,再送入佇列進行遞推平均濾波處理。下面看c 的實現 define a 200 define n 20 返回兩個整數差 unsigned int num sub unsigned int a,unsigned int b...
微控制器ADC取樣演算法 一階低通濾波
演算法實現的公式如下 其中y n 為輸出,x n 為輸入,y n 1 為上一次輸出值,其中q為濾波係數。取值範圍為0 1.看一下在微控制器中c 的實現 引數 com 為取樣的原始數值 返回值 idata 經過一階濾波後的取樣值 unsigned int lowv unsigned int com 主...