Я сам что-то могу написать, найдя нулевые пересечения первой производной или что-то в этом роде, но она кажется, что функция обычного достаточно для включения в стандартные библиотеки. Кто-нибудь знает об одном?
Мое конкретное приложение представляет собой 2D-массив, но обычно он будет использоваться для нахождения пиков в БПФ и т.д.
В частности, в этих проблемах есть несколько сильных пиков, а затем множество небольших "пиков", которые просто вызваны шумом, который следует игнорировать. Это всего лишь примеры; не мои фактические данные:
1-мерные пики:
Двумерные пики:
Алгоритм поиска пика найдет расположение этих пиков (а не только их значения) и идеально найдет истинный пик между образцами, а не только индекс с максимальным значением, возможно, используя квадратичная интерполяция или что-то в этом роде.
Обычно вам нужно только немного сильных пиков, поэтому они либо будут выбраны, потому что они превышают определенный порог, либо потому, что они являются первыми n пиками упорядоченного списка, оцененных по амплитуде.
Как я уже сказал, я знаю, как писать что-то подобное сам. Я просто спрашиваю, существует ли уже существовавшая функция или пакет, который хорошо работает.
Update:
I перевел MATLAB script и работает прилично для 1-D случая, но может быть лучше.
Обновлено обновление:
sixtenbe создал лучшую версию для 1-D случая.