is there a way to obtain peak width after peak detection ?

31 vues (au cours des 30 derniers jours)
LO le 28 Mai 2019
Commenté : Star Strider le 29 Juin 2023
I have used the function findpeaks to detect spikes in a signal
however I have initially used the halfprominence as width-reference
is there a way to obtain widths using half-height after such peak detection, having the peak timestamps and their amplitude values ?

Réponse acceptée

Star Strider
Star Strider le 28 Mai 2019
Not a stupid question at all.
You simply need to ask findpeaks to return them as outputs:
[pks,locs,widths,proms] = findpeaks(PeakSig,x);
See the documentation section on Peak Prominences (link) for an illustration and discussion. The ‘widths’ are defined as the full width at half of the maximum amplitude (FWHM).
  2 commentaires
LO le 28 Mai 2019
thanks, I should have probably posted at the beginning the command I was using.
I know you get them as outputs. I was just wondering whether the width values (in heights) can be calculated from those values obtained using half prominence ([pks,locs,widths,proms])
or whether a new peak detection has to be made using half height.
I guess this now is the stupid question :)
Star Strider
Star Strider le 28 Mai 2019
I am not certain what you are asking.
The ‘height’ (and related ‘width’) and ‘prominence’ values are different, and only loosely related, at least as I read the documentation. The Prominence (link) property seems difficult to define. I would just use the FWHM value to characterise the peaks.
In other applications, I have used both ‘widths’ and ‘proms’ to select particular peaks, defining a desired peak by ‘(width > wv) & (prom > pv)’, where ‘wv’ and ‘pv’ were values determined elsewhere in the code. Perhaps you can combine them that way.

Connectez-vous pour commenter.

Plus de réponses (2)

Adam Danz
Adam Danz le 28 Mai 2019
Modifié(e) : Adam Danz le 28 Mai 2019
Use the "halfheight" width reference. There's an example here:
[pks,locs,w,p] = findpeaks(PeakSig,x,'Annotate','extents','WidthReference','halfheight')
  5 commentaires
Carlos le 29 Juin 2023
Thank you so much
Star Strider
Star Strider le 29 Juin 2023
My pleasure!

Connectez-vous pour commenter.

LO le 28 Mai 2019
I know that, thanks.
what I wanted to know is whether one could get those values without doing the peak detection again
but I guess there is no way. stupid question most likely


Community Treasure Hunt

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

Start Hunting!

Translated by