如何使用MATLAB将wav文件划分为帧

时间:2013-07-25 14:54:21

标签: matlab

我有一个.wav文件,我需要对它执行STFT。说我不知道​​文件的长度。如何将其分解为更小的帧并执行STFT?

1 个答案:

答案 0 :(得分:0)

自从我上次研究MatLab以来已经有很长一段时间了,但我认为一般的算法应该是:

  1. 取输入信号。
  2. 逐点乘以窗函数(比如'n'样本的矩形)。这意味着您现在将拥有一个'n'样本框架。
  3. 对此帧进行FFT。
  4. 按'm'样本移动窗口(m = shift,通常约为'n'的25%)。做第2步和第3步。
  5. 如果达到信号结束,请采集您获得的信号的许多样本,并用零填充其余信号。做第2步和第3步。
  6. 您现在有一个3D图 - 频率,幅度和时间。绘制以获得STFT。
  7. 旁注:MatLab中没有STFT功能吗?你检查过了吗?