how to find duration of peak; starting and ending points

41 次查看(过去 30 天)
I've used findpeaks to isolate the largest peak in my signal. I wanted some help in finding the duration of the peak aka the starting and ending points of this peak, so that I could calculate area under curve? Right now Im having to visually inspect and pick arbitrary points to define this start and end points.

采纳的回答

Star Strider
Star Strider 2020-2-25
Experiment with ths ischange function, and if you have the Signal Processing Toolbox, the findchangepts function.
  7 个评论
Raheema Al Karim Damani
Thank you your advice was helpful. The statistics arguments is really helpful in the findchangepts functions.

请先登录,再进行评论。

更多回答(3 个)

Sindar
Sindar 2020-2-25
widths are an optional output from findpeaks:
[pks,locs,widths,~] = findpeaks(data);
  2 个评论
Sindar
Sindar 2020-2-25
Alternatively, you could potentially define the starting and ending points using findpeaks on the negative of your data.
Raheema Al Karim Damani
编辑:Raheema Al Karim Damani 2020-2-25
I believe that it finds the widths from the half prominence or half height, which would not accurately characterize the starting and ending points.
Also, I would like to find the index (x values) of the peak based on start and end points

请先登录,再进行评论。


Alexis
Alexis 2021-7-9
编辑:Alexis 2021-7-9
I had a similar issue, although I was working with biological signals. You could try the function I wrote to solve my problem: https://uk.mathworks.com/matlabcentral/fileexchange/81066-breathtimes?s_tid=srchtitle

Lam Ha
Lam Ha 2023-6-9
Hi, I'm doing my research and meet the same problems as you. Have you calculated the peak duration? Can you share to me how to calculate the peak duration? Thank you so much in advance

标签

Community Treasure Hunt

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

Start Hunting!

Translated by