5.4.2. Методы спуска для синтеза в пространственной области
Для решения задачи синтеза двумерных БИХ-фильтров можно использовать общие методы нелинейной оптимизации. Ограниченность объема книги не позволяет нам привести здесь общее сравнение и оценку всех известных методов. Заинтересованному читателю хорошую отправную точку дадут работы [10,11]. В этом разделе мы отметим несколько методов оптимизации, часто используемых при проектировании как одномерных, так и двумерных БИХ-фильтров.
Для удобства определим вектор параметров
как набор коэффициентов фильтра
. Возмущения вектора параметров обозначим через
. В общем случае алгоритмы нелинейной оптимизации итеративны по своей природе. На каждой итерации заданием возмущений текущих значений параметров делается попытка уменьшить ошибку аппроксимации. Обозначим функциональную зависимость ошибки от вектора параметров
. Тогда на каждой итерации отыскивается вектор возмущений
, для которого
. (5.91)
(На практике
можно умножить на положительный скаляр
. Тогда можно считать, что
определяет направление поиска, а
- размер шага.)
В методе наискорейшего спуска вектор направления
выбирается равным градиенту функционала ошибки, взятому со знаком минус:
. (5.92)
Частные производные
связаны с частными производными выходного сигнала
выражениями (5.77).
Метод наискорейшего спуска относительно прост в использовании, но отличается медленной сходимостью [10,13]. Поэтому часто его используют лишь на нескольких первых итерациях минимизации.
Метод Ньютона аппроксимирует функционал ошибки
с помощью ряда Тейлора второго порядка вида
, (5.93)
где
- матрица Гессе,
-я компонента которой представляет собой частную производную второго порядка
, a
и
-
-я и
-я компоненты вектора параметров
. Чтобы найти вектор возмущений
, необходимо продифференцировать выражение (5.93) по
и приравнять результат нулю. Это приводит к системе линейных уравнений
, (5.94)
которая решается на каждой итерации для нахождения
.
Теоретически этот метод обеспечивает квадратичную сходимость, если вектор параметров
близок к оптимальному. Однако метод требует для нахождения
вычисления частных производных второго порядка. Это, конечно, связано с дополнительными вычислительными расходами. Несмотря на потенциально быструю сходимость, метод Ньютона часто вообще не сходится при минимизации в пространственной области, потому что при векторе
, близком к оптимальному, матрица Гессе может иметь отрицательные собственные значения [10]. Тем не менее, как мы увидим в разд. 5.6.1, метод Ньютона используется с определенным успехом при минимизации в частотной области.
Для синтеза прямых форм двумерных БИХ-фильтров успешно использовался [13] алгоритм минимизации Флетчера-Пауэлла [14]. Этот алгоритм получил название «алгоритма наискорейшего спуска с ускоренной сходимостью», поскольку в нем для вычисления частных производных второго порядка используются частные производные первого порядка плюс информация, полученная на предыдущих итерациях. Алгоритм Флетчера-Пауэлла, как и алгоритмы наискорейшего спуска и Ньютона, требует начальной оценки вектора параметров. Обоснованный выбор этой начальной оценки помогает ускорить сходимость, а также избежать при поиске глобального минимума локальных минимумов. Часто в качестве хорошей начальной оценки используется алгоритм Шэнкса [11].
При синтезе одномерных и двумерных БИХ-фильтров успешно применялся также метод линеаризации [10,15,16]. В этом методе используется разложение в ряд Тейлора первого порядка вариации выходного сигнала
как функции вектора параметров
. Чтобы подчеркнуть эту функциональную зависимость, а также для некоторого упрощения обозначений будем использовать индекс
и опустим указание на зависимость от
, т. е. определим
. (5.95)
Запишем ряд Тейлора первого порядка
, (5.96)
в котором компоненты градиентного вектора
представляют собой частные производные
по коэффициентам фильтра, образующим вектор параметров
. Теперь функционал ошибки можно приближенно выразить в виде
. (5.97)
Дифференцируя это выражение по вектору возмущений
и приравнивая производные нулю, получим
. (5.98)
Эти нормальные уравнения следует разрешить относительно
. Используя соотношение
, (5.99)
их можно записать в более сжатом виде. Подставив (5.99) в (5.98), получим систему линейных уравнений
, (5.100)
где
- матрица,
-й элемент которой имеет вид
. (5.101)
Поскольку на первой итерации значение вектора
известно, можно вычислить величины
и
. Из них легко получить
и
и нормальные уравнения (5.100), которые затем разрешаются относительно
.
Строго говоря, все эти способы не могут гарантировать устойчивости [ни в смысле ограниченности входа и выхода
, ни в среднеквадратичном смысле
], поскольку на практике квадратичная ошибка суммируется только по области конечной протяженности в плоскости
. Однако если требуемый сигнал
квадратично суммируем и область суммирования ошибки выбрана достаточно протяженной, то фильтр будет скорее всего устойчив в обоих упомянутых выше смыслах.
В интересах полноты упомянем алгоритм минимизации Левенберга-Марквардта [17], который использовался для синтеза двумерного БИХ-фильтра в частотной области [18]. Этот алгоритм можно рассматривать как компромисс между методами Ньютона и наискорейшего спуска. Поэтому он итеративен и обеспечивает решение системы линейных уравнений относительно вектора направления
на каждой итерации. В варианте метода, использованном в работе [18], необходимые частные производные вычислялись не с помощью явных формул, а численно.