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);
}