我有一个音频文件,我将其导入到我的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');
然而,我的结果太大,没有任何意义。
谢谢!
答案 0 :(得分:0)
我建议使用简单的FFT来查找整个频谱,然后在您感兴趣的频段中找到能量。您还应该规范化输入数据。例如,您可以将数据除以最大值,使其在0和1之间。如果您处理16位或8位整数值音频样本,那么您的能量值将会很高。