How could I create a sliding window of 300 seconds, with an overlap of 60 seconds?

8 visualizzazioni (ultimi 30 giorni)
I have a Ecg signal. I need to process it with consecutive windows of 5 minutes, and a overlap of 1 minute.(it's like first array from 1 to 300, second one from 61 to 361, third from 121 to 421..) My Ecg has a 250 Hz sample frequency. This is my code, but it doesn't work as i would:
N2=length(ECG);
fs=250; % sample freq
smp2=1:1:N2;
tmp2=smp2*(1/fs); % time array in seconds
h=1; %1 min
w=300*fs; %5 mins
for %%%here is missing something but i don t understand what is it
tmp_prova=tmp2(h:w);
h=h+60*fs;
w=w+(60*fs);
end
  1 Commento
JAYANTH BHIMAVARAPU
JAYANTH BHIMAVARAPU il 29 Giu 2018
Hey... if you say first array is from 1 to 300 and second one from 61 to 360 , So you will have an overlap of 300-60 i.e 240. Think about this

Accedi per commentare.

Risposte (3)

JAYANTH BHIMAVARAPU
JAYANTH BHIMAVARAPU il 2 Lug 2018
Modificato: JAYANTH BHIMAVARAPU il 2 Lug 2018
for i = 0:60:length(ECG)-300
temp = ECG(i+1 : 300 + i)
end
  6 Commenti
Hemen Gogoi
Hemen Gogoi il 23 Mag 2020
If i want to execute the same operation for 500 columns then what should be the modification in the code
Walter Roberson
Walter Roberson il 23 Mag 2020
https://www.mathworks.com/matlabcentral/answers/408053-how-could-i-create-a-sliding-window-of-300-seconds-with-an-overlap-of-60-seconds#comment_584713 I show the modification for 500

Accedi per commentare.


MUHAMMED IRFAN
MUHAMMED IRFAN il 29 Giu 2018
Does this help?
for i = 1 : 60: length(fullsignal)
current_signal = fullsignal( i : (i + 300-1))
end

Image Analyst
Image Analyst il 29 Giu 2018
If you have the Image Processing Toolbox, you can use blockproc(). Demo attached above.

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

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

Start Hunting!

Translated by