Редактировать: На самом деле это не неожиданное поведение, но мне все еще нужно решение.findpeaks compares each element of data to its neighboring values.
У меня есть данные, которые содержат пики, которые я определяю с помощью функции findpeaks из панели инструментов обработки сигналов.Иногда кажется, что функция не может правильно определять пики, когда у меня есть одно и то же значение дважды рядом друг с другом.Это происходит очень редко в моих данных, но вот пример, иллюстрирующий мою проблему:
>> values
values =
-0.0324
-0.0371
-0.0393
-0.0387
-0.0331
-0.0280
-0.0216
-0.0134
-0.0011
0.0098
0.0217
0.0352
0.0467
0.0548
0.0639
0.0740
0.0813
0.0858 <-- here should be another peak
0.0858 <--
0.0812
0.0719
0.0600
0.0473
0.0353
0.0239
0.0151
0.0083
0.0034
-0.0001
-0.0025
-0.0043
-0.0057
-0.0048
-0.0038
-0.0026
0.0007
0.0043
0.0062
0.0083
0.0106
0.0111
0.0116
0.0102
0.0089
0.0057
0.0025
-0.0025
-0.0056
Теперь функция findpeaks находит только один пик:
>> [pks loc] = findpeaks(values)
pks =
0.0116
loc =
42
Если я строю данныеСтановится очевидным, что findpeaks пропускает один из пиков в местоположении 18/19
, поскольку они оба имеют значение 0.08579
.
Каков наилучший способ найти этинедостающие пики?