为了从GPS获得更准确的数据,建议使用卡尔曼滤波器。但我找不到任何教程如何实现GPS的卡尔曼滤波器,android。
答案 0 :(得分:10)
GPS数据已经过卡尔曼过滤。这是在GPS接收器内完成的。 如果您创建自己的卡尔曼滤波器,请不要期望位置(纬度/经度)的精度增益。 此外,你没有内部GPS接收器的信息。它在输出一个位置之前,每秒/每秒输入其内部卡尔曼滤波器。
在您自己的后期处理过滤器中,您可能会获得更平滑的轨迹(与可视化位置相关)。但更平滑并不准确,只能看得更愉快。
另一个主题是GPS位置是否必须实时可用,例如在屏幕上显示当前位置。如果你想在之后平滑你的音轨(非实时)你可能会成功,但我不会在那种情况下使用卡尔曼滤波器。 卡尔曼滤波器非常适合实时滤波,对于后期处理,您可以尝试使用三角窗滤波器的滑动平均值(易于实现,而卡尔曼非常复杂)
答案 1 :(得分:6)
你可以通过谷歌和维基百科找到很多东西,但有一个基本的直觉可能是有用的。
基本上,卡尔曼滤波器意味着重复应用两步过程:
卡尔曼滤波器形成了一个简单的想法:当您知道自己的速度有多快时,您可以根据上次报告的GPS位置预测地理位置,然后在新的GPS报告进入时进行更新。
我们将在这里讨论两个变量:平均值,这是您最好的猜测,以及不确定性,它代表了猜测的准确性。就GPS而言,您将谈论GPS位置和误差范围(例如10米)。
每次更新都会增加你的不确定性,因为你并不确定速度没有改变。当有新的测量值时,您可以更新位置和确定性。
平均值和不确定度可以表示为贝尔曲线(正态分布),X轴上的变量以及它在Y轴上具有该值的概率:
这里μ(mu)是平均值,σ(sigma)是不确定性。任何这样的曲线都可以用这两个值来描述。
诀窍在于,您实际上可以实现多个两个钟形曲线(您的预测和测量)并获得一个代表组合知识的新曲线,当您在完成一些预测后获得新的GPS位置时,您将会这样做。你可以在维基百科和其他网站上找到这个数学。