Find the max peak

조회 수: 30 (최근 30일)
Armindo
Armindo 2019년 1월 21일
편집: Armindo 2019년 1월 21일
Hi,
I need to determine the following peaks (red circles in the image attached) automatically.
For that I can make something like:
[~, Indx] = findpeaks(Sig,'MinPeakDistance',150);
However I have several signals and the time scale change as so the MinPeakDistance, which lead to the small peaks to be detected too. Is there any way to determine first the mean of the MinPeakDistance but only of the higher peaks and than use that mean to ensure that only the higher peaks are detected? Any other aproach is also welcom. I tryed several combinations with different options but always have problems.
Also note that the signal can start or end with a small or with a big peak.
Thanks.

답변 (2개)

Image Analyst
Image Analyst 2019년 1월 21일
Why not just mask out the things less than 2.5?
maskedSignal = Sig; % Initialize
maskedSignal(Sig < 2.5) = min(Sig);
[peakValues, indexesOfPeaks] = findpeaks(maskedSignal,'MinPeakDistance',150);

Armindo
Armindo 2019년 1월 21일
편집: Armindo 2019년 1월 21일
Thanks, but if the scale change how can I know the value to mask?

카테고리

Help CenterFile Exchange에서 Descriptive Statistics에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by