我试图使用核心运动用户加速度值,并对其进行双重积分以推导出覆盖的距离。我沿着桌子上的30厘米日志尺沿着iPhone的Y轴线性移动。首先,我让设备静止10秒钟,并通过平均相应的用户加速度值来计算我的三个轴向上的偏移量。在尝试计算距离覆盖时,X、Y和Z偏移量从加速度值中减去。在进行偏移量减法后,这些值被分别通过低通滤波器和中值滤波器传递。过滤器是线性过滤器,并且截止频率由低通中取平均值的相邻值的数量以及中值滤波器中的中位数指定。我已经尝试了将此数字的值从1变化到100。最终,这些经过过滤的值使用梯形规则进行双重积分以获得距离。但是,计算出的距离与30厘米相差甚远。我得到的最接近的值是-22厘米(我想知道为什么我即使将设备向正Y方向移动也会得到负值)。我还遇到了这个: http://ajnaware.wordpress.com/2008/09/05/accelerating-iphones/ 这是一个关于同样问题的旧帖子,它说返回的加速度计读数似乎以约0.18m / s ^ 2(即约0.018g)的量子形式出现,导致累积误差非常快。根据这个,为了使这个错误真正无关紧要,人们必须将设备的加速度提高到几乎1.8m / s ^ 2,这在距离/长度测量目的上实际上是不可能的。对于小运动,似乎没有可能使用最佳过滤器和更高阶数值积分方法来计算距离,而不需要像那样的不切实际的速度/加速度限制。这可行吗? 如何使用我的加速度与时间戳数据来插值随时间增长而增长的多项式,该多项式大致表示加速度与时间曲线。双重积分这个多项式将是一件轻而易举的事情。但是,对于小距离,多项式将具有大的误差成分。使用我设备将遭受的可预测已知运动,我希望拍摄大量快照(计算距离与实际已知距离),以类似的方式计算我的误差多项式,然后从我的第一个多项式中减去它。这可行吗?