Создайте сигнал, который состоит из суммы кривых колокола. Укажите местоположение, высоту и ширину каждой кривой.
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(x,Gauss,'--',x,PeakSig)
grid
Измерьте ширины peaks, используя половинную известность как ссылку.
findpeaks(PeakSig,x,'Annotate','extents')
Еще раз измерьте ширину, на этот раз используя половину высоты в качестве опорной.
findpeaks(PeakSig,x,'Annotate','extents','WidthReference','halfheight') title('Signal Peak Widths')