在音频文件向量的频带中寻找能量

时间:2014-01-21 18:59:03

标签: matlab

我有一个音频文件,我将其导入到我的Matlab工作区中,现在将其作为矢量。

我已经将矢量分解为100毫秒长的窗口。

      window_length = fs*0.1;

如何在某些频段中找到能量。 0-1000 Hz,1000-2000 Hz等??

我尝试过使用以下过滤器:

    % Create Filter
[N,Wc]=ellipord([450 1050]/(fs/2),[500 1000]/(fs/2),1,40);
[a,b]=ellip(N,1,40,Wc);

window_filtered=filter(a,b,window);

 % Find Filterend  Energy
Energy_band_X_X(position) =diag(window_filtered*window_filtered');   

然而,我的结果太大,没有任何意义。

谢谢!

1 个答案:

答案 0 :(得分:0)

我建议使用简单的FFT来查找整个频谱,然后在您感兴趣的频段中找到能量。您还应该规范化输入数据。例如,您可以将数据除以最大值,使其在0和1之间。如果您处理16位或8位整数值音频样本,那么您的能量值将会很高。