Main Content

记录加速度计数据

此示例说明如何操作和可视化来自智能手机或平板电脑加速度计的数据。

加速度计是一种测量速度变化率(加速度)的传感器。它使用三维笛卡尔坐标系,并返回以下图窗中所示的每个轴的加速度值。

您可以使用“传感器”菜单在 MATLAB Mobile 中轻松捕获加速度计数据。

要记录加速度计数据,请执行以下步骤:

  1. 选择“流式传输至日志”。

  2. 调整采样率(默认为 10 Hz)。

  3. 打开“加速度”开关。

  4. 点击“开始”。

在采集数据后,请执行以下操作:

  1. 点击“停止”。

  2. 输入要保存的文件名(提供默认名称)。

  3. 如果启用了“自动上传”选项,文件将作为 .mat 文件上传到 MATLAB Drive 上您配置的“上传文件夹”(默认为 MATLAB Drive/MobileSensorData)。

此示例使用一个预先录制的包含以下活动的会话:

  • 站立

  • 步行

  • 慢跑

  • 全速跑

这些数据是通过智能手机采集的,智能手机以纵向连接在运动员的胸部,屏幕朝向前方。

要可视化数据,请首先加载捕获的传感器数据的 .mat 文件。

load fieldActivities.mat

将数据读入变量 xyz 中,并将时间戳读入 timestamp 中。

x = Acceleration.X;
y = Acceleration.Y;
z = Acceleration.Z;
timestamp = Acceleration.Timestamp;

使用加载的变量中的加速度值,计算组合了 3 个轴的向量的模。

combinedAccel = sqrt(x.^2+y.^2+z.^2);

用零初始化向量 t(推荐用于性能)。

t = zeros(size(timestamp));

将绝对时间转换为相对值,将起点设置为参考。

for n = 1 : length(timestamp)
  t(n) = seconds(timestamp(n) - timestamp(1));
end

最后,使用 plot 命令显示结果。

plot(t, combinedAccel)
xlabel('Time (s)')
ylabel('Acceleration (m/s^2)')

您可以轻松识别图中的四种不同活动。它从站立位姿开始,加速度几乎恒定在 9.8 m/s^2(重力),然后随着活动进行到步行、慢跑和全速跑,振幅和频率都会增加。

如果您要单独查看每个轴的结果,请使用以下实时控件。

选择轴以查看该方向的加速度值。

plot (t,x)
title('Acceleration during 4 activities')
xlabel('Time (s)')
ylabel('Acceleration (m/s^2)')