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

Java GPS位置抖动消除算法/理论,java,android,gps,Java,Android,Gps,我正试图在android上编写一个GPS跟踪(类似于慢跑应用程序),GPS位置抖动的问题让它变得丑陋不堪。当精度良好且精度在5米以内时,位置每秒抖动1-n米。如何确定或过滤掉合法运动中的抖动 Sporypal等应用程序显然在某种程度上过滤掉了这种噪音 有什么想法吗?你能通过低通滤波器运行位置吗 差不多 x(n) = (1-K)*x(n-1) + K*S(n) 在哪里 S是噪声样本,x是低通滤波样本。K是一个介于0和1之间的常数,为了获得最佳性能,可能需要对其进行试验 根据TK的建议: 我的伪代

我正试图在android上编写一个GPS跟踪(类似于慢跑应用程序),GPS位置抖动的问题让它变得丑陋不堪。当精度良好且精度在5米以内时,位置每秒抖动1-n米。如何确定或过滤掉合法运动中的抖动

Sporypal等应用程序显然在某种程度上过滤掉了这种噪音


有什么想法吗?

你能通过低通滤波器运行位置吗

差不多

x(n) = (1-K)*x(n-1) + K*S(n)
在哪里

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

根据TK的建议:

我的伪代码看起来非常像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:
float noised_lat[128],noise_long[128];
浮点平滑_lat[128],平滑_lon[128];
浮动lat_延迟=0,lon_延迟=0。;
浮点平滑(浮点输入[],浮点输出[],整数n,浮点K,浮点延迟)
{
int i;

对于(i=0;我可以使用伪代码给出一个“例如”吗?我认为这会使OP更清晰。感谢您提供的详细示例…今天我们来讨论一下,看看是否有帮助。