简介:
算数平均滤波法简单有效,可用于上下变跳波动较小的数据,不适合拥有大范围跳变的讯号。
const int Input = 1;//A1为电平输入口
const int Output = 0;//A0为电平输出口
const int savenum = 3;//每次存储多少个数
int OriginValue[savenum];//数组存储输入的电平大小
double AveValue = 0;//算数平均后得到的数值
int Acount = 0;//计数器
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void Receive()//将输入模拟信号存储到数组的函数
{
if (Acount
{
OriginValue[Acount] = analogRead(Input);
Acount++;
}
else
{
Acount= 0;
Average();
}
}
void Average()//求平均值的函数
{
int count;
double Sum;
for(count=0;count
Sum += (double)(OriginValue[count]);
AveValue = Sum / savenum;
SignalOut();
}
void SignalOut()//输出信号的函数
{
analogWrite(Output,AveValue);//每次求平均值后输出
Serial.println(AveValue);
}
void loop() {
// put your main code here, to run repeatedly:
Receive();
}
转载请注明原文地址: https://ju.6miu.com/read-358.html