您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页matlab用specgram画视频图

matlab用specgram画视频图

来源:意榕旅游网


其实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');

前者得到的图根本看不清,后者得到的图颜色又太多,到底是哪条线反映正确的频率??????????????? 还有,那么多颜色,代表什么意思??

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务