findchangepts не отменяет некоторые изменения
Я пишу код, который принимает сигнал от акселерометра, и я использую алгоритм TVD для шумоподавления сигнала. Как мы видим на следующем графике, мне удалось это сделать:
Но я хочу обнаружить пики, и я думаю, что я мог бы использовать findchangepts
функция в MATLAB, но когда я ее запускаю, у меня есть следующее:
Как мы видим, он не обнаруживает пиков. Кто-нибудь знает какие-либо настройки в функции или способ подавления шума внутри пика?
1 ответ
Мне удается сделать это с помощью функции findpeaks следующим образом:
[pks, locs] = findpeaks(x,'MinPeakProminence',0.25*max(x),'MinPeakDistance',50);
и наличие x, проходящего через серию фильтров огибающей и фильтров нижних частот, как:
[yupper,ylower] = envelope(x)
Надеюсь, это будет полезно для кого-то