Фильтр для обработки аудиосигнала? - PullRequest
2 голосов
/ 23 июня 2011

Я хотел бы спросить, что является хорошим фильтром для обработки аудиосигнала, особенно при обработке начала записи?

В частности, мне нужен фильтр, который делает пики более четкими при сглаживании других, что-то вродеизображение ниже:

enter image description here

Я не уверен, нужны ли мне фильтры низких / высоких частот, потому что я знаю, что эти фильтры работают в частотной области, и я особенно хочуработать с временной областью.Я работаю только с монофоническими сигналами, записанными в 16-битном монофоническом формате .WAV 44,1 кГц.

Спасибо!

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Вместо фильтра для обработки аудио, которую вы хотите, вы можете попробовать использовать AGC (автоматическую регулировку усиления) в некоторой форме, чтобы нормализовать амплитуду огибающей сигнала, с постоянной времени где-то в окрестности 1 импульса.

Но для точного обнаружения начала заметки могут потребоваться более совершенные методы обработки сигналов и сопоставления с образцом. Похоже, есть более чем несколько исследовательских работ по этой теме.

1 голос
/ 23 июня 2011

Я бы предложил нелинейный подход - эффективно вы хотите сделать обнаружение огибающей с короткой постоянной времени.

y_1 = 0;                       // init y_1 = previous value of output signal, y
loop
  y = abs(x);                  // rectify input signal
  y = k * y + (1.0 - k) * y_1; // apply single pole recursive low pass filter
  y_1 = y;                     // save output value for next iteration
end

Выбор k (NB: 0.0 < k < 1.0) является сложной частью иможет потребовать некоторых экспериментов.Если k слишком мало, то у вас будет большая постоянная времени, и это может привести к слишком большой задержке в вашем обнаружении начала.Если k слишком велико, тогда постоянная времени может быть слишком маленькой, и вы можете получить ложные срабатывания.(В последнем случае вы можете улучшить результаты, отклонив начало, которое находится в заданном минимальном интервале времени от предыдущего «реального» начала (например, 10 мс).) Начните, скажем, с k = 0,1, а затем, возможно, попробуйтеуменьшая его, пока задержка не станет неприемлемой.

...