3

我正在尝试使用加速度计测量设备滑动的距离。这就是我的做法:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    CGFloat interval = [NSDate timeIntervalSinceReferenceDate] - lastTime;

    CGFloat velocity = ((acceleration.y + lastAcceleration) / 2) * interval * 9.8 + lastVelocity;

    totalDistance += velocity * interval;

    lastAcceleration = acceleration.y;
    lastVelocity = velocity;

    lastTime = [NSDate timeIntervalSinceReferenceDate];
}

结果非常不稳定,范围为实际值的 +/- 30%。我的计算是否正确,如果是,我怎样才能使这段代码更准确?

4

1 回答 1

0

您可以通过对结果应用过滤器来消除硬件的一些不准确之处。

这是一个对值进行快速傅立叶变换的库。

http://sourceforge.net/projects/kissfft/

于 2012-09-25T10:12:37.997 回答