2016-08-07 128 views
1

我已經在Matlab中使用了(findpeaks)函數,以便找到信號中峯的位置和值。峯之間的測量距離

findpeaks(X_Segments{1}); 

X_Segments包含的數據,這裏是我得到

Find All Peaks in the signal

如圖所示的數字樣本,一些山峯都非常接近對方,因此,我'd過濾掉這些峯值(去除它們),以便定期在信號中產生峯值。

回答

1

如果您將參數MinPeakDistance傳遞到findpeaks函數中,您可以設置峯值之間的最小距離。你的情況:

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

或者,你可能會發現MinPeakProminencethreshold參數有用。請參閱示例here

+1

非常感謝你的隊友,如果你不介意我問你另一個問題,我想測量連續峯值之間的時間(以毫秒爲單位),然後計算平均值。 –

+1

看看'findpeaks'返回峯值的指標。使用這些來確定峯值的實際時間值。然後可以使用'diff'和'mean'函數來查找平均間距。儘管如此,看起來你的數據看起來並不是很平均。如果你正在努力嘗試問一個單獨的問題(評論部分不是真的提出新問題的地方!) – RPM

+0

非常感謝你 –