Синтез нового класса нерекурсивных цифровых фильтров без умножений

№ 6’2009
PDF версия
В операциях цифровой обработки сигналов ЦОС особое внимание уделяется цифровой фильтрам, которая может занимать более половины всего объема вычислений. В узком смысле цифровой фильтр — это частотноизбирательная цепь, обеспечивающая селекцию цифровых сигналов по частоте [1]. После выполнения цифровой фильтрации мы, как правило, получаем интересующий нас сигнал, то есть сигнал, несущий нужную информацию в виде, удобном для последующей обработки. Соответственно, к параметрам цифровых фильтров в современных системах цифровой обработки сигналов начинают предъявляться повышенные требования. Порядки фильтров нередко достигают тысячи и более. Это ведет к увеличению объема вычислений, а значит, и к резкому росту аппаратных затрат. При синтезе цифровых фильтров наибольшие затраты времени и оборудования приходятся на операции умножения. Таким образом, задача минимизации времени вычислений и уменьшения аппаратных затрат сводится к минимизации количества умножений, требуемых для вычисления очередного отфильтрованного отсчета.

Структура фильтра

Все цифровые фильтры делятся на два обширных класса: нерекурсивные— фильтры
с конечной импульсной характеристикой
(КИХ), и рекурсивные — фильтры с бесконечной импульсной характеристикой (БИХ).
Мы будем рассматривать только КИХ-фильтры, фазовая характеристика которых, в отличие от БИХ-фильтров, линейна. КИХ-
фильтры описываются следующим выражением [1]:

где y(n)— сигнал на выходе фильтра; x(n)—
сигнал на входе фильтра; bi — коэффициенты фильтра.

Таким образом, задача синтеза КИХ-фильтра сводится к вычислению коэффициентов
bi такого фильтра.

Проблема минимизации количества операций умножения может быть решена различными путями. Одним из путей является
использование неклассических структур цифровых фильтров, которые бы описывались
выражениями, отличными от (1), и в которых операция умножения исключена вообще. Такие структуры позволяют для некоторых классов цифровых фильтров обеспечить
улучшенные характеристики при их реализации [2]. Рассмотрим одну из упомянутых
структур. В ее основе — субструктура, изображенная на рис. 1 [3].

Рис. 1. Структурная схема элементарного звена:
K— количество задержек; W— весовой коэффициент (количество сумматоров)

Каскадным соединением таких субструктур можно синтезировать фильтры, обладающие различными амплитудно-частотными
характеристиками, которые бы удовлетворяли заданным требованиям по таким критериям, как ширина полосы пропускания фильтра, подавление боковых лепестков, прямоугольность и т. д. [2].

Коэффициенты фильтра

Попробуем получить аналитическое выражение для коэффициентов фильтра. Рассмотрим каскадное соединение описанных звеньев. Возьмем три звена, у каждого из которых W = 1, K = 1, и произведем суммирование (рис. 2).

Рис. 2. Элементарное звено с задержкой и сумматором

Тогда на выходе первого звена получим:

На выходе второго звена получим:

На выходе третьего звена получим:

или, если произвести Z-преобразование и перейти в Z-область:

Значит, исходя из (3–5), при последовательном соединении звеньев, подобных звену
на рис. 2, сигнал на выходе очередного каскада определяется по формуле многочлена
степени m:

или, в более общем случае:

где Hm(Z ) — импульсная характеристика
фильтра.

Рассмотрим коэффициенты bi данного
фильтра (8).

Соответственно, коэффициенты при добавлении каждого следующего звена будут
определяться на основе уже существующих
звеньев. А согласно (7), коэффициенты фильтра будут представлены коэффициентами
многочлена степени m, которые определяются по правилу (8). Сама же структура (8) носит название «треугольника Паскаля».

Компактное описание значения коэффициента:

где n — номер коэффициента; m — порядок
звена.

