相关疑难解决方法(0)

在Java中实现指数移动平均值

我基本上有一个这样的值数组:

0.25, 0.24, 0.27, 0.26, 0.29, 0.34, 0.32, 0.36, 0.32, 0.28, 0.25, 0.24, 0.25
Run Code Online (Sandbox Code Playgroud)

上面的数组过于简单,我在实际代码中每毫秒收集1个值,我需要处理我编写的算法的输出,以便在某个时间点之前找到最接近的峰值.我的逻辑失败了,因为在我上面的例子中,0.36它是真正的峰值,但我的算法会向后看,并将最后一个数字0.25视为峰值,因为0.24它之前有一个减少.

目标是获取这些值并将算法应用于它们,这将使它们"平滑"一点,以便我有更多的线性值.(即:我希望我的结果是弯曲的,而不是锯齿状的)

我被告知要对我的值应用指数移动平均滤波器.我怎样才能做到这一点?我读取数学方程式真的很难,我对代码的处理要好得多.

如何处理数组中的值,应用指数移动平均值计算来均匀化它们?

float[] mydata = ...
mySmoothedData = exponentialMovingAverage(mydata, 0.5);

float[] exponentialMovingAverage(float[] input, float alpha) {
    // what do I do here?
    return result;
}
Run Code Online (Sandbox Code Playgroud)

java math lowpass-filter

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×1

lowpass-filter ×1

math ×1