Extract data between peaks

3 次查看(过去 30 天)
Hello everyone, I would really appreciate help on solving this problem. I am trying to segment an emg data based on heelstrikes recorded from the accelerometer. I have used the peak to peak to find the location of the heelstrikes. The first peak, third and fifth peak belong to the right foot. The second, fourth,and sixth correspond to the left foot. I would like to extract the data between. Two heelstrikes of the same foot. For example I would like to write a for loop to extract the emg data from peak 1 to peak 3, then peak 3 to peak 5 till the last peak. Here's what I tried to do but it doesn't work. I have showed the extraction portion in the picture attached. Thanks in advance
if true
% clear all
EMG = readmatrix('straightLASER01.xlsx','Sheet',1); %read emg data
ACC = readmatrix('straightLASER01.xlsx','Sheet',2); %read accleration data
[pks,locs] = findpeaks(ACC,'MinPeakDistance',1000); %find peaks
for p = 1:length(locs)
first_strike = floor(locs(p,:));
third_strike = floor(locs((p+2),:));
acc = EMG1(first_strike:third_strike , p);
end
end

采纳的回答

Adam Danz
Adam Danz 2019-6-10
编辑:Adam Danz 2019-6-10
This segregates the EMG1 data by every 2 right-foot steps.
rightFootIdx = 1 : 2 : numel(locs);
for i = 1:length(rightFootIdx)-1
acc = EMG1(locs(rightFootIdx(i)):locs(rightFootIdx(i+1)), p);
% ...
end
  7 个评论
jay yawson
jay yawson 2019-6-11
编辑:Adam Danz 2019-6-11
Concerning the same work, I've asked a similar question. I would like to extract the data between two regions. However these two regions are not the peaks and I don't know how to automatically detect that. Do you have any ideas? Kindly take a look if you manage to get some free time off you busy schedule. Many thanks.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Spectral Measurements 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by