其实Matlab自带了时频分析的函数specgram,这个函数就是相当于一个短时傅里叶转换功能,就不用傅里叶转换了。FFT只计算出1帧频谱,而specgram是计算出多帧频谱,如果信号a较长,当然也计算了更长的时间范围。specgram的调用格式是:委婉
specgram(x,nfft,fs,window,noverlap);
[b,f,t]=specgram(data,nfft,Fs,window,numoverlap);孤独患者吉他谱
imagesc(t,f,20*log10(abs(b))), axis xy, colormap(jet); % 画时频图
其中:空间思维
% nfft是fft的长度,越长的话,频域分辨率越高,但是,对于语音这种时变信号,不能过长,一般采样率16k或者8k的取1024或者512,要看采样率的高低。
植树节手抄报内容文字
% fs就是采样率,不多说了。
% window是指窗的长度,一般和nfft相同即可。
% numoverlap是指nfft减去步长,越大越好,但运算量越大。一般取nfft的3/4效果就比较好了。
overlap是帧重叠的长度,要<= 1/2 * nff, 取1/4 * nff 就可以了。
% 举例:
% b= specgram(a,512,8000,512,384);
% b是一个矩阵,复数的,画图的时候需要取绝对值!
用spectrogram和specgram小孩小名两函数得到的时频图为啥不一样???
两个命令分别如下:
h=window('hamming',512);[B,f,t]=specgram(x,512,Fs,h,400);figure;imagesc(t,f,abs(B));axis('xy');能出来图
figure(2);spectrogram(x,512,400,512,44100,'yaxis');
前者得到的图根本看不清,后者得到的图颜色又太多,到底是哪条线反映正确的频率???????????????叫天不应
还有,那么多颜色,代表什么意思??陪伴的陪怎么写