Алгоритм поиска пика для Python / SciPy

Я могу написать что-то сам, найдя пересечение нуля первой производной или чего-то еще, но это кажется достаточно общей функцией, которая будет включена в стандартные библиотеки. Кто-нибудь знает об этом?

Мое конкретное приложение - это двумерный массив, но обычно он используется для поиска пиков в БПФ и т. Д.

В частности, в таких проблемах есть много сильных пиков, а затем много меньших »пики» которые просто вызваны шумом, который следует игнорировать. Это всего лишь примеры; не мои фактические данные:

1-мерные пики:

2-мерные пики:

Алгоритм обнаружения пиков найдет местоположение этих пиков (а не только их значения) и в идеале найдет истинный пик между выборками, а не только индекс с максимальным значением, возможно, используяквадратичная интерполяция или что-то.

Как правило, вы заботитесь только о нескольких сильных пиках, поэтому онилибо выбрать, потому что онивыше определенного порога, или потому что онипервый н пики упорядоченного списка, ранжированные по амплитуде.

Как я уже сказал, я знаю, как написать что-то подобное сам. Я'я просто спрашиваю, есть лиs уже существующая функция или пакет, который 'Известно, что хорошо работать.

Обновление: Я

перевел скрипт MATLAB и это работает прилично для 1-D случая, но могло бы быть лучше.

Обновленное обновление:

sixtenbeсоздал лучшую версию для одномерного случая.

Ответы на вопрос(8)

Ваш ответ на вопрос