5.5.4. Методы синтеза БИХ-фильтров с нулевой фазой в частотной области
Часто (особенно при обработке
изображений) требуется фильтрация сигнала фильтром с симметричным импульсным
откликом. Такие фильтры обладают частотным откликом с вещественными значениями,
или с нулевой фазой. Ранее БИХ-фильтры с нулевой фазой реализовывались обычно
двумя способами - последовательным (каскадным) или параллельным.
При каскадном способе организации
фильтр с импульсным откликом
включается последовательно с фильтром, имеющим
импульсный отклик
.
Результирующий импульсный отклик такого каскада имеет вид
, а результирующий частотный
отклик - вид вещественной неотрицательной функции
. (5.126)
Как
показывает это выражение, частотный отклик каскада ограничен классом
неотрицательных функций
. Кроме того, в этом случае возникают
некоторые вычислительные трудности из-за переходных процессов. Выходные отсчеты
второго фильтра каскада вычисляются рекурсивно, причем рекурсия выполняется в
направлении, противоположном направлению для первого фильтра. Если
- отклик БИХ-фильтра,
то его выходной сигнал имеет бесконечную протяженность, и теоретически перед тем,
как начать фильтрацию
, следует вычислить бесконечное число
значений выходных отсчетов первого фильтра, даже если в конце требуется
получить сигнал в ограниченной области. Усечение вычислений в первом фильтре
может привести к появлению ошибки. На практике следует вычислять выходной
сигнал первого фильтра по достаточно протяженной области, чтобы переходные
процессы на выходе второго фильтра за счет начальных отсчетов в достаточной
степени затухли в интересующей нас области выходного сигнала.
При параллельном способе
организации результирующий выходной сигнал представляет собой сумму выходных
сигналов двух БИХ-фильтров с опорной несимметричной полуплоскостью (или четырех
фильтров с опорными четверть плоскостями). Как и в случае каскадного способа,
второй фильтр представляет пространственно-инверсную копию первого, так что
результирующий частотный отклик описывается выражением
. (5.127)
Такой
подход позволяет устранить трудности реализации фильтров с нулевой фазой,
характерные для каскадной структуры, но наилучшим образом его можно
использовать при синтезе БИХ-фильтров в пространственной области, где требуемый
отклик фильтра
можно
разделить по соответствующим опорным областям.
В разд. 5.2 детально обсуждался
относительно новый итерационный метод реализации БИХ-фильтров с нулевой фазой.
Описываемые ниже методы синтеза в частотной области позволяют получать фильтры,
реализуемые итерационным методом.
Частотный отклик двумерного БИХ-фильтра
с нулевой базой можно записать в виде
. (5.128)
[Как
и ранее, принимается, что
.] Поскольку
и (5.129а)
, (5.129б)
функции
и
можно записать проще:
, (5.130а)
, (5.130б)
где
,
для
, (5.131а)
,
для
. (5.131б)
[Суммирование в выражении (5.130)
выполняется по соответствующим несимметричным полуплоскостям конечной
протяженности.] Теперь можно построить функционал среднеквадратичной ошибки,
который поддается минимизации описанными ранее методами. В результате
минимизации мы получим коэффициенты
фильтра с нулевой фазой, из которых с
помощью выражений (5.131) легко получаются коэффициенты
. Затем для реализации
синтезированного фильтра можно воспользоваться приемами, описанными в разд.
5.2.
Можно поступить и по-другому,
минимизируя функционал ошибки в виде
. (5.132)
Это
задача оптимизации с высокой степенью нелинейности, однако имеется итерационный
метод, названный дифференциальной коррекцией [20-24], позволяющий
минимизировать
,
решая на каждой итерации задачу линейного программирования. Заметим, что
,
и
- функции с вещественными
значениями.
Предположим, что после
итераций мы получили
аппроксимацию требуемого вещественного частотного отклика
. Обозначим эту аппроксимацию
через
. (5.133)
Далее
найдем ошибку
этой
аппроксимации:
. (5.134)
Теперь
можно определить функционал дифференциальной коррекции:
. (5.135)
Этот
функционал через посредство
и
в числителе (5.135) зависит от
параметров фильтра
.
Подбирая эти параметры, можно минимизировать функционал
, который обычно меньше нуля.
Итерации выполняются до достижения условия
; полученная функция
является наилучшей
аппроксимацией отклика
. Минимизацию
на каждой итерации можно
выполнять методами линейного программирования (см., например, работу [25]).
Алгоритм дифференциальной коррекции, отличаясь математической элегантностью,
может потребовать значительного количества вычислений, поскольку на каждой
итерации надо решать задачу линейного программирования.
Синтез двумерных БИХ-фильтров с
нулевой фазой можно выполнить с помощью описанного в разд. 3.5.3 преобразования
Мак-Клеллана, применяемого к полиномам в числителе и знаменателе одномерного
БИХ-фильтра с нулевой фазой. Пусть, например,
, (5.136)
где
-
-й полином Чебышева.
Тогда можно, заменив
двумерным тригонометрическим полиномом
малого порядка с нулевой фазой
, получить двумерный частотный отклик
. (5.137)
Например, в качестве отклика
симметричного одномерного фильтра можно выбрать квадрат амплитудной
характеристики одномерного цифрового фильтра Баттерворта нижних частот. Этот
частотный отклик описывается функцией
, (5.138)
где
- частота
среза [1]. Используя тригонометрические тождества, можно выразить
как функцию
, (5.139)
где
. (5.140)
Теперь
можно подставить вместо
двумерную функцию
(5.141)
и
получить частотный отклик почти кругового симметричного БИХ-фильтра нижних
частот.
На каждом шаге итерационной
реализации необходимо фильтровать сигнал фильтром с частотным откликом вида
, (5.142)
причем
- функции с
вещественными положительными значениями. Как указывалось в разд. 5.2, это -
двумерная КИХ-фильтрация, которую можно выполнить с помощью методов, описанных
в гл. 3. В частности, если фильтр с откликом
синтезирован с использованием
преобразования Мак-Клеллана, то частотный отклик
можно реализовать, используя
модифицированный вариант схемы, описанной в разд. 3.5.4.