MATLAB短时傅里叶变换STFT视频生成与分析
短时傅里叶变换(STFT)的时频能力在语音、音乐还有各种机械信号时,真的挺香的。MATLAB里的stft
函数用起来也不麻烦,配合个汉明窗、设置好参数,一行搞定。时频图用imagesc
或者specgram
画出来,效果一目了然。
有意思的是,你还能把每一帧的图像搞成视频,就像看信号“动”起来一样。生成视频这块,可以用VideoWriter
,配合帧保存,一下就能输出成 MP4。视频一跑起来,非平稳信号的变化规律看得清清楚楚,哪段频率强,哪段能量集中,一目了然。
用的时候注意下窗长和重叠率,这两个直接影响时频分辨率。窗太短频率看不清,太长又看不准时间变化,要平衡。语音我一般用 256 点窗,重叠 128,结果还不错。还有个pwelch
,如果你想要稳一点的功率谱估计,可以顺手加上。
,这套流程从数据导入、STFT 变换到可视化和视频生成,一整套下来不光能看清信号特性,还能用于教学演示。你要是搞音频、振动或者医学信号,强烈建议整一套练练手,蛮有成就感。
138.26MB
文件大小:
评论区