2014-01-21 2 views
0

У меня есть аудиофайл, который я импортировал в свое рабочее пространство Matlab и получил его как вектор.Поиск энергии в полосах частот файла аудиофайла

Я разбил вектор на окна длиной 100 мс.

 window_length = fs*0.1; 

Как найти энергию в определенных частотных диапазонах. 0-1000 Гц, 1000-2000 Гц и т.д.

Я пытался использовать ниже фильтр:

% 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 и 1. Если вы имеете дело с 16-битными или 8-битными целыми оцененными аудио-образцами, то ваше энергетическое значение будет высоким.

Смежные вопросы