Why do I receive an error when I use the SPECTROGRAM

Technical Source
2 min readFeb 22, 2021

Why do I receive an error when I use the SPECTROGRAM function if the length of the window is equal to the signal length in Signal Processing Toolbox 6.13 (R2010a)?

I try to plot the spectrogram of a signal using the following code (data file attached):

load emg;x = emg;lenx = length(x);window = ones(1, lenx);nfft = lenx/8; fs = 1000;noverlap = 32;F = [1:1:fs/2];spectrogram(x,window,noverlap,F,fs)

The error I receive is the following:

??? Error using ==> surf at 78

Z must be a matrix, not a scalar or vector.

Error in ==> spectrogram>displayspectrogram at 250

hndl = surf(args{:},’EdgeColor’,’none’);

Error in ==> spectrogram at 184 displayspectrogram(t,f,Pxx,isFsnormalized,faxisloc);

ANSWER

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

The ability to have the length of the signal to be the same as the length of the window is not available for the SPECTROGRAM function in Signal Processing Toolbox 6.13 (R2010a).

As a workaround, use the IMAGESC function as follows:

T = 0:0.001:2;X = chirp(T,100,1,200,'q');[S, F, T, P] = spectrogram(X,128,120,128,1E3); imagesc(F, T(1), 10*log10(P(:,1).')); axis xy; axis tight; xlabel('Frequency (Hz)');ylabel('Time');title('Quadratic Chirp');

--

--

Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.