[Users-fr] recherche d'extrema signaux temporels discrets

classic Classic list List threaded Threaded
2 messages Options
David Chèze David Chèze
Reply | Threaded
Open this post in threaded view
|

[Users-fr] recherche d'extrema signaux temporels discrets

Bonjour à tous,

 

Je me demande si dans vos utilisations antérieures de Scilab en traitement de signal vous auriez déjà repéré ou développé une fonction pour repérer des extrema sur des signaux temporels discrets. Quelque chose d’équivalent dans un module atoms à findpeaks de Matlab ou Octave, find_peaks de scipy ?

 

Merci pour vos lumières !

 

 

David

 


_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr
jbaudais jbaudais
Reply | Threaded
Open this post in threaded view
|

Re: recherche d'extrema signaux temporels discrets

Bonjour,


Le 16/03/2021 à 10:52, CHEZE David 227480 a écrit :
> [...] pour repérer des extrema sur des signaux temporels discrets. [...]
Je ne sais pas si c'est équivalent à findpeak que je ne connais pas, ici
ça donne tous les extremums locaux, min et max

function [imin,imax]=l_minmax(in)
   // Donne les min. et max. locaux du vecteur colonne
   // INPUT
   //  in: vecteur colonne
   // OUTPUT
   //  imin: vecteur colonne des indices des min. locaux
   //  imax: vecteur colonne des indices des max. locaux

   din=find(diff(in)~=0);
   imin=zeros(in);
   imax=imin;
   for i=2:length(din)-1
     if and(in([din(i-1),din(i+1)])>in(din(i))) then
       imin(i)=din(i);
     elseif and(in([din(i-1),din(i+1)])<in(din(i))) then
       imax(i)=din(i);
     end
   end
   imin=imin(imin>0);
   imax=imax(imax>0);
endfunction

et l'exemple

--> a=rand(100,1);
--> [am,aM]=l_minmax(a);
--> plot(a)
--> plot(am,a(am),"*")
--> plot(aM,a(aM),"*r")

Il faudrait sans doute améliorer avec un traitement particulier des
données du bord...


--Jean-Yves
_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr