首页 > 解决方案 > 加速度测量中的重力

问题描述

我从一个数据集中获取了加速度计检测到的活动(例如步行、跑步)的 x 和 z 值。由于收集的数据还包含重力值,我在 Matlab 中使用以下过滤器将其删除:

fc = 0.3;
fs = 50;
x = ...;
y = ...;
z = ...;

[but,att] = butter(6,fc/(fs/2));

gx = filter(but,att,x);
gy = filter(but,att,y);
gz = filter(but,att,z);

new_x = x-gx;
new_y = y-gy;
new_z = z-gz;

A = magnitude(new_x,new_y,new_z);

plot(A)

然后我计算了幅度值并在图表上绘制了幅度值。

然而,每张图,即使在去除重力之后,也是以 1g (9.8 m / s ^ 2) 的大小开始的,为什么?既然我移除了重力,它不应该从 0 开始吗​​?

标签: matlabfilteraccelerometer

解决方案


您需要等待过滤器值上升。为此目的,在文件开头包含一些您没有绘制的附加数据。

您的计算需要多准确?随着步行和跑步,加速度计的角度会发生变化,因此重力矢量的方向会在整个步态周期中发生变化。您可以期望看到多少方向变化取决于传感器位置和您尝试捕捉的特定运动。


推荐阅读