微控制器ADC取樣演算法 限幅平均濾波法

2021-10-04 12:45:59 字數 869 閱讀 7452

限幅平均濾波法相當於「限幅濾波法」+「遞推平均濾波法」,每次取樣到的新資料先進行限幅處理,再送入佇列進行遞推平均濾波處理。

下面看c**的實現

#define a 200

#define n 20

//返回兩個整數差

unsigned int num_sub( unsigned int a, unsigned int b )

unsigned int filter6( void ) //取樣正弦波 相位有延時

else

if( i == n )

for( count = 0; count < n; count++ )

return ( unsigned int )( sum / n );

}

首先通過限幅濾波法對取樣的資料進行篩選,對符合要求的資料,迴圈儲存到陣列中,最後對陣列中的取樣值取算數平均值。

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取樣演算法 消抖濾波法

消抖濾波法的實現步驟為 設定乙個濾波計數器,將每次取樣值與當前有效值比較,如果取樣值等於當前有效值,則計數器清零。如果取樣值不等於當前有效值,則計數器 1,並判斷計數器是否 上限n 溢位 如果計數器溢位,則將本次值替換當前有效值,並清計數器。也就是只有取樣值連續變化n次之後,才將取樣值做為有效值。下...

微控制器筆記 ADC

mcp3421高精度adc轉換器 csdn部落格 blog.csdn.net 乙個專案的需求,使用的微控制器型號為stm32f030f4,雖然微控制器自帶了12位adc轉換器,解析度可以達到805.66uv 此型號沒有內部參考電壓,所以使用工作電壓作為參考電壓,所以精度值計算 3.3v除以2的12次...