首页 > 代码库 > 滑动平均滤波算法(递推平均滤波法)

滑动平均滤波算法(递推平均滤波法)

        //滑动平均滤波算法(递推平均滤波法)

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

            }

        }

滑动平均滤波算法(递推平均滤波法)