Фильтр с конечной импульсной характеристикой

01-08-2023

Фильтр с конечной импульсной характеристикой (Нерекурсивный фильтр, КИХ-фильтр) или FIR-фильтр (FIR сокр. от finite impulse response — конечная импульсная характеристика) — один из видов линейных цифровых фильтров, характерной особенностью которого является ограниченность по времени его импульсной характеристики (с какого-то момента времени она становится точно равной нулю). Такой фильтр называют ещё нерекурсивным из-за отсутствия обратной связи. Знаменатель передаточной функции такого фильтра — некая константа.

Содержание

Динамические характеристики

Разностное уравнение, описывающее связь между входным и выходным сигналами фильтра: где  — порядок фильтра,  — входной сигнал,  — выходной сигнал, а  — коэффициенты фильтра. Иными словами, значение любого отсчета выходного сигнала определяется суммой масштабированных значений предыдущих отсчетов. Можно сказать иначе: значение выхода фильтра в любой момент времени есть значение отклика на мгновенное значение входа и сумма всех постепенно затухающих откликов предыдущих отсчетов сигнала, которые всё ещё оказывают влияние на выход (после -отсчетов импульсная переходная функция становится равной нулю, как уже было сказано, поэтому все члены после -го тоже станут равными нулю). Запишем предыдущее уравнение в более ёмком виде:

Для того, чтобы найти ядро фильтра положим

где  — дельта-функция. Тогда импульсная характеристика КИХ-фильтра может быть записана как:

Z-преобразование импульсной характеристики даёт нам передаточную функцию КИХ-фильтра:

Свойства

КИХ-фильтр обладает рядом полезных свойств, из-за которых он иногда более предпочтителен в использовании, чем БИХ-фильтр. Вот некоторые из них:

  • КИХ-фильтры устойчивы.
  • КИХ-фильтры при реализации не требуют наличия обратной связи.
  • Фаза КИХ-фильтров может быть сделана линейной

Прямая форма КИХ фильтра

КИХ фильтры могут быть реализованы с использованием трех элементов: умножитель, сумматор и блок задержки. Вариант, показанный на рисунке, есть прямая реализация КИХ-фильтров типа 1.

Реализация прямой формы КИХ фильтра

Пример программы

Ниже приведен пример программы КИХ-фильтра, написанный на C :

/* КИХ Фильтр на 128 отводов */
float fir_filter(float input)
{
    int i;
    static float sample[128];
    float acc;
    float output;
 
    sample[0] = input;
 
    acc = 0.0f;                 /* Аккумулятор */
 
    /* Умножение с накоплением */
    for (i = 0; i < 128; i++) {
        acc += (h[i] * sample[i]);
    }
 
    /* Выход */
    output = acc;
 
    /* Смещаем задержаный сигнал */
    for (i = 127; i > 0; i--)
        sample[i] = sample[i - 1];
    return output;
}

См. также

Ссылки

  • Расчет КИХ фильтра с линейной фазочастотной характеристикой методом частотной выборки
  • FIR FAQ

Фильтр с конечной импульсной характеристикой.

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47