findchangepts не отменяет некоторые изменения

Я пишу код, который принимает сигнал от акселерометра, и я использую алгоритм TVD для шумоподавления сигнала. Как мы видим на следующем графике, мне удалось это сделать:

шумодав

Но я хочу обнаружить пики, и я думаю, что я мог бы использовать findchangepts функция в MATLAB, но когда я ее запускаю, у меня есть следующее:

Запуск функции findchangepts

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

1 ответ

Мне удается сделать это с помощью функции findpeaks следующим образом:

[pks, locs] = findpeaks(x,'MinPeakProminence',0.25*max(x),'MinPeakDistance',50);

и наличие x, проходящего через серию фильтров огибающей и фильтров нижних частот, как:

[yupper,ylower] = envelope(x)

Надеюсь, это будет полезно для кого-то

Другие вопросы по тегам