Фильтр Винера называется также линейным оптимальным фильтром, поскольку меньшее значение среднеквадратической ошибки, чем в фильтре Винера, в любом линейном фильтре получить нельзя
На вход фильтр поступают два сигнала: x[k] и d[k]. При этом d[k] содержит две составляющие – полезный сигнал s[k], который не коррелирован с x[k] и шумовую составляющую n[k], коррелированную с x[k]. Фильтр Винера должен иметь такую частотную характеристику, которая обеспечивает на выходе оптимальную в среднеквадратическом смысле оценку y[k] коррелированной части сигнала (шума) n[k]. Эта оценка вычитается из d[k] и выход (ошибка) фильтра e[k] – это наилучшая по среднеквадратическому критерию оценка полезного сигнала. Таким образом, фильтр Винера обеспечивает оптимальную оценку полезного сигнала, смешанного с аддитивным шумом, по критерию минимума среднеквадратической ошибки.
Предполагается, что фильтр является КИХ-фильтром с L-го порядка (с L коэффициентами). При этом его выход вычисляется как:
где вектор коэффициентов фильтра;
|
|
- вектор входного сигнала
Для оптимальной фильтрации необходимо найти оптимальный вектор коэффициентов W*. Для этого необходимо найти функцию среднеквадратической ошибки, взять ее производную и приравнять к нулю:
;
;
;
- функция СКО
Чтобы удобнее представить функцию СКО, необходимо ввести следующие обозначения:
Эта матрица называется корреляционной матрицей входного сигнала. Элементы, расположенные на главной диагонали, равны среднеквадратическим значениям входных компонентов, а остальные элементы – значениям автокорреляционной функции входных компонентов.
Этот вектор представляет собой множество значений взаимной корреляционной функции полезного отклика и отсчетов входного сигнала.
Теперь можно записать:
Теперь, если взять производную от этой функции по W и приравнять ее к нулю, получим:
Это равенство называется уравнением Винера-Хопфа. Оно определяет вектор коэффициентов фильтра, обеспечивающий минимальное значение среднеквадратической ошибки оценки полезного сигнала в присутствии шума.
Несмотря на то, что этот фильтр является оптимальным, применение его на практике не слишком целесообразно ввиду очень большой вычислительной сложности. Количество операций типа «сложение-умножение» на итерацию у этого фильтра пропорционально третьей степени порядка фильтра. На практике обычно используют различные итеративные процедуры, сходящиеся к оптимальному фильтру.