Лучший алгоритм для фильтрации шума из 16-битной волны PCM?

Я произвел FFT из волны PCM. Каков наилучший способ отфильтровать шум?

Спасибо за ваше время и ответы, дк


pcm
person dakira    schedule 18.01.2011    source источник
comment
Я получаю шум от микрофона моего телефона. Я не уверен, откуда он берется, но его много. Прямо сейчас я фильтрую что-нибудь от 100 Гц до 600 Гц. Мне всегда нравится пытаться во всем разобраться самостоятельно, но я должен признать, что нашел несколько замечательных примеров на странице code.google.com/p/libgdx/source/browse/trunk/gdx/src/com/ .   -  person dakira    schedule 20.01.2011


Ответы (3)


Очень широкий и очень технический вопрос. Быстрый и грязный способ избавиться от шипения — избавиться от высоких частот (фильтр нижних частот).

person anon    schedule 18.01.2011
comment
... Или, если вы говорите о линейном шуме, может быть, режекторный фильтр на частоте 50-60 Гц. - person anon; 18.01.2011
comment
Спасибо за отзыв. Посмотрим на эти техники. - person dakira; 18.01.2011

Если шум шипит, и вам не нужна линейная фаза, а машина использует программирование на 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;

person Brent Fisher    schedule 28.04.2014

Шум – это в основном стационарные спектральные составляющие сигнала. Надеюсь, у вас есть речь или музыка в качестве желаемого сигнала. Вам нужно вычесть спектры шума из исходных спектров.

Для типичного подавления шума требуется модуль VAD (обнаружение голосовой активности). Надеюсь, ваш БПФ оконный и перекрывается, если нет, сделайте это. Одним из более простых методов подавления шума является использование минимальной статистики, как описано Райнером Мартином. Алгоритм отслеживает спектральные минимумы в каждой полосе частот без какого-либо различия между речевой активностью и речевой паузой. Путем минимизации критерия условной среднеквадратической ошибки оценивания на каждом временном шаге получен оптимальный параметр сглаживания для рекурсивного сглаживания спектральной плотности мощности зашумленного речевого сигнала. Подробная информация находится на http://www.ind.rwth-aachen.de/fileadmin/publications/martin01c.pdf «Оценка спектральной плотности мощности шума на основе оптимального сглаживания и минимальной статистики»

В то же время вы можете использовать аудиоредактор Audacity http://audacity.sourceforge.net/about/ чтобы проверить, можно ли убрать этот шум. Он имеет функцию подавления шума в меню «Эффекты».

person Community    schedule 04.03.2014