从速度值中滤除噪音和变化

Ole*_*e-M 4 c++ algorithm math

我有一个应用程序连续接收速度值(m/s).这些值会产生一些噪音和变化.这种速度一直在变化,但有一些值得注意的真正变化.例如,当速度值显着下降时,可能会出现转弯.

现在我正在使用average最后的X值,其中X通常是5-15之间的数字.我在excel中绘制这些值以查看与原始数据的差异.这很有效,但lower历史值是,less我的曲线变得平滑.的higher历史价值,在smoother我的曲线变,但随后也反应后期的变化,而忽略其中的一些.

我还试图在平均计算中加权最后一个值.结果是曲线仍然有很多噪音,但只比原始数据少一点.

我正在寻找的是一种更复杂的滤除噪声的方法,它可以使我的值接近原始数据,但也忽略了小的变化和噪声.

有什么方法可以或者我可以用现有的设置做什么?

Arc*_*hie 5

为此,卡尔曼滤波器正是您所需要的.这是一个实现它的免费库:http://kalman.sourceforge.net/

另一方面,卡尔曼很难理解,需要进行一些研究才能正确使用它(实现起来非常困难).根据这个答案,您可能会发现补充过滤器更容易实现.