4

我有一系列 gps 值,每个值都包含:timestamp, latitude, longitude, n_sats, gps_speed, gps_direction, ...NMEA 数据的某个子集)。我不确定方向和速度值的质量。此外,我不能指望序列在时间戳上是均匀分布的。我想在均匀的时间步长上获得平滑的轨迹。

我读过卡尔曼滤波器是此类任务的首选工具。真的是这样吗?

我找到了一些用于 Python 的卡尔曼滤波器的实现:

然而,这些似乎假设有规则间隔的数据,即迭代。整合对不规则间隔观测的支持需要什么?

我能想象的一件事是重复/调整预测步骤以适应基于时间的模型。你能为这个应用推荐这样的模型吗?是否需要考虑 NMEA 速度值?

4

2 回答 2

1

您还可以尝试运动学插值,看看结果是否符合您的预期。

这是其中一种算法的 Python 实现:https ://gist.github.com/talespaiva/128980e3608f9bc5083b

于 2016-02-15T16:11:35.610 回答
1

在寻找有关卡尔曼滤波器的可理解资源后,我强烈推荐这个:https ://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python

对于您关于不规则间隔观察的特定问题:请参阅上面参考资料中的第 8 章,以及“非平稳过程”标题下。总而言之,您需要为每次迭代使用不同的状态转换函数并处理噪声协方差。这些是您在每次迭代中唯一需要更改的内容,因为它们是唯一依赖于 delta t 的组件。

于 2016-02-04T14:32:40.320 回答