MATLAB: What is the meaning of “width” and “prominences” in findpeaks

findpeaks

It said that:
[pks,locs,w,p] = findpeaks(data) additionally returns the widths of the peaks as the vector w and the prominences of the peaks as the vector p.
w is the widths of the peaks as the vector w
I still unable to find out how they calculate the width.
In the example below:
x = linspace(0,1,1000);
Pos = [1 2 3 5 7 8]/10;
Hgt = [4 4 2 2 2 3];
Wdt = [3 8 4 3 4 6]/100;
for n = 1:length(Pos)
Gauss(n,:) = Hgt(n)*exp(-((x - Pos(n))/Wdt(n)).^2);
end
PeakSig = sum(Gauss);
Plot the individual curves and their sum
plot(x,Gauss,'--',x,PeakSig)
grid
findpeaks(PeakSig,x,'MinPeakProminence',2,'Annotate','extents','WidthReference','halfheight')
[pks,locs,w,p]= findpeaks(PeakSig,x,'MinPeakProminence', 2,'Annotate','extents','WidthReference','halfheight')
title('Signal Peak Widths')
w =
0.2352 0.1725
p =
4.8721 3.0028
Is the w is the width (half-height) and p is height as pointed in the plot?

Best Answer

Is the w is the width (half-height) and p is height as pointed in the plot?
Your interpretation of ‘p’ is correct. The value of ‘w’ returned depends on how you define 'WidthReference' (link). You can define it to be full width half maximum (FWHM) if you define it as 'halfheight'.