Je peux écrire quelque chose moi-même en trouvant des passages par zéro du premier dérivé ou quelque chose du genre, mais cela semble être une fonction assez courante pour être incluse dans les bibliothèques standard. Quelqu'un en connait un?
Mon application particulière est un tableau 2D, mais il serait généralement utilisé pour trouver des pics dans les FFT, etc.
Plus précisément, dans ces types de problèmes, il y a plusieurs pics forts, puis beaucoup de "pics" plus petits qui sont juste causés par du bruit qui doit être ignoré. Ce ne sont que des exemples; pas mes données réelles:
Pics à une dimension:
Pics bidimensionnels:
L'algorithme de recherche de pics trouverait l'emplacement de ces pics (pas seulement leurs valeurs) et, idéalement, trouverait le véritable pic inter-échantillon, pas seulement l'indice avec la valeur maximale, probablement en utilisant une interpolation quadratique ou quelque chose du genre.
En règle générale, vous ne vous souciez que de quelques pics forts, ils seraient donc soit choisis parce qu'ils sont au-dessus d'un certain seuil, soit parce qu'ils sont les n premiers pics d'une liste ordonnée, classés par amplitude.
Comme je l'ai dit, je sais écrire moi-même quelque chose comme ça. Je demande simplement s'il existe une fonction ou un package préexistant qui fonctionne bien.
Mettre à jour:
J'ai traduit un script MATLAB et cela fonctionne décemment pour le cas 1-D, mais pourrait être mieux.
Mise à jour mise à jour:
sixtenbe a créé une meilleure version pour le cas 1-D.
find_peaks
, j'ai donc ajouté cette réponse qui pourrait être utile pour référence future. (Je suis sûr que vous l'avez déjà trouvé depuis 2009 mais c'est pour d'autres personnes + moi-même quand je me poserai la question à nouveau dans quelques années!)