【短时傅里叶变换】基于线性正则变换与短时傅里叶变换联合的时频分析方法

发布时间:2021-04-03 15:12:03

最近在用短时傅里叶变换做项目,请问,怎么得到频率与时间的变化图?下面是我画的程序:%% STFTSTFT = fft(y);%% Powersepctrumd = abs(STFT(1:windowlength/2,:)).^2;Powerspectrum = 2/windowlength*d;%tune time and frequency for plottingt = (1:size(y,2))*windowlength/Fs;frequency = (0:windowlength/2-1)/windowlength*Fs;%% Plot the fast fourier by windowingif grfigure,surf(t,frequency,Powerspectrum);shading interp;xlabel('time');ylabel('frequency');zlabel('Power spectrum');end怎么得到频率与时间的变化图?

网友回答

【答案】 a=wavread('jiasiqi.wav'); %将音频信号jiasiqi.wav读入
  subplot(2,1,1), %分配画布,一幅图上共两个图,这是第一个
  plot(a);title('original signal'); %画出原始信号,即前面这个音频信号的原始波形
  grid %添加网格线
  N=256; %设置短时傅里叶变换的长度,同时也是汉明窗的长度
  h=hamming(N); %设置汉明窗
  for m=1:N %用汉明窗截取信号,长度为N,主要是为了减少截断引起的栅栏效应等
  b(m)=a(m)*h(m)
  end
  y=20*log(abs(fft(b))) %做傅里叶变换,取其模值,即幅频特性,然后用分贝(dB)表示
  subplot(2,1,2) %分配画布,第二副图
  plot(y);title('短时谱'); %画出短时谱
  grid %添加网格线
  满意请采纳.
以上问题属网友观点,不代表本站立场,仅供参考!