卡尔曼滤波器多边定位轨迹平滑化?

4
我有一个关于多普勒雷达飞机跟踪的问题: 我们已经实现了一些算法,基于三个或四个接收器的多普勒雷达来计算飞机位置。 问题是,轨迹看起来相当“抖动”(请参见链接中的图片,很抱歉由于声誉问题我无法在此添加)。 GPS和Mlat Track 绿线是地面上飞机的真实GPS轨迹,橙色是通过多普勒雷达(到达时间差异,每秒大约一到两个位置)计算出的轨迹。 GPS轨迹仅用于比较,未来可能无法使用。
有什么好方法可以平滑轨迹?我偶然发现了卡尔曼滤波器。我不是数学家,也没有任何机器人或类似领域的经验。这个级别的数学对我来说极难理解(我很高兴我能够相当好地处理多普勒雷达)。轨迹是通过封闭形式算法计算的。也许切换到迭代算法也可能有所帮助?
那么,在多普勒定位结果上实施卡尔曼滤波算法是否有意义?或者在实际计算位置之前已经对TDOA值进行了处理?不稳定的外观导致接收器现场存在轻微的测量误差,因此平滑/过滤TDOA值本身可能会有所帮助。
但是,我仍然需要一个非常复杂的更新模型,因为飞机正在移动,而TDOA值取决于真实飞机位置。我可以想象,用于平滑轨迹和平滑TDOA值的模型非常相似,如果不是完全相同。
我们使用Java完成所有操作,因此可能有一些库可用,可以避免重新进行所有数学计算吗?

你能描述一下你最终使用了什么吗?我正在研究一个类似的问题,对你的解决方案很感兴趣。 - Matyas
2个回答

3
这是一个经典的跟踪问题,你会发现有很多不同方法的科学文献。不幸的是,如果找不到一个可以为您完成工作的库,您将需要研究数学。使用卡尔曼滤波器是正确的方向,因为它可以从间接测量数据估计状态(位置、速度)。由于多次迭代对于测量数据是非线性映射,所以需要一个非线性估计器。对于这样的问题,我的标准建议是无迹卡尔曼滤波器,因为它具有相对算法简单性和高鲁棒性。它也可以处理您的多次迭代,因为在一个时间步内允许多个不同的测量。至于卡尔曼滤波器,您还需要一个运动模型 - 一个简单的(线性的)模型可能就可以胜任,因为我假设您正在跟踪普通飞机(而不是高机动性喷气战斗机)。不幸的是,我不知道任何适当的实现 - 要了解如何有效地实现一个运动模型,请阅读以下内容(其背后的数学并不简单):Merwe, R. V. D. & Wan, E. A. The square-root unscented Kalman filter for state and parameter-estimation in International Conference on Acoustics, Speech, and Signal Processing, 2001, 3461-3464

对于一个(低精度)快速且简单的解决方案,为每个维度实现一个 FIR 低通滤波器。您可以在网上找到工具(例如这里),可以为您生成代码。


谢谢回复。 但是我是否正确地假设,我需要在多边定位计算的最终结果上操作过滤器,即计算出的位置? 因此,我需要确保位置尽可能准确。 - chrisdo
对于低通滤波器,是的。但对于估计器(卡尔曼滤波器和其他类型),不需要多重迭代,它们通过融合不同的测量结果来实现。 - Dietrich
我完全忘记了我在这里的开放性问题 :) 跟踪任务被搁置了一段时间。我接受了你的答案,它帮助我们朝着正确的方向前进。谢谢。 - chrisdo

1

在快速查看卡尔曼滤波器的维基百科条目后,这似乎非常有前途。

这里是另一个建议,您可以考虑:

由于以前的测量,您可以估计飞机的位置、速度和方向。因此,对于任何新的测量,您可以计算移动飞机到该位置所需的力是否合理。通过这种方式,您可以排除具有大误差的测量结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接