GPS位置抖动消除的算法/理论

我正在尝试在Android上编写一个GPS跟踪(类似于慢跑应用),并且GPS位置抖动问题已经引发了它的丑陋头脑。 当精度为FINE且精度在5米以内时,位置抖动为每秒1米。 你如何确定或滤除合法运动中的抖动?

Sporypal等应用显然有一些方法可以滤除这种噪音。

有什么想法吗?


你可以通过低通滤波器来运行位置吗?

订单的东西

x(n) = (1-K)*x(n-1) + K*S(n)

哪里

S是你的噪声样本,x是低通滤波样本。 K是一个介于0和1之间的常量,为了获得最佳性能,您可能需要进行试验。

根据传统知识的建议:

我的伪代码看起来很像C:

    float noisy_lat[128], noisy_long[128];
    float smoothed_lat[128], smoothed_lon[128];
    float lat_delay=0., lon_delay=0.;

    float smooth(float in[], float out[], int n, float K, float delay)
    {
       int i;

       for (i=0; i<n; i++) {
          *out = *in++ * K + delay * (1-K);
          delay = *out++;
       }

       return delay;
    }

loop:    
    Get new samples of position in noisy_lat and noise_lon

    // LPF the noise samples to produce smoother position data

    lat_delay = smooth(noisy_lat, smoothed_lat, 128, K, lat_delay);
    lon_delay = smooth(noisy_lon, smoothed_lon, 128, K, lon_delay);

    // Rinse. Repeat.
    go to loop:

简而言之,这是一个简单的具有单采样延迟的反馈积分器。 如果您的输入在所需信号上有低频白噪声,该积分器将随着时间平均输入信号,从而导致噪声分量达到接近零的平均值,并为您提供所需的信号。

它的工作原理取决于信号的噪声程度和滤波器的反馈系数K.正如我之前所说的,你必须在这个值上花费一点时间才能看到哪个值产生最干净,最理想的结果。

链接地址: http://www.djcxy.com/p/57365.html

上一篇: algorithm/theory for GPS position jitter removal

下一篇: How to get messages for specific user by FQL or GRAPH API?