我不是信号处理专家,我在解决这个问题上的微弱尝试都失败了。
我有一个 C++ 应用程序,它被定期(及时)提供 3D 位置样本。样本通常是准确的,并且如果绘制,看起来非常平滑。但是,当计算二阶导数(以查看加速度)时,数据中偶尔/罕见的尖峰是不合理的。(我知道可能加速的一般范围。“罕见”是指在大约两个我们的数据中,我通常看到不到十几个超出可能性范围的尖峰。)我想做的越少越好尽可能地对数据进行处理,但要对其进行平滑处理以消除尖峰。
我的第一次尝试是在我们的数学库中使用卡尔曼滤波器。这消除了尖峰,但对数据的改变远远超过了我真正想要的,而且对于我需要的东西似乎过于严厉。
2D 数据似乎有很多选择,但我没有足够的信号处理背景来理解权衡或必然会很好地转换为 3D 数据。任何教育或建议将不胜感激!