%% Spectrogram with Threshold
% Generate a chirp signal sampled for 2 seconds at 1 kHz. Specify the chirp so that its frequency is initially 100 Hz and increases to 200 Hz after 1 second.

Fs = 1000;
t = 0:1/Fs:2;
y = chirp(t,100,1,200,'quadratic');

%
% Estimate the time-dependent power spectral density (PSD) of the signal.
% Divide the signal into sections of length 128, windowed with a Kaiser window with shape parameter \beta=18.
% Specify 120 samples of overlap between adjoining sections.
% Evaluate the spectrum at \lfloor128/2\rfloor=65 frequencies and \lfloor({\tt length(x)}-120)/(128-120)\rfloor=235 time bins.
% Output the frequency and time of the center of gravity of each PSD estimate. Set to zero those elements of the PSD smaller than -30 dB.

[~,~,~,pxx,fc,tc] = spectrogram(y,kaiser(128,18),120,128,Fs, ...
    'MinThreshold',-30);

%
% Plot the nonzero elements as functions of the center-of-gravity frequencies and times.

plot(tc(pxx>0),fc(pxx>0),'.')

% Copyright 2015 The MathWorks, Inc.