Bonjour,
je dispose d'une liste de valeurs saisies toutes les 20s et aprés chaque acquisition de 20s , on note un arrêt de 40s.
Voici une image pour comprendre le phénoméne.
Et mon objectif est de sélectionner les pics du signal réel pour chaque acquisition de 20s. pour celà j'ai utilisé deux méthodes :
methode 1 : avec findpeaks
methode 2 : avec find
findpeaks me sort les pics espacés de 4s
find me sort tous les pics supérieurs à la moyenne des échantillons
mon probléme est que pour certains tranches de 20s, certains pics du signal réel sont oubliés car étant inférieures à la moyenne des échantillons ou on a des pics espacés d'un temps inférieurs à 4s.
Pour chaque tranche de 20s on doit avoir environ 5 pics espacés de plus ou moins 4s.
voici mon code :
Je vous mets en pièces joints le fichier .mat à charger.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 clear; load('mesure17Aout.mat');%file loading measures = mesure17Aout(:,1); time = mesure17Aout(:,2); k = [0 ; time(2:end)<time(1:end-1)]; c = cumsum(k); time = time+c*60; S = [measures time]; [peaks,locs] = findpeaks(measures,'MaxPeakDistance',4); I = find(S(:,1)>mean(S(:,1))); %% %--------------------------TRACE---------------------------- figure plot(time,measures) grid hold plot(time(locs),peaks,'.black','MarkerSize',23) plot(S(I,2),S(I,1),'.','MarkerSize',20,'Color','r')
Ma question : Réussir à découper mon signal en tranche de 20s , ensuite je pourrais appliquer le traitement qu'il faut pour les différents de cas observés pour chaque tranche de 20s.
merci de votre aide
Partager