7
我正在嘗試在android上編寫一個GPS跟蹤(類似於一個慢跑應用),並且GPS位置抖動的問題已經引發了它的醜陋頭部。當精度爲FINE且精度在5米以內時,位置抖動爲每秒1米。你如何確定或濾除合法運動中的抖動?GPS位置抖動去除算法/理論
Sporypal等應用程序顯然有一些方法,他們正在篩選出這種噪音。
有什麼想法?
我正在嘗試在android上編寫一個GPS跟蹤(類似於一個慢跑應用),並且GPS位置抖動的問題已經引發了它的醜陋頭部。當精度爲FINE且精度在5米以內時,位置抖動爲每秒1米。你如何確定或濾除合法運動中的抖動?GPS位置抖動去除算法/理論
Sporypal等應用程序顯然有一些方法,他們正在篩選出這種噪音。
有什麼想法?
你可以通過低通濾波器來運行位置嗎?
東西順序
x(n) = (1-K)*x(n-1) + K*S(n)
其中
S是你的噪聲採樣並且x,將低通濾波的樣本。 K是一個介於0和1之間的常量,爲了獲得最佳性能,您可能需要進行試驗。
每TK的建議:
我的僞代碼將氣色好Ç喜歡:
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.正如我之前所說的,你必須稍微花一點時間來看看哪個值產生最乾淨,最乾淨理想的結果。
你可以給一個「例如」使用僞代碼?我認爲這會讓OP更清晰。 – 2012-02-07 22:54:43
感謝您的詳細示例......今天就去查看它是否有幫助。 – corrumpu 2012-02-08 15:06:52
@corrumpu它有用嗎? – Yankee 2017-11-07 23:16:28