短时傅里叶变换程序,MATLAB
1个回答

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 %添加网格线