【问题标题】:windows phone accelerometer jitterwindows phone 加速度计抖动
【发布时间】:2014-02-26 01:39:46
【问题描述】:

我想从我的 Windows Phone 8 中每 10 毫秒获取一次加速度计读数,但我观察到了一些抖动:读数之间的间距将为 8、10、12、9 等。所以大约 10 个,但不完全是。

我想知道是否有人可以提出一种获得更可靠读数的方法。

我的代码的核心是这样的:

var accelerometer = Windows.Devices.Sensors.Accelerometer.GetDefault();
accelerometer.ReadingChanged += accelerometer_ReadingChanged;
accelerometer.ReportInterval = 10;

电话报告的 MiminumReportingInterval 为 10,所以应该没问题。我的回调只是将数字添加到列表中,最后我将通过网络发送。

我正在查看 AccelerometerReadingChangedEventArgs.Timestamp 中的时间,这就是我看到间隔并不总是 10 毫秒的地方。这是最新测量中的时间:105,118,128,134,146,157,163,177,187,198,208,213,232,238,245,255,263,279,285,295,303,313,324,334,345,855,363,375,

那么:我可以做些什么来获得更精确的间隔测量值吗?或者这只是这个特定硬件所能做的最好的事情?

【问题讨论】:

    标签: c# windows-phone-8


    【解决方案1】:

    a great article on Windows Phone Developer Blog详细介绍了加速度计。

    本文的要点之一是,是的,值流可以而且很可能会“抖动”,因此您应该实施某种过滤方法。一种这样的方法是低通滤波器。

    过滤后的数据越平滑,实际变化和读数之间的延迟就越大。换句话说,如果你在游戏中使用加速度计作为“方向盘”,大量过滤会导致汽车迟到,但没有过滤可能会导致汽车抖动。因此,最好将其设置在两者之间,具体取决于用例。

    【讨论】:

    • 谢谢@igrali,但这篇文章谈论的是测量值中的错误,而不是我问的测量时间错误。我了解过滤,但我希望可能有其他测量方法可以提供精确间隔的测量值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多