算法的过滤器/正常化不好的信号
-
20-08-2019 - |
题
工作上一个跟踪应用中使用全球定位系统。它是好的,但有时由于封闭区域或恶劣的天气,我获得的不准确点。当你的阴谋,它只是看起来并不正确的,有很多跳/跳跃。
什么样的算法我应该运行的过滤掉不好的信号 它看起来像一个应用程序的一个模糊的算法我,但是你怎么想?
解决方案
有几个选择:
- 扔出去的异常点
- 过滤器
- 使用更好的GPS
- 使用外部数据源(单元时)
- 上述的组合
我喜欢使用的过滤器-卡尔曼滤器的典型(而且常常最好的)解决方案,它使用量的预测平均,这是比一个更好的便宜IIR(Infinite Impulse Response)筛选:
FilteredValue=FilteredValue*0.75+NewValue*0.25
你可以得到的GPS模块给你4-5修复每第二,这将允许使用上述'廉价的过滤器与合理的反应时间。
你也可以简单地得到一个更好的GPS(我们三或更好的),不作为嘈杂和具有更好的接待室内(尽可能).
消费者GPS单位"捕捉到路"在可能的,因此错误,关闭的道路是没有看到过的消费者,以及一些其他的技术。
卡尔曼不是容易实现,但没有一个外部数据集或传感器(例如道路的速度),这是最好的选择。检查了 http://www.google.com/search?q=open%20source%20kalman%20filter 代码和教程。
-亚当
其他提示
重新: -
在 “砰砰” 噪声的存在滤波一的我发现做到这一点,最简单的方法是:
delta = newValue - filteredValue;
delta = delta > LARGEST_SANE_DELTA ? LARGEST_SANE_DELTA
: (delta < -LARGEST_SANE_DELTA ? -LARGEST_SANE_DELTA : delta);
filteredValue += alpha*delta;
其中alpha = 1 / tau蛋白和tau是有问题的低通滤波器的时间常数,表示在上述代码的迭代之间的时间的倍数。值LARGEST_SANE_DELTA
表示输入在newValue
和剪辑过大的变化大的可能的改变。有可能拒绝这种类型的噪音的更好的方法,但他们更复杂,我提到了一个很简单的。
使用卡尔曼滤波器。
不隶属于 StackOverflow