我从数据集中获取了值加速度计检测到的活动(例如步行、跑步(的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开始吗?
您需要等待过滤器值的增加。为此,请在文件开头包含一些未绘制图形的附加数据。
你的计算需要有多准确?步行和跑步时,加速度计的角度会发生变化,因此重力矢量的方向会在整个步态周期中发生变化。你预计看到的方向变化程度取决于传感器的位置和你试图捕捉的特定运动。