如何减少高噪声均值滤波器下的延迟?

信息处理 过滤器 时间序列
2022-01-27 18:00:03

我们有一个位置传感器,在某些情况下会接收到一些高频噪声。我们可以通过简单的均值滤波很好地消除它。

跟踪数据采样和 n=30 均值滤波

不幸的是,当没有任何噪音时(在图表的开头,s=90 到 95),这会导致太多的延迟。因此,我们一直在试验 Savitzky-Golay 过滤:

Savitzky-Golay 3 级,f=0.9

然而,结果并不是那么好。重噪声下的滤波比均值滤波差(或者延迟降低不是那么好)。我们还能做什么?

更多背景:

  • 这个问题是一个在线问题,所以我们不能回顾性地分析数据,例如将平均值移动半个周期。
  • “常规”运动是由人移动物体执行的,“噪音”来自高频振动。
3个回答

虽然这是一个旧条目,并且问题的作者可能已经解决了这个问题,但我将我的解决方案留在这里,以防万一,它可以帮助其他人。

如问题中所述,您需要一种实时“平滑”的轨迹。您将需要权衡:速度、延迟、能源效率等。

我建议使用 Alpha-Beta 过滤器、移动平均过滤器或某种自适应平均过滤器。它们应该比卡尔曼滤波器或类似滤波器更快、更容易实现并且延迟更少。我做了几个测试,试图重现问题中使用的数据类型,并使用快速(和讨厌)自己的实现来测试这些过滤器。结果如下图所示:

在此处输入图像描述

在此处输入图像描述

干杯。

PD 可能,原始问题中评论的振动噪声并非绝对不相关。我生成的数据使用随机噪声。

您可以尝试两种可能的方法。

  • 多项式逼近(样条拟合)
  • 总变差去噪

在多项式逼近中,您可以尝试拟合整个数据向量的多项式逼近。来调节在一阶差分项中看到的稀疏量换句话说,在重噪声下,输入数据的一阶差分是稀疏的。λ

说您的信号是“非常低的频率”,而您需要低延迟/拖尾才能捕获它似乎是矛盾的。

如果您可以描述您需要保留的输入信号的(方面)是什么,以及噪声是什么样的,那么可能会出现更好的解决方案。

最简单的解决方案将是某种低通滤波器,它们带有一组权衡。

-k