ios - 如何从 3 轴加速度计数据中获取运动大小

标签 ios iphone objective-c signal-processing accelerometer

我做了很多实验,使用加速度计来检测运动大小(幅度),只是 x、y、z 加速度的一个值。我正在使用加速度计更新频率为 1.0/50.0 (50HZ) 的 iPhone 4,但我也尝试过使用 100HZ、150HZ、200HZ。

例子:

X 轴加速度 Y 轴加速度 Z轴加速度

我假设(我希望我是正确的)加速度是图表上的小峰,而不是大步。我认为从我的实验来看,大步显示了设备位置。如果更改位置,步骤也会更改。

如果我之前的假设是正确的,我需要从图中切出峰值并对其进行总结。我的问题来了,我怎样才能在不丢失信息(峰大小)的情况下切割这些峰。

我知道高通滤波器有这种想法(通过高峰值并阻挡噪声,小的,我读过一些关于滤波器的论文。但对我来说,滤波器从中删除了很多信息我的“信号”(加速度计数据)。

我认为应该有更好的方法从数据中提取信息。

我试过一个看起来不错但不正确的简单方法。

我使用我的函数 ma​​gnitude

做了这个数据数据
for i = 2 : length(x)
    converted(i-1) = x(i-1) - x(i);
end

其中 x 是我的数据,转换后的数组是结果。

下一行生成了下图,看起来不错。

xyz = magnitude(datay) + magnitude(dataz) + magnitude(datax)

enter image description here

然而,该解决方案的问题在于,如果我有连续加速,图表只会显示第一个点,然后下降。我知道我需要更好的过滤器,但我有点困惑。你能给我一些建议我怎样才能正确地做到这一点。

谢谢你的时间, 非常感谢您的帮助

编辑(Zaph 问题的答案):

你想完成什么? 我想测量 iPhone 放在 table 、椅子或床上时的运动。如果我把铅笔放在它显示给我的 table 上,加速度计就会非常灵敏。我想测量特定时间内发生的所有运动。

什么是比例单位? 我没有缩放数据。

当你说“设备位置”是什么意思时,加速度计提供运动(在带陀螺仪的 iPhone 中) 我只使用加速度计。当我像下图那样放置设备时,我得到的值在 x 坐标上约为 -1,在 z 和 y 坐标上约为 0.0。这就是我所说的设备位置。 enter image description here

最佳答案

加速度计返回的测量值是加速度,而不是位置。

我不确定您所说的“大步”是什么意思,但峰值显示了加速度的变化。保持设备静止时值不为 0 的事实是由于重力以 9.81 m/s^2(加速度矢量的大小)加速设备。

关于ios - 如何从 3 轴加速度计数据中获取运动大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20920712/

相关文章:

ios - 解析后端上传文件的新错误 - 错误 : File name must be a string - PFFile

iOS:CCCrypt() kCCOptionECBMode 和 kCCModeCBC 哪个更安全

ios - Swift - 如何找到一个类的所有实例,以及指向同一实例的所有引用?

ios - 如何在 ARC 下的 Instruments 中激活 Cycles 报告?

ios - 当 audioqueue 播放从 ffmpeg 解码的 lpcm 时,音频队列的耗时超过了媒体的持续时间

iphone - UIImageView介绍动画问题

iphone dev - 使用 iPad 模拟 iPhone 环境

iphone - 在 iPhone 上的 native SMS/MMS 应用程序中附加图像

iOS 获取最后一帧视频

objective-c - 如何创建水平 UIPickerView 样式控件?