[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