Находящий пиковый алгоритм для Python/SciPy

Обратите внимание, что при вводе if ( exists $hash{ key } ) isn’t слишком много работы для Вас (начиная с которого я предпочитаю использовать, вопрос, представляющий интерес является действительно присутствием ключа, а не правдоподобием его значения), тогда можно использовать короткое и сладкое

@hash{@key} = ();
123
задан endolith 29 March 2016 в 18:41
поделиться

4 ответа

Я не думаю, что то, что вы ищете, предоставляется SciPy. В этой ситуации я бы написал код сам.

Сплайн-интерполяция и сглаживание из scipy.

3
ответ дан 24 November 2019 в 01:18
поделиться

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

1
ответ дан 24 November 2019 в 01:18
поделиться

Надежное обнаружение пиков в спектре было изучено довольно много, например, все работы по синусоидальному моделированию музыкальных / аудиосигналов в 80-х годах. Поищите в литературе «Синусоидальное моделирование».

Если ваши сигналы такие же чистые, как в примере, простое «дайте мне что-нибудь с амплитудой выше, чем N соседей» должно работать достаточно хорошо. Если у вас есть зашумленные сигналы, простой, но эффективный способ - посмотреть на ваши пики во времени, чтобы отследить их: вы затем обнаруживаете спектральные линии вместо спектральных пиков. IOW, вы вычисляете БПФ для скользящего окна вашего сигнала, чтобы получить набор спектра во времени (также называемый спектрограммой). Затем вы смотрите на эволюцию спектрального пика во времени (то есть в последовательных окнах).

6
ответ дан 24 November 2019 в 01:18
поделиться

Я рассматриваю аналогичную проблему, и я обнаружил, что некоторые из лучших ссылок взяты из химии (из пиков, найденных в данных масс-спектрометрии). Для подробного обзора алгоритмов поиска пиков прочтите и . Это один из лучших и ясных обзоров методов поиска пиков, с которыми мне приходилось сталкиваться. (Вейвлеты лучше всего подходят для поиска пиков такого рода в зашумленных данных.)

Похоже, ваши пики четко определены и не скрыты в шуме. В таком случае я Я рекомендую использовать плавные производные савтицкого-голая для поиска пиков (если вы просто дифференцируете данные выше, у вас будет масса ложных срабатываний). Это очень эффективный метод, и его довольно легко реализовать (вам нужен матричный класс с базовыми операциями). Если вы просто найдете пересечение нуля первой производной SG, я думаю, вы будете счастливы.

42
ответ дан 24 November 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: