Цифровые фильтры Печать

Вернуться к оглавлению

Цифровые фильтры

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

Рисунок 1. Идеализированная амплитудно-частотная характеристика коэффициента передачи фильтра.

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

где S(f) - спектр сигнала
    s(t) - временная реализация сигнала
    G(f) - частотная характеристика полосового фильтра
    g(t) - импульсная характеристика полосового фильтра
    L    - длина импульсной характеристики полосового фильтра

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

Кроме формы импульсной характеристики для создания цифрового фильтра нам требуется уметь запоминать значения входного сигнала в предыдущие моменты времени. Для этого могут быть использованы параллельные регистры, внутреннее устройство которых рассмотрено в предыдущих главах. В формуле вычисления свертки используется арифметическая операция умножения. Устройство, способное выполнять эту операцию мы тоже уже рассматривали ранее. Остается только операция интегрирования. Однако при использовании целочисленных значений входного сигнала ее можно представить как сумму всех отсчетов этого сигнала, а внутреннее устройство арифметического сумматора мы тоже уже знаем.

Рассмотрим структурную схему устройства, способного вычислять операцию свёртки (цифровой фильтр). Эта схема приведена на рисунке 2.

Рисунок 2. Структурная схема устройства, способного вычислять операцию свёртки.

Давайте проверим, как будет реагировать это устройство на одиночный импульс единичной амплитуды, поданный на его вход. Для наглядности рассуждений возьмем импульсную характеристику одиночного колебательного контура. Эта характеристика приведена на рисунке 3.

Рисунок 3. Форма импульсной характеристики колебательного контура.

На рисунке кружочками обозначены значения весовых коэффициентов импульсной характеристики цифрового фильтра. Именно эти коэффициенты подаются на входы умножителей в схеме, приведенной на рисунке 2. Для наглядности эти коэффициенты соединены между собой прямыми линиями (так характеристика становится более похожей на импульсную характеристику аналогового колебательного контура).

Частотная характеристика фильтра, обладающего импульсной характеристикой, соответствующей рисунке 3, приведена на рисунке 4. По оси абсцисс на этом рисунке приведена частота в кГц, а по оси ординат - коэффициент передачи фильтра в дБ.

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

Теперь подадим на вход схемы, приведенной на рисунке 2, цифровой код, соответствующий единичному уровню сигнала. В первый момент времени во всех внутренних регистрах фильтра содержатся нулевые значения. Это означает, что при умножении этих значений на весовые коэффициенты мы получим в результате нули. Отличаться будет только результат на выходе первого умножителя. При перемножении весового коэффициента g0 на единичное значение входного сигнала мы получим на выходе умножителя значение сигнала с амплитудой g0.

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

Как мы договорились, теперь на вход фильтра мы подадим код, соответствующий нулевому значению сигнала. В результате снова на выходе всех умножителей, кроме второго умножителя, будет присутствовать нулевой код. Так как в первом регистре на этот раз содержится единичное значение, то в результате умножения на коэффициент g1, на выходе второго умножителя мы получим значение сигнала с амплитудой g1.

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

Итак, мы убедились, что схема ведёт себя подобно обычному фильтру, и научились рассчитывать весовые коэффициенты этой схемы, требуемые для получения заданных характеристик фильтров. Собственно говоря, было бы удивительно не получить фильтр, ведь обычные аналоговые схемы фактически работают так же. Энергия на колебательном контуре постепенно накапливается за счет суммирования текущего входного напряжения и всех предыдущих значений, активный RC фильтр с обратными связями ведет себя точно так же.

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

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

В качестве еще одного примера использования рассмотренной ранее схемы можно назвать реализацию фильтров Найквиста. Как известно, в этих фильтрах импульсная характеристика должна принимать нулевые значения строго через определенные интервалы, равные длительности передаваемого символа. И это нам доступно - кто же может запретить нам записать в нужные ячейки памяти код нуля?

Вернуться к оглавлению