2012-02-07 5 views
7

Tôi đang cố gắng để viết một theo dõi GPS (giống như một ứng dụng chạy bộ) trên Android và vấn đề vị trí GPS jitter đã nuôi nó xấu xí đầu. Khi độ chính xác là FINE và độ chính xác là trong vòng 5 mét, vị trí là jittering 1-n mét mỗi giây. Làm thế nào để bạn xác định hoặc lọc ra jitter này từ phong trào hợp pháp?thuật toán/lý thuyết để loại bỏ vị trí GPS jitter

Ứng dụng Sporypal vv rõ ràng có cách nào đó để lọc ra nhiễu này.

Mọi suy nghĩ?

Trả lời

4

Bạn có thể chạy các vị trí thông qua bộ lọc thông thấp không?

Something của trật tự

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

nơi

S là mẫu ồn ào của bạn và x, mẫu thấp vượt qua lọc. K là hằng số từ 0 đến 1 mà bạn có thể phải thử nghiệm để có hiệu suất tốt nhất.

mỗi TK của đề nghị:

giả của tôi sẽ xem xét hết sức C thích:

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: 

Tóm lại, đây là một đơn giản là một tích hợp thông tin phản hồi với một sự chậm trễ một mẫu. Nếu đầu vào của bạn có nhiễu trắng-tần số thấp trên đầu tín hiệu mong muốn, bộ tích hợp này sẽ trung bình tín hiệu đầu vào theo thời gian, do đó làm cho các thành phần tiếng ồn ở mức trung bình gần bằng không, để lại tín hiệu mong muốn.

Làm thế nào nó hoạt động sẽ phụ thuộc vào mức độ nhiễu của tín hiệu và yếu tố phản hồi bộ lọc K. Như tôi đã nói, bạn sẽ phải chơi một chút với giá trị để xem giá trị nào tạo ra giá trị sạch nhất kết quả mong muốn.

+1

Bạn có thể đặt "ví dụ" bằng mã giả không? Tôi nghĩ điều đó sẽ làm cho nó rõ ràng hơn rất nhiều cho OP. –

+0

Cảm ơn ví dụ chi tiết ... sẽ băm này ra ngày hôm nay và xem nó có giúp ích gì không. – corrumpu

+0

@corrumpu Nó có hoạt động không? – Yankee