Matlab从移动设备获取加速度数据对步数进行计数

本文分享如何从 Android或 iOS (我的手机是ios)移动设备收集加速度数据,并使用它来对行走步数进行计数。

1、设置移动设备

为了在 MATLAB中从移动设备接收数据,移动设备上安装和设置 MATLAB Mobile™ App。

从 MATLAB Mobile 设置登录到 MathWorks® Cloud。

2、打开传感器

设置对应的采样频率、数据输出地址等

3、准备数据采集

点击start开始数据采集,人员四处走动记录所有三个轴上生成加速度变化。采集结束后,输入对应的文件名,结果会自动上传到matlab云

4、从matlab云下载数据

云地址:https://drive.matlab.com/files/

5、检索记录的数据

clc
close all
clear
load('./sensor.mat')
t = Acceleration.Timestamp;
x = Acceleration.X;
y = Acceleration.Y;
z = Acceleration.Z;

6、绘制原始传感器数据

记录的所有三个轴的加速度数据可以一起绘制。

plot(t,a);
legend('X', 'Y', 'Z');
xlabel('Relative time (s)');
ylabel('Acceleration (m/s^2)');

7、处理原始加速度数据

为了将每个时间点的 XYZ 加速度向量转换为标量值,计算其幅值。这使得无论设备方向如何,都可以检测到整体加速度的较大变化,例如行走步。

x = a(:,1);
y = a(:,2);
z = a(:,3);
mag = sqrt(sum(x.^2 + y.^2 + z.^2, 2));

绘制幅值是为了可视化加速度的总体变化。

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

绘图显示加速度幅值不是零均值。从数据中减去均值将消除任何常量影响,如重力。

magNoG = mag - mean(mag);
plot(t,magNoG);
xlabel('Time (s)');
ylabel('Acceleration (m/s^2)');

绘制的数据现在以零为中心,清楚地显示加速度幅值的峰值。每个峰值对应一个行走步。

8、对行走步进行计数

findpeaks 是 Signal Processing Toolbox 提供的一个函数,用于求加速度幅值数据的局部最大值。只有最小高度超过一倍标准差的峰值才被视为一个行走步。此阈值应通过试验来调整,以匹配人行走时移动的水平、地面的硬度等。

minPeakHeight = std(magNoG);[pks,locs] = findpeaks(magNoG,'MINPEAKHEIGHT',minPeakHeight);
# 行走步数即求得的峰值数。
numSteps = numel(pks)

峰值位置可以通过加速度幅值数据可视化。

hold on;
plot(t(locs), pks, 'r', 'Marker', 'v', 'LineStyle', 'none');
title('Counting Steps');
xlabel('Time (s)');
ylabel('Acceleration Magnitude, No Gravity (m/s^2)');
hold off;

