C 语言滤波
程序员文章站
2022-07-14 16:16:31
...
/**************************************************************
*函数名:filter
*日期 :2018-5-15 11:16:42
*作者 :ZHAO
*描述 :递推平均滤波
**************************************************************/
# define N 100
double Value_buf[N];
UINT Count = 0, Fist = 0;
double start_testing::filter(double Data)
{
Value_buf[Count++] = Data;
if (Count == N)
Count = 0;//当数据大于数据长度,替换数组中的一个数据,相当于环形队列更新,先进先出
if (Fist < N)
{
Fist++;
return Data;
}
else
{
double Sum = 0;
for (int i = 0; i < N; i++)
{
Sum += Value_buf[i];
}
if (Data == 0)
Sum = 0;//防止数据最后一个数值为0是被平均掉,如果曲线最后一个值不为零,请去掉该
return ((double)Sum / N);
}
}
上一篇: manjaro安装cuda与cudnn
下一篇: c++中值滤波和双边滤波