在matlab中对音频文件的样本进行fft

时间:2013-04-23 18:26:08

标签: matlab audio signal-processing fft

我正在尝试从声音文件中提取信息,以便在我正在使用的视频分类算法中使用它。

我的问题是我不知道如何在Matlab中完全使用音频文件。

以下是我需要完成的事情:

  • 打开音频文件并获取采样率/频率
  • 我需要在2秒的窗口上工作,所以我必须循环文件并将每2秒作为一个窗口,然后在每个窗口上执行ftt(快速傅立叶变换)。

之后轮到我使用这些值来做我想做的事了

任何帮助将不胜感激

感谢。

1 个答案:

答案 0 :(得分:3)

以下代码可能只会给你一些想法。您可能需要确定另一个fft大小,像汉明等的窗口函数。

要阅读wav文件:

[data, Fs] = wavread('path.wav');

分裂到2秒的窗口并获得fft:

frameFFT = [];
timeStep = Fs*2;
for i=1:timeStep:length(data)-timeStep
   frameFFT = [frameFFT; fft(data(i:i+timeStep-1),1024)];
end