calculate FWHM and area of multiple peak

31 views (last 30 days)
Namira on 28 Jul 2018
Commented: Star Strider on 29 Jul 2018
Hi, I have a graph that contains multiple peaks, I want to calculate the area of the peak and FWHM of each peak. I want to use the formula, Area = Height * FWHM.
In Matlab is there any default function to calculate FWHM and area. The curves are magnitude diagrams in the log scale. If I plot in linear scale the power of peak is near to zero. When I use the function to find peaks
[pks,locs,widths,proms] = findpeaks(x,y);
it gives 1×0 empty double row vector. Is it right way to calculate area from log scale graph? Any suggestions from anyone. Thank in advance.

Accepted Answer

Star Strider
Star Strider on 28 Jul 2018
‘... it gives 1×0 empty double row vector.’
That is most likely because the dependent variable vector (is this ‘y’ in your code?) must be the first argument to findpeaks (link).
Try this instead:
[pks,locs,widths,proms] = findpeaks(y,x);
or preferably, just return the indices of the peaks in the ‘locs’ output with:
[pks,locs,widths,proms] = findpeaks(y);
I find the indices easier to work with.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!