Сглаживающий фильтр

Применяется для усреднения или сглаживания входного сигнала. При обработке звука используется для устранения скачков при изменении управляющих сигналов. Например, при повороте цифровой ручки громкости, значение усиления изменяется скачкообразно, что приводит к щелчкам/треску в записи. Для устранения такого дефекта достаточно сгладить управляющий сигнал.

Разностное уравнения, описывающее сглаживающий преобразователь:

y(n)=(1−α)∙x(n)+α∙y(n−1), 0<α<1

Для вычисления этого преобразователя необходимо сохранять значение выходного сигнала с предыдущего шага вычисления.

Есть два подхода к выбору коэффициента α. Первый — рассматривать преобразователь, как низкочастотный фильтр. Коэффициент α выбирается исходя из частоты дискретизации Fs (скорость поступления входных отсчетов) и от желаемой частоты среза Fc, где мощность сигнала (квадрат значений сигнала) ослабится в два раза.

Ослабление мощности сигнала в два раза по логарифмической шкале составит 10∙log(0.5)=−3Дб, а значения самого сигнала уменьшатся на 20∙log(0.5)=−6Дб по логарифмической шкале.

Например, задаем частоту дискретизации 44100Гц и частоту среза 50Гц. По формуле вычисляем коэффициенты
Разностное уравнения, описывающее сглаживающий фильтр с заданными параметрами:

y(n)=0.9929∙x(n)+0.0071∙y(n−1)

Получим импульсную характеристику, подав единичный отсчет на преобразователь. Задаем количество отсчетов — 1024, обнуляем все входные отсчеты кроме первого и получаем отклик системы, состоящий из 1024 отсчетов.

Далее вычисляем частотную характеристику с помощью дискретного преобразования Фурье.

Отображаем частоты в диапазоне от 0 до 4∙Fc. На нулевой частоте амплитуда единица, что означает отсутствие ослабления на низких частотах. На частоте 50Гц ослабление −3Дб

Второй подход рассматривать преобразователь во временной области. Постоянная времени (time constant) – это время, за которое переходная функция достигнет 63% от конечного значения. Постоянная времени связана
с частотой среза:

Рассчитаем постоянную времени для нашего примера. По формуле получается — 0.00318 сек. Получим переходную характеристику, подав все единицы на преобразователь. Задаем количество отсчетов — 1024, все входные отсчеты устанавливаем в единицу и получаем отклик системы, состоящий из 1024 отсчетов.
Рекомендованная литература

3 comments:

  1. Экспоненциально взвешенное скользящее среднее
    http://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%BE%D0%BB%D1%8C%D0%B7%D1%8F%D1%89%D0%B0%D1%8F_%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D1%8F%D1%8F
    --
    y(n)=(1−α)∙x(n) + α∙y(n−1), 0<α<1

    ReplyDelete
  2. Спасибо, исправил. Графики верные, они считались без ошибки.

    ReplyDelete
  3. A fascinating discussion is definitely worth comment. I think that you should publish more on this issue, it might not be a taboo subject but generally people do not discuss these subjects. To the next! Cheers!!

    ReplyDelete