使用Matlab从加速度计数据特征提取

16个视图(30天)
我想提取统计特征,如最小,马克斯,大小,标准差,意思是,相关性,能量从原始加速度计(x, y, z)收集的数据来自智能手机加速计。从原始加速度数据提取的特性都是使用一个窗口大小的512个样本256个样本之间的重叠连续windows使用Matlab(滑动窗口有50%的重叠)。
这是我的代码,我已经发展到目前为止,我将不胜感激如果任何人都可以验证它的正确性。也会非常感激如果有人可以突出对Matlab滑动窗口部分。
提前谢谢你的帮助。
如果真正的
清晰的所有
data =负载(“user_1703.txt”);
accX =数据(:,3)/ 9.8;% CSV文件的第三列是加速度计的值X accY =数据(:,4)/ 9.8;% CSV文件的第四列是加速度计的值Y accZ =数据(:,5)/ 9.8;% CSV文件的第五列是加速度计的值Z % * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
[m, n] =大小(accX);acc = 1(1米);% % * * * * * * * * * * * *的统计值初始化窗口* * * * * * % avgX = 0 (1500);avgY = 0 (1500);avgZ = 0 (1500);avgACC = 0 (1500);maxACC = 3 * 1 (1500);% 3和100值是随机值使初值看起来很不同的比实际值minACC = 3 * (1500);maxX = 100 * 1 (1500);maxY = 100 * 1 (1500); maxZ=100*ones(1,500); minX=-100*ones(1,500); minY=-100*ones(1,500); minZ=-100*ones(1,500); stdX=zeros(1,500); stdY=zeros(1,500); stdZ=zeros(1,500); stdACC=zeros(1,500); XYcorr=zeros(1,500); XZcorr=zeros(1,500); YZcorr=zeros(1,500); energy=zeros(1,500); %************************************************************************** %************************************************************************** for i=1:m acc(i)=sqrt((accX(i)^2+accY(i)^2+accZ(i)^2)); end
i = 1;j = 1;windowsize = 50;% * * * * * * *在每个迭代中,计算窗口的统计值%和原始数据(accX、accY accZ)指数由windowsize inceremented / 2 %提供% 50重叠的* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * %,(我< = m-52) corrmatrix = corrcoef ([accX(我+ windowsize-1), accY(我+ windowsize-1), accZ(我+ windowsize-1)));XYcorr (j) = corrmatrix (1、2);XZcorr (j) = corrmatrix (1、3);YZcorr (j) = corrmatrix (2、3);
avgX (j) =意味着(accX(我+ windowsize-1));
stdX (j) =性病(accX(我+ windowsize-1))
maxX (j) = max (accX(我+ windowsize-1));
风骚女子(j) = min (accX(我+ windowsize-1));
avgY (j) =意味着(accY(我+ windowsize-1));
stdY (j) =性病(accY(我+ windowsize-1));
maxY (j) = max (accY(我+ windowsize-1));
如矿坑的(j) = min (accY(我+ windowsize-1));
avgZ (j) =意味着(accZ(我+ windowsize-1));
stdZ (j) =性病(accZ(我+ windowsize-1));
maxZ (j) = max (accZ(我+ windowsize-1));
minZ (j) = min (accZ(我+ windowsize-1));
avgACC (j) =意味着(acc(我+ windowsize-1));
stdACC (j) =性病(acc(我+ windowsize-1));
maxACC (j) = max (acc(我+ windowsize-1));
minACC (j) = min (acc(我+ windowsize-1));
能源(j) =总和(abs (fft (acc(我+ windowsize-1)))) / 26;%
%的能量被定义为规范化的绝对值总和
%有窗的信号序列的离散傅里叶变换
我=我+ windowsize / 2 - 1;
j = + 1;
结束
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
%这个细胞代表组成的矩阵每一行代表一个
%窗口,每一列代表统计属性
%以上计算%
细胞= [maxX。”、风骚女子。”avgX。”、stdX。”maxY。“,如矿坑的。”,avgY。”、stdY。”maxZ。”、minZ。”avgZ。”、stdZ。”maxACC。”、minACC。”avgACC。”、stdACC。”XYcorr。”、XZcorr。”YZcorr。”、能量。”);
%有一个内置的MATLAB函数编写矩阵作为输入一个CSV格式的文件。
csvwrite (“features.csv”、细胞);
结束
7评论
赛义夫Aljanahi
赛义夫Aljanahi 2021年3月30日
谢谢,这段代码真的帮了我,我很感激。

登录置评。

答案(1)

Shrey Joshi
Shrey Joshi 2022年5月18日
你可以通过使用功能提供的特征提取的信号贴标签机应用模式。
//www.tianjin-qmedu.com/help/signal/ug/extract-signal-features.html

类别

找到更多的在人工智能的信号帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!