Matlab从移动设备获取加速度数据对步数进行计数相关推荐

  1. matlab数据求加速度,通过从移动设备获取加速度数据对进行计步

    设置您的移动设备 为了在 MATLAB® 中接收来自移动设备的数据,您需要在您的移动设备上安装和设置 MATLAB Mobile™ App. 从 MATLAB Mobile 的"设置&quo ...

  2. Matlab Mobile手机版获取gps数据和加速度信号融合

    Matlab Mobile手机版获取gps数据和加速度信号融合 前言 安装matlab mobile Matlab Drive Connector 安装 Matlab Mobile 记录数据 Matl ...

  3. Android 手机获取加速度传感器加速度数据并自定义采样频率

    原文链接:http://blog.csdn.net/llp1992/article/details/41786865 因为项目需要利用到了Android手机中的加速度传感器来获取三个加速度轴的加速度大 ...

  4. WiFi与惯导融合定位其一:通过安卓手机获取路由器数据(MAC、RSSI)

    电磁类信号定位的方法和原理都大同小异,只是会因为频段的不同而产生了电磁信号不同的损耗特点.所以5G定位也好,WiFi定位也好,算法原理都是差不多,不同的是基站和频谱.对于WiFi定位的实验,先从这种最 ...

  5. 驱动LSM6DS3TR-C实现高效运动检测与数据采集(3)----获取传感器数据

    概述 一旦传感器被正确初始化,可以通过SPI或I2C接口向传感器发送读取命令,并接收传感器返回的数据.这个读取过程包括获取LSM6DS3TR传感器提供的加速度计和陀螺仪数据,以及传感器对应的温度信息. ...

  6. matlab的peer啥意思,科学网—Matlab读取PEER地震动记录数据库加速度数据函数 - 王德才的博文...

    PEER地震动记录数据库是目前应用最为广泛的数据库,为了便于利用其中的强震记录,对几年前采用Matlab编写的读取加速度数据函数进行了改写,使用了向量化的编写规则,减少了原有的循环处理,比原来的程序简 ...

  7. WiFi与惯导融合定位其二:安卓获取惯性数据(线性加速度、旋转矢量)

    运动传感器的可能架构因传感器类型而异: 重力.线性加速度.旋转矢量.有效运动.计步器和步测器传感器可能基于硬件,也可能基于软件(处理过的数据,可能为多个传感器数据的融合). 加速度计传感器和陀螺仪传感 ...

  8. 卡尔曼滤波处理三轴加速度数据(MATLAB)

    根据实际需要以及传感器数据列写状态方程,确定观测数据和相关误差. 附加一部分六轴传感器数据的处理技术总结,有问题欢迎指出. 文章目录 一.卡尔曼滤波的原理 二.使用MATLAB验证滤波算法 三.结果验 ...

  9. ua获取手机型号_取证人员为什么很难从移动设备上获取电子数据证据?

    "法拉第袋" 英文名为Faraday bag 移动设备是动态系统,在提取和分析电子数据证据时会给取证人员带来很多挑战.来自不同制造商的不同型号的手机的数量的快速增加使得难以开发用于 ...

最新文章

  1. axios的简单使用
  2. CF449B Jzzhu and Cities 迪杰斯特拉最短路算法
  3. 【机器学习基础】数学推导+纯Python实现机器学习算法11:朴素贝叶斯
  4. 正益工场为京西创客工场输送双创“软”实力
  5. 《大数据》2021年第6期目次摘要
  6. java for in 循环_js的for in循环和java里foreach循环的区别分析
  7. [转]飞秋使用说明与常见问题解决方法
  8. Java计算器源码java计算器代码java科学计算器代码
  9. Docker本地镜像
  10. python怎么撤销_python撤销操作
  11. android FD泄露问题记录
  12. 技术总监面试有什么技巧
  13. 2022年,尽量还是别裸辞了吧···
  14. java xml pull解析_Android App中使用Pull解析XML格式数据的使用示例
  15. JavaScript系列之高级篇(2)
  16. 但行好事,莫问前程。
  17. windows s2019安装crucible-4.8.2
  18. 2019苹果全球开发者大会:起售价5999美元,史上最强大Mac电脑发布
  19. 【模拟电子技术基础】本章讨论问题答案2
  20. 库乐队安卓版_【浦东小学音乐教研】玩转“酷”乐队

热门文章

  1. dns修改服务器端口号,域名解析服务器端口号设置多少
  2. Python学习day3、day4
  3. focusky html怎么转ppt,Focusky怎么转PPT_Focusky如何导入PPT_Focusky教程
  4. 数据结构实验3、单链表的基本操作实现
  5. 2023首届大学生算法大赛 - 拿饼干
  6. LS1028A性能介绍-NXP Layerscape 系列功能对比-飞凌LS1028开发板评测
  7. [附源码]计算机毕业设计JAVA民宿客栈管理系统
  8. 判断字符串长度是否为0
  9. 如何学会傅里叶变换?
  10. win7 64位“不是内部命令和外部命令,也不是可运行的程序和批处理文件”错误的解决办法。