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)?

조회 수: 2 (최근 30일)
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);

채택된 답변

MathWorks Support Team
MathWorks Support Team 2013년 10월 18일
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');

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spectral Measurements에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

제품


릴리스

R2010a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by