Puedo escribir algo yo mismo buscando cero cruces de la primera derivada o algo así, pero parece una función bastante común para ser incluida en bibliotecas estándar. Alguien sabe de uno?Algoritmo de búsqueda de picos para Python/SciPy
Mi aplicación particular es una matriz 2D, pero por lo general se utiliza para encontrar picos en FFT, etc.
En concreto, en este tipo de problemas, hay múltiples picos fuertes, y luego un montón de pequeños " picos "que son causados por ruido que debe ignorarse. Estos son solo ejemplos; no es mi datos reales: picos
1-dimensionales:
2 dimensiones:
El pico-algoritmo de búsqueda sería encontrar la ubicación de estos picos (no solo sus valores), e idealmente encontraría el verdadero pico entre muestras, no solo el índice con valor máximo, probablemente usando quadratic interpolation o algo así.
Normalmente solo le importan unos pocos picos fuertes, por lo que se elegirían porque están por encima de un determinado umbral o porque son los primeros n picos de una lista ordenada, ordenados por amplitud.
Como dije, sé cómo escribir algo como esto yo mismo. Solo estoy preguntando si hay una función o paquete preexistente que se sabe que funciona bien.
Actualización:
I translated a MATLAB script y funciona bastante bien para el caso 1-D, pero podría ser mejor.
actualización Actualizado:
sixtenbe created a better version para el caso 1-D.
@endolith ¿Tiene el archivo MATLAB original que ha traducido a python para esto? ¡Gracias! – Spacey
@Mohammad: http://billauer.co.il/peakdet.html https://gist.github.com/250860#file_peakdet.m – endolith
¿Qué pasa con esto: http://docs.scipy.org/doc/scipy /reference/generated/scipy.signal.find_peaks_cwt.html – dashesy