怎样在MATLAB中做短时傅立叶变换?

怎样在MATLAB中做短时傅立叶变换?,第1张

matlab有STFT的自带函数,你可以help下spectrogram,里面有例程。下面这个小程序就是一个STFT的小示例:

T = 0:0.001:2

X = chirp(T,100,1,200,'q')

spectrogram(X,128,120,128,1E3)

title('Quadratic Chirp')

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11305101.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存