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.