matlab数据求加速度,通过从移动设备获取加速度数据对进行计步
設置您的移動設備
為了在 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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 10.2.0.4 rac
- 下一篇: “身外何足言”下一句是什么