美文网首页
滑动平均值滤波

滑动平均值滤波

作者: 浙南旧事 | 来源:发表于2021-07-27 20:15 被阅读0次
#define MAX_COUNT 16

static float buf[MAX_COUNT];    /* 数据缓冲区 */
static float sum;               /* N个数据的算术和 */
static int cnt;                 /* 数据个数 */
static int pos;                 /* 缓冲区位置 */

/*
 * 滑动平均值滤波。
 * 每次新进来一个数据,就将最早进来的数据丢掉,然后计算包括新数据在内的N个数据的算术平均值。
 *
 * 每调用一次,就加入一个新数据,并得到当前的滤波值。
 */
float alg(float new_val)
{
    /* 用一个减法,就做了"丢弃最旧的数据,加入最新的数据"这一操作 */
    sum += (new_val - buf[pos]);

    buf[pos] = new_val;

    /* pos,cnt可能可以合在一起,但用两个变量,更清晰一些 */
    // pos &= 0xf;
    pos = (pos + 1) % MAX_COUNT;

    /* 个数不足时,cnt是实际个数,个数足够时,cnt最多也只是MAX_COUNT */
    //if (cnt < MAX_COUNT)
    //  cnt++;
    cnt += (cnt < MAX_COUNT);

    return sum / cnt;
}

相关文章

  • 滑动平均值滤波

  • 滤波算法总结

    1、限幅滤波法(又称程序判断滤波法) 2、中位值滤波法 3、算术平均滤波法 4、递推平均滤波法(又称滑动平均滤波法...

  • TF笔记 - 滑动平均

    √滑动平均:记录了一段时间内模型中所有参数w和b各自的平均值。利用滑动平均值可以增强模型的泛化能力。(像是给参数加...

  • 系统的传输函数表示 matlab

    下例中,注意 filter用法, 同时注意与之前 滑动平均滤波器 的区别和相同点.

  • OpenCV 中的滤波函数

    blur 也称为 box filter、均值滤波器,就是简单地将每个像素的值替换成邻域平均值。 如果用 kerne...

  • 平均值问题

    0X00 总结 643. Maximum Average Subarray I 简单的滑动窗口, 动态计算平均值 ...

  • 643-子数组最大平均数 I

    求长度为 k 的子数组的最大平均值,滑动窗口法,保持窗口大小为 k,进行滑动。 用累加数组来计算,对于子数组求和问...

  • 剑指 Offer II 041. 滑动窗口的平均值

    给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算滑动窗口里所有数字的平均值。 实现 MovingAve...

  • 346-数据流中的移动平均值

    数据流中的移动平均值 题目 给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算其所有整数的移动平均值。 ...

  • OpenCV For iOS(六)方框、均值、高斯、中值、双边滤

    本节主要记录OpenCV 两类五种常见的滤波方式: 线性滤波:方框滤波、均值滤波、高斯滤波非线性滤波: 中值滤波、...

网友评论

      本文标题:滑动平均值滤波

      本文链接:https://www.haomeiwen.com/subject/izoomltx.html