我做了很多实验,使用加速度计来检测运动大小(幅度),只是 x、y、z 加速度的一个值。我正在使用加速度计更新频率为 1.0/50.0 (50HZ) 的 iPhone 4,但我也尝试过使用 100HZ、150HZ、200HZ。
例子:
X 轴加速度 Y 轴加速度 Z轴加速度
我假设(我希望我是正确的)加速度是图表上的小峰,而不是大步。我认为从我的实验来看,大步显示了设备位置。如果更改位置,步骤也会更改。
如果我之前的假设是正确的,我需要从图中切出峰值并对其进行总结。我的问题来了,我怎样才能在不丢失信息(峰大小)的情况下切割这些峰。
我知道高通滤波器有这种想法(通过高峰值并阻挡噪声,小的,我读过一些关于滤波器的论文。但对我来说,滤波器从中删除了很多信息我的“信号”(加速度计数据)。
我认为应该有更好的方法从数据中提取信息。
我试过一个看起来不错但不正确的简单方法。
我使用我的函数 magnitude
做了这个数据数据for i = 2 : length(x)
converted(i-1) = x(i-1) - x(i);
end
其中 x 是我的数据,转换后的数组是结果。
下一行生成了下图,看起来不错。
xyz = magnitude(datay) + magnitude(dataz) + magnitude(datax)
然而,该解决方案的问题在于,如果我有连续加速,图表只会显示第一个点,然后下降。我知道我需要更好的过滤器,但我有点困惑。你能给我一些建议我怎样才能正确地做到这一点。
谢谢你的时间, 非常感谢您的帮助
编辑(Zaph 问题的答案):
你想完成什么? 我想测量 iPhone 放在 table 、椅子或床上时的运动。如果我把铅笔放在它显示给我的 table 上,加速度计就会非常灵敏。我想测量特定时间内发生的所有运动。
什么是比例单位? 我没有缩放数据。
当你说“设备位置”是什么意思时,加速度计提供运动(在带陀螺仪的 iPhone 中) 我只使用加速度计。当我像下图那样放置设备时,我得到的值在 x 坐标上约为 -1,在 z 和 y 坐标上约为 0.0。这就是我所说的设备位置。
最佳答案
加速度计返回的测量值是加速度,而不是位置。
我不确定您所说的“大步”是什么意思,但峰值显示了加速度的变化。保持设备静止时值不为 0 的事实是由于重力以 9.81 m/s^2(加速度矢量的大小)加速设备。
关于ios - 如何从 3 轴加速度计数据中获取运动大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920712/