Peak detection not detecting any peaks

10 次查看(过去 30 天)
isra
isra 2017-5-22
评论: isra 2017-5-26
I'm trying to find peaks in an ECG signal, I normalized it and tried to detect the peaks above multiple thresholds, but it seams that it only detects low peaks and not high peaks. Here is a picture of a sample signal window with the threshold set to 0.6
and here is it with the threshold set to 0.2
It seems like the highest threshold that I can put is 0.2, anything above is not detectable. Here is my findpeaks call:
[~,locs] = findpeaks(v,'MinPeakHeight',resp2);
where resp2 is the threshold (0-1) values. When no peaks are detected, I get the following warning:
if true
Warning: Invalid MinPeakHeight. There are no data points greater than MinPeakHeight.
> In findpeaks>removePeaksBelowMinPeakHeight (line 373)
In findpeaks (line 139)
In autodetection3 (line 39)
end
Thanks

回答(1 个)

David Ding
David Ding 2017-5-25
Hi Isra,
Please check the raw data to ensure that the peaks near 1 is actually present in the data series. If so, you may try to have "findpeaks" detect these points by calling:
findpeaks(v, 'Threshold', 0.5);
This will only detect the highest points as they are at least 0.5 above their neighboring samples.
Thanks,
David
  1 个评论
isra
isra 2017-5-26
Hi david I've checked the data, and I already normalize every segment of data before applying peak detection on it. I found peaks at 0.9 amplitude but for some reason they are not detected. I also tried what you suggested and I got no peaks detected even with very low thresholds. Here is how I called the function.
[Pks,locs]= findpeaks(v, 'threshold', 0.5)

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by