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

Jean-Yves Baudais Jean-Yves.Baudais at insa-rennes.fr
Mar 16 Mar 18:17:25 CET 2021


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



Plus d'informations sur la liste de diffusion users-fr