Java GPS位置抖动消除算法/理论
我正试图在android上编写一个GPS跟踪(类似于慢跑应用程序),GPS位置抖动的问题让它变得丑陋不堪。当精度良好且精度在5米以内时,位置每秒抖动1-n米。如何确定或过滤掉合法运动中的抖动 Sporypal等应用程序显然在某种程度上过滤掉了这种噪音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的建议: 我的伪代
有什么想法吗?你能通过低通滤波器运行位置吗 差不多
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更清晰。感谢您提供的详细示例…今天我们来讨论一下,看看是否有帮助。