MATLAB: Spectrogram plotting of Amplitude frequency vs. frame

3d plotspectrogramstft

Hi,
I used spectrogram matlab function in order to obtain a STFT as follows:
nfft=1024;
noverlap=nfft/2;
wnd= hamming(nfft,'periodic');
[Y, F, T, P] = spectrogram (y, wnd, noverlap, nfft, fs);
Now, I am trying to plot a 3D plot of frequency , amplitude for each frame I have. can anyone help please.
Thanks in advance

Best Answer

From the documentation for spectrogram:
spectrogram(...) plots the PSD estimate for each segment on a surface in a figure window. The plot is created using
surf(T,F,10*log10(abs(P)));
axis tight;
view(0,90);
So to get your 3D plot, simply comment out (or remove) the view(0,90) call, or change it to a different azimuth and elevation.