2016-08-07 3 views
1

Я использовал функцию (findpeaks) в Matlab, чтобы найти местоположения и значение пиков в сигнале.Измерение расстояния между пиками

findpeaks(X_Segments{1}); 

X_Segments содержит данные, здесь приведен пример рисунка, который я получил

Find All Peaks in the signal

Как показано на рисунке, некоторые из пиков очень близки друг к другу, поэтому я 'd, чтобы отфильтровать эти пики (удалить их), чтобы иметь пики в сигнале через равные промежутки времени.

ответ

1

Если вы передадите параметр MinPeakDistance в функцию findpeaks, вы можете установить минимальное расстояние между пиками. В вашем случае:

findpeaks(X_Segments{1}, 'MinPeakDistance', 10); 

В качестве альтернативы, вы можете найти MinPeakProminence или threshold параметры полезны. См. Примеры here.

+1

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

+1

Посмотрите на получение 'findpeaks', чтобы вернуть индексы пиков. Используйте их, чтобы определить фактические значения времени ваших пиков. Затем вы можете использовать функции 'diff' и' mean', чтобы найти среднее расстояние. Однако, глядя на ваши данные, пики не кажутся очень равномерными. Если вы боретесь, попробуйте задать отдельный вопрос (раздел комментариев на самом деле не место, чтобы задавать новые вопросы!) – RPM

+0

большое вам спасибо –

Смежные вопросы