Я произвел FFT из волны PCM. Каков наилучший способ отфильтровать шум?
Спасибо за ваше время и ответы, дк
Я произвел FFT из волны PCM. Каков наилучший способ отфильтровать шум?
Спасибо за ваше время и ответы, дк
Очень широкий и очень технический вопрос. Быстрый и грязный способ избавиться от шипения — избавиться от высоких частот (фильтр нижних частот).
Если шум шипит, и вам не нужна линейная фаза, а машина использует программирование на C, то быстрый и грязный фильтр нижних частот может быть таким...
signed short lowpass(signed short input)
{
static signed short last_sample=0;
signed short retvalue=(input + (last_sample * 7)) >> 3;
last_sample=retvalue;
return retvalue;
}
Если шум представляет собой гул электросети/сети, вы можете задержать звук на 735 семплов со скоростью 44 100 семплов в секунду (для мощности 60 герц) и вернуть delayed_sample-input;
Шум – это в основном стационарные спектральные составляющие сигнала. Надеюсь, у вас есть речь или музыка в качестве желаемого сигнала. Вам нужно вычесть спектры шума из исходных спектров.
Для типичного подавления шума требуется модуль VAD (обнаружение голосовой активности). Надеюсь, ваш БПФ оконный и перекрывается, если нет, сделайте это. Одним из более простых методов подавления шума является использование минимальной статистики, как описано Райнером Мартином. Алгоритм отслеживает спектральные минимумы в каждой полосе частот без какого-либо различия между речевой активностью и речевой паузой. Путем минимизации критерия условной среднеквадратической ошибки оценивания на каждом временном шаге получен оптимальный параметр сглаживания для рекурсивного сглаживания спектральной плотности мощности зашумленного речевого сигнала. Подробная информация находится на http://www.ind.rwth-aachen.de/fileadmin/publications/martin01c.pdf «Оценка спектральной плотности мощности шума на основе оптимального сглаживания и минимальной статистики»
В то же время вы можете использовать аудиоредактор Audacity http://audacity.sourceforge.net/about/ чтобы проверить, можно ли убрать этот шум. Он имеет функцию подавления шума в меню «Эффекты».