Как известно, bi представляют собой коэффициенты импульсной характеристики фильтра. График импульсной характеристики для
каскадного соединения двух, трех и четырех
звеньев с K = 1 приведен на рис. 3. Очевидно,
что при добавлении звеньев количество «ступенек» импульсной характеристики, соответствующих коэффициентам передаточной
функции фильтра, будет расти.

Рис. 3. Импульсные характеристики каскадного соединения звеньев с K = 1

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

Рис. 4. Импульсная характеристика при добавлении элементарного звена с вычитанием

Влияние структуры
на параметры фильтра

Обратимся к АЧХ элементарных звеньев.
В логарифмическом масштабе при каскадном
соединении звеньев их АЧХ будут складываться. Значит, задача получения нужной
АЧХ будет сводиться к сложению АЧХ типовых структур с различными параметрами.

Покажем, как при изменении каждого из
трех параметров элементарного звена изменяется его АЧХ. На рис. 5 представлен график АЧХ элементарного звена, для которого
K = 1, W = 1.

Рис. 5. АЧХ элементарного звена с K = 1

При увеличении количества задержек увеличение экстремумов АЧХ происходит пропорционально числу задержек. При этом частотный диапазон делится на равные части
в соответствии с количеством задержек. Максимумы и минимумы АЧХ в данном случае
чередуются через одинаковые частотные промежутки. На рис. 6 приведен пример АЧХ
элементарных звеньев с K = 2, K = 3, K = 4.
На рис. 7 показан пример каскадного соединения трех одинаковых звеньев с K = 3.
Мы видим, что их АЧХ складываются.

Рис. 6. АЧХ элементарных звеньев с K = 2, K = 3, K = 4

Рис. 7. АЧХ звена с K = 3 (W = 1) и каскадного соединения трех таких звеньев

Распределение «точек подавления» для разных порядков простейших звеньев, импульсные характеристики которых определяются
формулой y = z–k+1, приведено на рис. 8.

Рис. 8. Распределение точек подавления для разных порядков простейших звеньев

Рис. 9. Элементарное звено с коэффициентом

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

АЧХ структуры (рис. 10) будет иметь одну
«точку подавления», которая перемещается
по частотному диапазону в зависимости от
значения коэффициента k. АЧХ и ФЧХ элементарных звеньев с коэффициентом показаны на рис. 10.

Рис. 10. Частотные характеристики звена с коэффициентом при разных k

Очевидно, что в случае уменьшения коэффициента k точка подавления сдвигается влево по оси частот, а при увеличении — вправо.
Таким образом, введением звена с коэффициентом можно влиять на ширину полосы
фильтра.

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

Изменение знака сумматора с плюса на минус приводит к появлению экстремума в области нулевой частоты и так называемому
дифференцированию АЧХ. После точки перегиба АЧХ становится монотонно возрастающей. Это свойство позволяет синтезировать полосовые и режекторные фильтры.
На рис. 11, 12 приведены примеры элементарного звена с вычитанием, у которого K = 1,
а также каскадного соединения элементарных звеньев с K = 1, K = 2, K = 4 и вычитанием, у которого K = 1.

Рис. 11. АЧХ элементарного звена с вычитанием и K = 1

Рис. 12. АЧХ каскадного соединения элементарного звена с вычитанием, у которого K = 1

Увеличение числа сумматоров, по сути дела, добавляет дополнительные элементарные
звенья к заданному звену. Единственное отличие таких звеньев будет в том, что у них K = 0,
то есть это звенья без задержек. Это будет эквивалентно умножению импульсной характеристики на 2. АЧХ при увеличении числа сумматоров приподнимается, но форма АЧХ существенно не изменяется. На рис. 13 приведен
пример элементарного звена сW= 2 и K = 4.

Рис. 13. АЧХ элементарного звена сW = 2 и K = 4

Помимо последовательного соединения
звеньев мы можем использовать их параллельное соединение для получения необходимых импульсных характеристик фильтров, а соответственно, и их ЛАЧХ.

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

Соответственно, можно сделать несколько
выводов о достоинствах и применимости рассмотренного класса фильтров.

