3.算數平均濾波法

/*

A、名稱:算術平均濾波法

B、方法:

連續取N個采樣值進行算術平均運算:

N值較大時:信號平滑度較高,但靈敏度較低;

N值較小時:信號平滑度較低,但靈敏度較高;

N值的選取:一般流量,N=12;壓力:N=4。

C、優點:

適用於對一般具有隨機干擾的信號進行濾波;

這種信號的特點是有一個平均值,信號在某一數值範圍附近上下波動。

D、缺點:

對於測量速度較慢或要求數據計算速度較快的實時控制不適用;

比較浪費RAM。

E、整理:shenhaiyu 2013-11-01

*/

int Filter_Value;

void setup() {

Serial.begin(9600); // 初始化串口通信

randomSeed(analogRead(0)); // 產生隨機種子

}

void loop() {

Filter_Value = Filter(); // 獲得濾波器輸出值

Serial.println(Filter_Value); // 串口輸出

delay(50);

}

// 用於隨機產生一個300左右的當前值

int Get_AD() {

return random(295, 305);

}

// 算術平均濾波法

#define FILTER_N 12

int Filter() {

int i;

int filter_sum = 0;

for(i = 0; i < FILTER_N; i++) {

filter_sum += Get_AD();

delay(1);

}

return (int)(filter_sum / FILTER_N);

}