Main Content

ピーク幅の特定

ベル型曲線の和を構成する信号を作成します。各曲線の位置、高さ、幅を指定します。

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

プロミネンスの半分を基準として使用してピーク幅を測定します。

findpeaks(PeakSig,x,'Annotate','extents')

今度は基準として高さの半分を使用して幅を再測定します。

findpeaks(PeakSig,x,'Annotate','extents','WidthReference','halfheight')
title('Signal Peak Widths')