利用MATLAB实现wav文件的帧划分
我有一个.wav文件,需要对其执行STFT。说我不知道文件的长度。如何将其分解为更小的帧并执行STFT 我上次使用MatLab已经有很长时间了,但我认为通用算法应该是:利用MATLAB实现wav文件的帧划分,matlab,Matlab,我有一个.wav文件,需要对其执行STFT。说我不知道文件的长度。如何将其分解为更小的帧并执行STFT 我上次使用MatLab已经有很长时间了,但我认为通用算法应该是: 获取输入信号 使用窗口函数逐点相乘(例如“n”个样本的矩形)。这意味着您现在将拥有一个由“n”个样本组成的框架 对这帧进行FFT 通过“m”样本移动窗口(m=移位,通常约为“n”的25%)。执行步骤2和3 如果到达信号的末尾,则获取信号的任意多个样本,并用零填充其余样本。执行步骤2和3 现在您有了一个3D绘图-频率、振幅和时间。
旁注:MatLab中是否没有STFT函数?您查过了吗?好的,谢谢。我还在学习MATLAB,所以你能为第2步和第4步编写代码吗????真的很有帮助。。。。不,stft没有唯一的功能。顺便说一下,不管我的wav文件的长度如何,我可以采集1024个样本吗?你可以采集1024个样本。但要确保,如果到达文件的末尾,就需要用零填充剩余的样本。