首页 > 代码库 > 滑动平均滤波算法(递推平均滤波法)
滑动平均滤波算法(递推平均滤波法)
//滑动平均滤波算法(递推平均滤波法)
//ADNum为获得的AD数
//GN为数组value_buf[]的元素个数。该函数主要被调用,利用参数的数组传值
const int GN = 12;
int filterPtr = 0;
bool isFirst = true;
public float gSum = 0;
float[] gbuf = new float[GN];
float GlideFilterAD(float ADNum)
{
if (isFirst)
{
isFirst = false;
for (int i = 0 ; i< GN; i++)
gbuf[i] = ADNum;
gSum = ADNum * GN;
return ADNum;
}
else
{
gSum -= gbuf[filterPtr] + ADNum ;
gbuf[filterPtr++] = ADNum ;
if (filterPtr == GN)
filterPtr = 0; //先进先出,再求平均值
return (gSum/GN);
}
}
滑动平均滤波算法(递推平均滤波法)