Spectrogram - How to divide signal ?

12 ビュー (過去 30 日間)
RuiQi
RuiQi 2016 年 4 月 8 日
編集済み: Rick Rosson 2016 年 4 月 8 日
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);

採用された回答

Rick Rosson
Rick Rosson 2016 年 4 月 8 日
編集済み: Rick Rosson 2016 年 4 月 8 日
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 件)

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by