www.gusucode.com > signal 案例源码程序 matlab代码 > signal/DeterminePeakWidthsExample.m
%% Determine Peak Widths % Create a signal that consists of a sum of bell curves. Specify the location, % height, and width of each curve. 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 %% % Measure the widths of the peaks using the half prominence as reference. findpeaks(PeakSig,x,'Annotate','extents') %% % Measure the widths again, this time using the half height as reference. findpeaks(PeakSig,x,'Annotate','extents','WidthReference','halfheight') title('Signal Peak Widths')