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

11 vues (au cours des 30 derniers jours)
Francesca Onofri
Francesca Onofri le 29 Juin 2018
Commenté : Walter Roberson le 23 Mai 2020
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 commentaire
JAYANTH BHIMAVARAPU
JAYANTH BHIMAVARAPU le 29 Juin 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

Connectez-vous pour commenter.

Réponses (3)

JAYANTH BHIMAVARAPU
JAYANTH BHIMAVARAPU le 2 Juil 2018
Modifié(e) : JAYANTH BHIMAVARAPU le 2 Juil 2018
for i = 0:60:length(ECG)-300
temp = ECG(i+1 : 300 + i)
end
  6 commentaires
Hemen Gogoi
Hemen Gogoi le 23 Mai 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 le 23 Mai 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

Connectez-vous pour commenter.


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

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

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by