Spectrogram - How to divide signal ?
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
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.
1 个评论
Rab Nawaz
2023-1-14
@Rick Rosson! Please let me know how can I get wavelet coefficients in the same manner i.e. by dividing the signal in 'N' number of segments and with or without overlap. Alternatively, is there any way to get wavelet coefficients from this spectrogram function.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Time-Frequency Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!