MATLAB Answers

Spectrogram - How to divide signal ?

42 views (last 30 days)
RuiQi
RuiQi on 8 Apr 2016
Edited: Rick Rosson on 8 Apr 2016
Hello
I have a signal 120 seconds long with sampling frequency 1KHz. How do I compute the spectrogram with 120 time segments ? Each segment 1000 samples. The code below gives me t = 136 not 120
segments = 120;
windowsize = 1000;
nfft = 1000;
[S,F,T,P] = spectrogram(data,windowsize,segments,nfft,Fs);

  0 Comments

Sign in to comment.

Accepted Answer

Rick Rosson
Rick Rosson on 8 Apr 2016
Edited: Rick Rosson on 8 Apr 2016
The third input argument of spectrogram expects the number of samples to overlap each window, not the number of segments. Please try:
winSize = 1000;
overlap = 0;
fftSize = winSize;
[S,F,T,P] = spectrogram(data,winSize,overlap,fftSize,Fs);
It is common practice, however, to set the overlap to half of the window size:
overlap = floor(winSize/2);
but it is not required if you don't want it.
HTH.

  0 Comments

Sign in to comment.

More Answers (0)

Sign in to answer this question.