[an error occurred while processing this directive]
|
Да работайте со спектральными плотностями - в сто раз проще. То, что Вы записали прокатит для самого общего случая, когда сигнал и шум нестационарны. И как результат - синтез Калмановского фильтра. Винер - есть частный случай Калмана при стационарных сигнале и шуме. Чтобы не усложнять себе (и Вам) жизнь аппаратом векторов состояния и матричными прибамбасами, я все же запишу все в терминах спектральных плотностей.
Итак, задача виннеровской ставится следующим образом (рассмотрим случай статистически независимых сигнала и шума, чтобы формулы были проще).
Пусть g(t) и v(t) - стационарные случайные процессы суть сигнал и шум.
Пусть Sg(w) и Sv(w) - спектральные плотности сигнала и шума.
Требуется синтезировать фильтр, передаточную функцию которого обозначим как W(jw), который бы минимизировал сигнал ошибки.
Сигнал ошибки e(t), который следует минимизировать, представим в виде суммы двух компонент:
e(t) = eg(t) + ev(t),
eg(t) - ошибка, связанная с искажением фильтром входного сигнала;
ev(t) - ошибка, связанная с остатком шума на выходе.
Выразим спектральные плотности сигналов eg и ev:
Seg(w)=|1-W(jw)|^2 * Sg(w);
Sev(w)=|W(jw)|^2 * Sv(w).
Se(w) = Seg(w) + Sev(w).
Дисперсия ошибки, величину которой надо минимизировать, выражается в виде:
De = (1/2*pi)*ИНТЕГРАЛ {Se(w)dw, от -беск. до +беск.} =
(1/2*pi)*ИНТЕГРАЛ {[|1-W(jw)|^2 * Sg(w) + |W(jw)|^2 * Sv(w)]dw; от - до + беск.}
Результат минимизации последнего функционала (по W(jw)) с соблюдением требования физической реализуемости (т.е. каузальности) есть:
Wopt(jw) = (1/F(jw))*Factorize_plus[Sg(w)/F(-jw)],
где F(jw) - результат факторицации суммы Sg(w)+Sv(w),
т.е. функция F(jw) такая что:
Sg(w)+Sv(w) = F(jw)*F(-jw);
Операция Factorize_plus[.] означает процедуру разложения на элементарные дроби функции, заключенной в скобках и последующего отбрасывания дробей, полюсы которых лежат в правой полуплоскости.
И все!