Синтез нового класса нерекурсивных цифровых фильтров без умножений
Структура фильтра
Все цифровые фильтры делятся на два обширных класса: нерекурсивные— фильтры
с конечной импульсной характеристикой
(КИХ), и рекурсивные — фильтры с бесконечной импульсной характеристикой (БИХ).
Мы будем рассматривать только КИХ-фильтры, фазовая характеристика которых, в отличие от БИХ-фильтров, линейна. КИХ-
фильтры описываются следующим выражением [1]:
где y(n)— сигнал на выходе фильтра; x(n)—
сигнал на входе фильтра; bi — коэффициенты фильтра.
Таким образом, задача синтеза КИХ-фильтра сводится к вычислению коэффициентов
bi такого фильтра.
Проблема минимизации количества операций умножения может быть решена различными путями. Одним из путей является
использование неклассических структур цифровых фильтров, которые бы описывались
выражениями, отличными от (1), и в которых операция умножения исключена вообще. Такие структуры позволяют для некоторых классов цифровых фильтров обеспечить
улучшенные характеристики при их реализации [2]. Рассмотрим одну из упомянутых
структур. В ее основе — субструктура, изображенная на рис. 1 [3].
Каскадным соединением таких субструктур можно синтезировать фильтры, обладающие различными амплитудно-частотными
характеристиками, которые бы удовлетворяли заданным требованиям по таким критериям, как ширина полосы пропускания фильтра, подавление боковых лепестков, прямоугольность и т. д. [2].
Коэффициенты фильтра
Попробуем получить аналитическое выражение для коэффициентов фильтра. Рассмотрим каскадное соединение описанных звеньев. Возьмем три звена, у каждого из которых W = 1, K = 1, и произведем суммирование (рис. 2).
Тогда на выходе первого звена получим:
На выходе второго звена получим:
На выходе третьего звена получим:
или, если произвести Z-преобразование и перейти в Z-область:
Значит, исходя из (3–5), при последовательном соединении звеньев, подобных звену
на рис. 2, сигнал на выходе очередного каскада определяется по формуле многочлена
степени m:
или, в более общем случае:
где Hm(Z ) — импульсная характеристика
фильтра.
Рассмотрим коэффициенты bi данного
фильтра (8).
Соответственно, коэффициенты при добавлении каждого следующего звена будут
определяться на основе уже существующих
звеньев. А согласно (7), коэффициенты фильтра будут представлены коэффициентами
многочлена степени m, которые определяются по правилу (8). Сама же структура (8) носит название «треугольника Паскаля».
Компактное описание значения коэффициента:
где n — номер коэффициента; m — порядок
звена.
Как известно, bi представляют собой коэффициенты импульсной характеристики фильтра. График импульсной характеристики для
каскадного соединения двух, трех и четырех
звеньев с K = 1 приведен на рис. 3. Очевидно,
что при добавлении звеньев количество «ступенек» импульсной характеристики, соответствующих коэффициентам передаточной
функции фильтра, будет расти.
Покажем, что при добавлении элементарного звена с вычитанием появляются отрицательные коэффициенты. На рис. 4 приведен
график импульсной характеристики каскадного соединения четырех звеньев с K = 1 и одного звена с вычитанием, у которого K = 1.
Влияние структуры
на параметры фильтра
Обратимся к АЧХ элементарных звеньев.
В логарифмическом масштабе при каскадном
соединении звеньев их АЧХ будут складываться. Значит, задача получения нужной
АЧХ будет сводиться к сложению АЧХ типовых структур с различными параметрами.
Покажем, как при изменении каждого из
трех параметров элементарного звена изменяется его АЧХ. На рис. 5 представлен график АЧХ элементарного звена, для которого
K = 1, W = 1.
При увеличении количества задержек увеличение экстремумов АЧХ происходит пропорционально числу задержек. При этом частотный диапазон делится на равные части
в соответствии с количеством задержек. Максимумы и минимумы АЧХ в данном случае
чередуются через одинаковые частотные промежутки. На рис. 6 приведен пример АЧХ
элементарных звеньев с K = 2, K = 3, K = 4.
На рис. 7 показан пример каскадного соединения трех одинаковых звеньев с K = 3.
Мы видим, что их АЧХ складываются.
Распределение «точек подавления» для разных порядков простейших звеньев, импульсные характеристики которых определяются
формулой y = z–k+1, приведено на рис. 8.
Покажем теперь, что происходит при добавлении звена с коэффициентом. Рассмотрим структуру, изображенную на рис. 9. Здесь
в соединение звеньев введен коэффициент k
Импульсная характеристика такой структуры будет определяться формулой:
АЧХ структуры (рис. 10) будет иметь одну
«точку подавления», которая перемещается
по частотному диапазону в зависимости от
значения коэффициента k. АЧХ и ФЧХ элементарных звеньев с коэффициентом показаны на рис. 10.
Очевидно, что в случае уменьшения коэффициента k точка подавления сдвигается влево по оси частот, а при увеличении — вправо.
Таким образом, введением звена с коэффициентом можно влиять на ширину полосы
фильтра.
Описанные закономерности позволяют определить структуру фильтра нижних частот.
Сначала синтезируется звено с самым большим количеством задержек. Тогда задача синтеза ФНЧ сводится к достижению необходимых прямоугольности и подавления всех частот, лежащих правее полученной.
Изменение знака сумматора с плюса на минус приводит к появлению экстремума в области нулевой частоты и так называемому
дифференцированию АЧХ. После точки перегиба АЧХ становится монотонно возрастающей. Это свойство позволяет синтезировать полосовые и режекторные фильтры.
На рис. 11, 12 приведены примеры элементарного звена с вычитанием, у которого K = 1,
а также каскадного соединения элементарных звеньев с K = 1, K = 2, K = 4 и вычитанием, у которого K = 1.
Увеличение числа сумматоров, по сути дела, добавляет дополнительные элементарные
звенья к заданному звену. Единственное отличие таких звеньев будет в том, что у них K = 0,
то есть это звенья без задержек. Это будет эквивалентно умножению импульсной характеристики на 2. АЧХ при увеличении числа сумматоров приподнимается, но форма АЧХ существенно не изменяется. На рис. 13 приведен
пример элементарного звена сW= 2 и K = 4.
Помимо последовательного соединения
звеньев мы можем использовать их параллельное соединение для получения необходимых импульсных характеристик фильтров, а соответственно, и их ЛАЧХ.
Таким образом, требуемый фильтр получается соединением элементарных звеньев
с разными параметрами, подобранными так,
чтобы обеспечить наилучшие заданные характеристики фильтра.
Соответственно, можно сделать несколько
выводов о достоинствах и применимости рассмотренного класса фильтров.
Во-первых, фильтры этого класса имеют
строго определенные частоты подавления,
равные 1/2ω, 1/3ω, 1/4ω, 1/6ω и т. д.
Во-вторых, увеличение числа звеньев приводит к практически неограниченному росту
подавления в описанных точках. Таким образом, теоретически становится возможным получение любого заданного значения подавления правее частоты первого нуля (для ФНЧ).
В-третьих, изменение знака сумматора
с плюса на минус может быть использовано
для расширения полосы пропускания фильтра. Кроме того, использование каскадного
соединения элементарных звеньев с вычитанием дает возможность получения эффективных полосовых и режекторных фильтров,
для которых справедливы два вышеизложенных пункта.
Синтез фильтров
с оптимальными параметрами
Из рассмотренного видно, что для получения эффективного для определенного рода задач фильтра необходимо знать параметры элементарных звеньев, составляющих
фильтр, а также количество этих звеньев.
Эту задачу можно решать двумя путями.
Один из путей — перебор возможных комбинаций каскадного соединения элементарных звеньев для получения фильтра с требуемыми параметрами. В этом случае задаются наиболее приоритетные параметры
фильтра — один или несколько, значения которых и будут являться критериями для перебора. Такой перебор можно ограничить
введением определенного максимально допустимого числа элементарных звеньев или
задержек.
Другой путь, который представляется наиболее перспективным, — это изначальное задание требований к АЧХ фильтра и получение
по заданным к АЧХ фильтра требованиям его
структуры, то есть комбинации элементарных
звеньев с известными АЧХ. В этом случае мы
сначала синтезируем фильтр с заданной АЧХ
(например, с помощью утилиты fdatool среды
MATLAB), получаем коэффициенты его импульсной характеристики, округляем их, где
это необходимо, записываем уравнение передаточной функции фильтра в виде полинома степени n, а затем по имеющемуся полиному, пользуясь закономерностями, рассмотренными выше, строим структуру фильтра
без умножителей. Естественно, что это не всегда возможно сделать точно, и структура
фильтра может быть получена с некоторыми
допущениями и приближениями.
Рассмотрим фильтр, полученный каскадным соединением элементарных звеньев, подобранных из соображений получения максимального подавления его боковых лепестков
(первый путь). АЧХ этого фильтра представлена на рис. 14.
Как видно, мы получили фильтр нижних
частот (ФНЧ) с конечной импульсной характеристикой (КИХ). У этого фильтра количество элементарных звеньев равно 44. Ширина полосы пропускания по критерию 3 дБ
равна 0,062ω. Подавление боковых лепестков
109 дБ.
Синтезируем фильтр с вышеперечисленными параметрами с помощью утилиты
fdatool среды MATLAB.
Получился фильтр нижних частот (ФНЧ)
с конечной импульсной характеристикой
(КИХ), порядок которого равен 74. Параметры и АЧХ фильтра представлены на рис. 15.
Рассмотрим теперь пример синтеза фильтра без умножителей по сгенерированной характеристике (второй путь). На рис. 16 представлена частотная характеристика фильтра
двадцатого порядка, полученного c помощью
fdatool.
На рис. 17 представлена нормированная
импульсная характеристика исходного
фильтра и она же, но округленная до целого числа. Собственно, наш «фильтр без умножителей» будет реализовать эту округленную характеристику. Очевидно, что при
этом точность аппроксимации и трудоемкость процесса синтеза фильтра (а в нем все
еще сильна доля эвристики) напрямую зависят от нормировочного коэффициента
(в нашем примере он равен 20). На рис. 18
показаны АЧХ — исходная и приближенная.
Составим таблицу, в которую запишем коэффициенты будущего фильтра. Затем разложим импульсную характеристику на сумму полиномов так, чтобы каждый полином
можно было легко реализовать каскадным
соединением элементарных звеньев. Естественно, такое разложение не является единственным. Каждый полином будет реализован
в отдельной ветви фильтра, а сложение ПФ
ветвей даст импульсную характеристику синтезируемого фильтра.
Таблица. Коэффициенты будущего фильтра
Номер коэффициента |
20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Коэффициент | 1 | 0 | –1 | 0 | 1 | 1 | –1 | –2 | 1 | 6 | 9 | 6 | 1 | –2 | –1 | 1 | 1 | 0 | –1 | 0 | 1 |
Ветвь 1 | 1 | 0 | –1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | –1 | 0 | 1 |
Ветвь 2 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||
Ветвь 3 | –1 | –2 | –1 | 0 | 0 | 0 | –1 | –2 | –1 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||
Ветвь 4 | 2 | 6 | 8 | 6 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Запишем передаточные функции для каждой ветви:
Структура фильтра, реализованного
вMATLAB Simulink, представлена на рис. 19.
Некоторые звенья в разных ветвях повторяются, и приведенная структура может быть
упрощена, однако для простоты и экономии
места оставлена в виде, соответствующем передаточным функциям (9).
При составлении ПФ мы пользовались несколькими простыми, но эффективными
приемами.
Во-первых, так как импульсная характеристика КИХ фильтра с линейной фазой симметрична, то часто ПФ ветви тоже оказывается
симметричной (в данном случае, это верно
для всех ветвей, но это, конечно, не правило).
Поэтому удобным бывает «копирование» полинома низкого порядка с помощью звена
с H1(Z)=Z–k±1, как это сделано, например,
в первой и третьей ветви.
Во-вторых, сгенерированная ПФ ветви может быть легко «сдвинута» по импульсной
характеристике простым добавлением множителя (звена) Z–k.
В-третьих, несмотря на то что рассматривается класс фильтров без умножителей,
можно смело использовать коэффициенты,
если они равны 2i, так как формально умножение на 2 эквивалентно сдвигу двоичного
числа на 1 бит влево.
И, наконец, в-четвертых, полезно использовать древовидные структуры, наподобие
(8). Однако удобным оказывается использование «деревьев», в основе которых лежит
больше одного коэффициента. Например,
рассмотрим «дерево», в основании которого
три коэффициента — a, b, c (формула внизу
страницы).
Такое «дерево» использовалось, например,
при выборе ПФ ветви 4. Рассмотрим случаи,
когда (a,b,c) = (1;0;0), (0;1;0), (0;0;1). Как видно, в представленном «abc-дереве» остаются
только соответствующие единицам коэффициенты. Если сравнить их с представленным
ранее «a-деревом» (8), то мы увидим, что они
абсолютно совпадают.
Таким образом, вне зависимости от выбора основы (значения, количества и взаимного распределения коэффициентов {a,b,c,…})
в результате получим сумму коэффициентов
пересекающихся деревьев.
Для упрощения задачи разложения можно
поступить следующим образом: импульсная
характеристика округляется до ближайшего
числа, равного 2n, и синтезируется структура, реализующая такую аппроксимацию.
Можно повторить эту процедуру несколько
раз, используя на каждом следующем шаге
разность между целевой и приближенной характеристикой, а оставшуюся в конце разность разложив так, как это показано в примере. Такой подход кажется целесообразным
при синтезе фильтров большого порядка.
Заключение
Подведем итог всему вышесказанному.
Мы рассмотрели два способа синтеза фильтров без умножителей.
Первый подразумевает получение желаемой частотной характеристики путем последовательного соединения типовых звеньев
aZ–K±a, задав первый ноль АЧХ и подавив все
в полосе задерживания. При этом повторение двух одинаковых звеньев приводит к усилению подавления.
Второй способ нацелен на аппроксимацию
импульсной характеристики сгенерированного с помощью специальных программных средств фильтра (например, FDAtool
из MATLAB). Импульсная характеристика
раскладывается на сумму полиномов, каждый из которых реализуется последовательным соединением звеньев («ветвь» фильтра),
а параллельное соединение ветвей даст желаемую импульсную характеристику. Для упрощения задачи синтеза структуры фильтра
предлагается использовать «деревья» (треугольник Паскаля), получаемые с помощью
последовательного соединения звеньев Z–1+1,
и их комбинации (abc-деревья). Также для
упрощения предложено использовать аппроксимацию импульсной характеристики
с помощью «округления» до 2n.
Литература
- Солонина А. И., Улахович Д. А., Арбузов С. М.,
Соловьева Е. Б. Основы цифровой обработки
сигналов: Курс лекций. СПб.: БХВ-Петербург,
2005. - Каплун Д. И. Цифровые фильтры без умножений // Компоненты и технологии. 2007. № 2.
- Айфичер Э., Джервис Б. Цифровая обработка
сигналов: практический подход / Пер. с англ. М.:
ИД «Вильямс», 2004.