Во-первых, фильтры этого класса имеют
строго определенные частоты подавления,
равные 1/2ω, 1/3ω, 1/4ω, 1/6ω и т. д.

Во-вторых, увеличение числа звеньев приводит к практически неограниченному росту
подавления в описанных точках. Таким образом, теоретически становится возможным получение любого заданного значения подавления правее частоты первого нуля (для ФНЧ).

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

Синтез фильтров
с оптимальными параметрами

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

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

Другой путь, который представляется наиболее перспективным, — это изначальное задание требований к АЧХ фильтра и получение
по заданным к АЧХ фильтра требованиям его
структуры, то есть комбинации элементарных
звеньев с известными АЧХ. В этом случае мы
сначала синтезируем фильтр с заданной АЧХ
(например, с помощью утилиты fdatool среды
MATLAB), получаем коэффициенты его импульсной характеристики, округляем их, где
это необходимо, записываем уравнение передаточной функции фильтра в виде полинома степени n, а затем по имеющемуся полиному, пользуясь закономерностями, рассмотренными выше, строим структуру фильтра
без умножителей. Естественно, что это не всегда возможно сделать точно, и структура
фильтра может быть получена с некоторыми
допущениями и приближениями.

Рассмотрим фильтр, полученный каскадным соединением элементарных звеньев, подобранных из соображений получения максимального подавления его боковых лепестков
(первый путь). АЧХ этого фильтра представлена на рис. 14.

Рис. 14. АЧХ синтезированного фильтра

Как видно, мы получили фильтр нижних
частот (ФНЧ) с конечной импульсной характеристикой (КИХ). У этого фильтра количество элементарных звеньев равно 44. Ширина полосы пропускания по критерию 3 дБ
равна 0,062ω. Подавление боковых лепестков
109 дБ.

Синтезируем фильтр с вышеперечисленными параметрами с помощью утилиты
fdatool среды MATLAB.

Получился фильтр нижних частот (ФНЧ)
с конечной импульсной характеристикой
(КИХ), порядок которого равен 74. Параметры и АЧХ фильтра представлены на рис. 15.

Рис. 15. Вид АЧХ фильтра с порядком 74 в окне утилиты fdatool

Рассмотрим теперь пример синтеза фильтра без умножителей по сгенерированной характеристике (второй путь). На рис. 16 представлена частотная характеристика фильтра
двадцатого порядка, полученного c помощью
fdatool.

Рис. 16. АЧХ исходного фильтра

На рис. 17 представлена нормированная
импульсная характеристика исходного
фильтра и она же, но округленная до целого числа. Собственно, наш «фильтр без умножителей» будет реализовать эту округленную характеристику. Очевидно, что при
этом точность аппроксимации и трудоемкость процесса синтеза фильтра (а в нем все
еще сильна доля эвристики) напрямую зависят от нормировочного коэффициента
(в нашем примере он равен 20). На рис. 18
показаны АЧХ — исходная и приближенная.

Рис. 17. Импульсные характеристики: исходная и приближенная

Рис. 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).

Рис. 19. Структура фильтра в MATLAB Simulink

При составлении ПФ мы пользовались несколькими простыми, но эффективными
приемами.

Во-первых, так как импульсная характеристика КИХ фильтра с линейной фазой симметрична, то часто ПФ ветви тоже оказывается
симметричной (в данном случае, это верно
для всех ветвей, но это, конечно, не правило).
Поэтому удобным бывает «копирование» полинома низкого порядка с помощью звена
с 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.

Литература

  1. Солонина А. И., Улахович Д. А., Арбузов С. М.,
    Соловьева Е. Б. Основы цифровой обработки
    сигналов: Курс лекций. СПб.: БХВ-Петербург,
    2005.
  2. Каплун Д. И. Цифровые фильтры без умножений // Компоненты и технологии. 2007. № 2.
  3. Айфичер Э., Джервис Б. Цифровая обработка
    сигналов: практический подход / Пер. с англ. М.:
    ИД «Вильямс», 2004.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *