zoukankan      html  css  js  c++  java
  • 滑动平均滤波算法(递推平均滤波法)

            /// <summary>

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

            /// </summary>

            /// <param name="ADNum"为获得的AD数></param>

            /// GN为数组value_buf[]的元素个数,该函数主要被调用,利用参数的数组传值

            /// <returns></returns>   

            private const int GN = 12;

            private int filterPtr = 0;

            private bool isFirstGF = true;

            public float gSum = 0;

            float[] gbuf = new float[GN];

            public float GlideFilterAD(float ADNum)

            {

                if (isFirstGF)

                {

                    isFirstGF = false;

                    for (int i = 0; i < GN; i++)

                        gbuf[i] = ADNum;

                    gSum = ADNum * GN;

                    return ADNum;

                }

                else

                {

                    gSum += ADNum - gbuf[filterPtr] ;

                    gbuf[filterPtr++] = ADNum;

                    if (filterPtr == GN)

                        filterPtr = 0;    //先进先出,再求平均值

                    return (gSum / GN);

                }

            }  

           /// <summary>

           /// 限幅防抖滤波法

           /// </summary>

           /// <param name="ADNum"采样值></param>

           /// RANG:幅度  LPNUM :测试计数

           /// <returns></returns>

            private const int RANGE = 100;

            private const int LPNUM = 5;

            private float currentValue = 0;

            private int tmpCount = 0;

            private bool isFirstLF = true;

            public float LimitFilterAD(float ADNum)

            {

                if (isFirstLF)

                {

                    isFirstLF = false;

                    currentValue = ADNum;

                }

                if (Math.Abs(ADNum - currentValue) > RANGE)

                {

                    if(tmpCount++ >LPNUM)

                    {

                        isFirstLF = true;    // 初始化滑动平均值

                        tmpCount =0;

                        currentValue = ADNum;

                    }

                }

                else

               {

                    tmpCount =0;

               }

               return currentValue;

            }

  • 相关阅读:
    ac通过Parallels Desktop虚拟机实现共享windows独有软件提供的特殊网络11
    ac通过Parallels Desktop虚拟机实现共享windows独有软件提供的特殊网络9
    新东方智慧教室:全方位的智慧教室解决方案
    告别开发
    Unity中Awake的执行时间点
    警惕C#事件使用过程中的GC陷阱
    概率生成函数(高清重置版)暨 [CTSC2006]歌唱王国
    Leaflet中使用leafletecharts插件实现Echarts的Migration迁徙图
    Leaflet中使用leafletecharts插件实现Echarts的Migration迁徙图(带炫光特效)
    Nginx映射本地json文件,配置解决浏览器跨域问题,提供前端get请求模拟数据
  • 原文地址:https://www.cnblogs.com/xihong2014/p/4129341.html
Copyright © 2011-2022 走看看