is there a way to obtain peak width after peak detection ?
15 次查看(过去 30 天)
显示 更早的评论
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 ?
0 个评论
采纳的回答
Star Strider
2019-5-28
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 个评论
Star Strider
2019-5-28
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.
更多回答(2 个)
Adam Danz
2019-5-28
编辑:Adam Danz
2019-5-28
Use the "halfheight" width reference. There's an example here: https://www.mathworks.com/help/signal/ref/findpeaks.html#buhd6xj
[pks,locs,w,p] = findpeaks(PeakSig,x,'Annotate','extents','WidthReference','halfheight')
5 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!