日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

發(fā)布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab数据求加速度,通过从移动设备获取加速度数据对进行计步 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

設置您的移動設備

為了在 MATLAB? 中接收來自移動設備的數(shù)據(jù),您需要在您的移動設備上安裝和設置 MATLAB Mobile? App。

從 MATLAB Mobile 的“設置”登錄到 MathWorks? Cloud。

創(chuàng)建與移動設備的連接

在 MATLAB Mobile 的命令屏幕上,使用 mobiledev 命令創(chuàng)建一個表示您的移動設備的對象。

m = mobiledev;

輸出應顯示 Connected: 1,表明 mobiledev 對象已成功建立與該 App 的連接。

準備數(shù)據(jù)采集

在設備上啟用加速度傳感器。

m.AccelerationSensorEnabled = 1;

開始獲取數(shù)據(jù)

啟用傳感器后,MATLAB Mobile 的傳感器屏幕將顯示傳感器測量的當前數(shù)據(jù)。Logging 屬性允許您開始向 mobiledev 發(fā)送傳感器數(shù)據(jù)。

m.Logging = 1;

該設備現(xiàn)在正在傳輸傳感器數(shù)據(jù)。

在記錄過程中,當人員四處走動時,設備始終放在衣服口袋中。這將在所有三個軸上生成加速度變化,而與設備方向無關。

停止獲取數(shù)據(jù)

再次使用 Logging 屬性使設備停止向 mobiledev 發(fā)送傳感器數(shù)據(jù)。

m.Logging = 0;

檢索記錄的數(shù)據(jù)

accellog 用于檢索從設備傳輸?shù)?mobiledev 的 XYZ 加速度數(shù)據(jù)和時間戳。

[a,t] = accellog(m);

繪制原始傳感器數(shù)據(jù)

可以同時繪制記錄的所有三個軸的加速度數(shù)據(jù)。

plot(t,a);

legend('X', 'Y', 'Z');

xlabel('Relative time (s)');

ylabel('Acceleration (m/s^2)');

處理原始加速度數(shù)據(jù)

為了將每個時間點的 XYZ 加速度向量轉換為標量值,系統(tǒng)將計算其幅值。這樣,無論設備方向如何,都可以檢測到整體加速度的較大變化,例如行走步數(shù)。

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)');

繪圖顯示加速度幅值不是零均值。從數(shù)據(jù)中減去均值將消除任何常量影響,如重力。

magNoG = mag - mean(mag);

plot(t,magNoG);

xlabel('Time (s)');

ylabel('Acceleration (m/s^2)');

繪制的數(shù)據(jù)現(xiàn)在以零為中心,清楚地顯示加速度幅值的峰值。每個峰值對應一個行走步。

對行走步進行計數(shù)

findpeaks 是 Signal Processing Toolbox 提供的一個函數(shù),用于求加速度幅值數(shù)據(jù)的局部最大值。只有最小高度超過一個標準差的峰值才被視為一個行走步。此閾值應通過試驗來調(diào)整,以匹配人行走時移動的程度、地面的硬度等。

minPeakHeight = std(magNoG);

[pks,locs] = findpeaks(magNoG,'MINPEAKHEIGHT',minPeakHeight);

行走步數(shù)即求得的峰值數(shù)。

numSteps = numel(pks)

峰值位置可以通過加速度幅值數(shù)據(jù)進行可視化。

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;

清理

關閉加速度傳感器并清理 mobiledev。

m.AccelerationSensorEnabled = 0;

clear m;

總結

以上是生活随笔為你收集整理的matlab数据求加速度,通过从移动设备获取加速度数据对进行计步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。