java - 对 NaN 值使用指数平滑

标签 java math average

我有一个样本可以产生一些嘈杂的输出。该样本是来自相机的一些图像处理的结果,它指示特定颜色的 Blob 的标题。它是从大约 -45° 到 +45° 的角度, NaN,这意味着该 blob 实际上不在 View 中。

为了对抗嘈杂的数据,我觉得exponential smoothing会成功的。但是,我不确定如何处理 NaN 值。

一方面,让他们参与数学计算会导致 NaN 平均值,这将阻止任何有意义的结果。另一方面,完全忽略 NaN 值将意味着永远不会报告“未检测到”的情况。使事情复杂化的是,数据也有噪声,因为它可能会得到错误的 NaN 值,理想情况下会以某种方式对其进行平滑处理以防止随机噪声。

关于如何实现这种指数平滑器有什么想法吗?

最佳答案

保留两个分布怎么样?第一个可以像往常一样是平滑的 blob 标题,除非你得到一个 NaN,你只需输入最后看到的非 NaN 值(或其他一些默认值);另一个是“NaN 分布”,它为每个非 NaN 值简单地获取 0,为每个 NaN(或类似的东西)获取 1。

这样,即使它变得模糊,您的主要分布将继续根据“最后已知的航向”进行预测,而不会获得垃圾数据或弄乱平滑,但您也会在 NaN 分布上同时出现尖峰让你知道出事了。

关于java - 对 NaN 值使用指数平滑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791737/

相关文章:

我们可以在 C 中将变量设置为数字范围吗?

javascript - 使用 background-size :contain 时获取 div 背景图像的 XY 坐标和高度/宽度

algorithm - 这是一个准确的平均数还是指数移动平均数公式?

java - 在后台检查互联网

java - 同时按下 2 个或更多键

java - 公共(public)/默认类背后的设计决策?

java - 有没有办法让java计时器触发一定次数,然后停止?

c++ - 定义为起点和长度 + 方向的线与起点和终点定义不同 - 方向计算错误?

r - 根据 R 中另一列的日期范围查找一列的平均值

sqlite - 最后 10 行的平均结果