Решение фильтра наименьших средних квадратов сходится к решению фильтра Винера , предполагая, что неизвестная система — это LTI , а шум — стационарный . Оба фильтра можно использовать для определения импульсного отклика неизвестной системы, зная только исходный входной сигнал и выход неизвестной системы. Ослабляя критерий ошибки для уменьшения текущей ошибки выборки вместо минимизации общей ошибки по всем n, алгоритм LMS можно вывести из фильтра Винера.
Вывод фильтра Винера для идентификации системы При известном входном сигнале выход неизвестной системы LTI может быть выражен как: с [ н ] {\displaystyle s[n]} х [ н ] {\displaystyle x[n]}
х [ н ] = ∑ к = 0 Н − 1 час к с [ н − к ] + ж [ н ] {\displaystyle x[n]=\sum _{k=0}^{N-1}h_{k}s[nk]+w[n]}
где — неизвестные коэффициенты отвода фильтра, а — шум. час к {\displaystyle h_{k}} ж [ н ] {\displaystyle w[n]}
Модель системы , использующая решение фильтра Винера с порядком N, может быть выражена как: x ^ [ n ] {\displaystyle {\hat {x}}[n]}
x ^ [ n ] = ∑ k = 0 N − 1 h ^ k s [ n − k ] {\displaystyle {\hat {x}}[n]=\sum _{k=0}^{N-1}{\hat {h}}_{k}s[n-k]}
где — коэффициенты отвода фильтра, которые необходимо определить. h ^ k {\displaystyle {\hat {h}}_{k}}
Ошибку между моделью и неизвестной системой можно выразить как:
e [ n ] = x [ n ] − x ^ [ n ] {\displaystyle e[n]=x[n]-{\hat {x}}[n]}
Общую квадратичную ошибку можно выразить как: E {\displaystyle E}
E = ∑ n = − ∞ ∞ e [ n ] 2 {\displaystyle E=\sum _{n=-\infty }^{\infty }e[n]^{2}}
E = ∑ n = − ∞ ∞ ( x [ n ] − x ^ [ n ] ) 2 {\displaystyle E=\sum _{n=-\infty }^{\infty }(x[n]-{\hat {x}}[n])^{2}}
E = ∑ n = − ∞ ∞ ( x [ n ] 2 − 2 x [ n ] x ^ [ n ] + x ^ [ n ] 2 ) {\displaystyle E=\sum _{n=-\infty }^{\infty }(x[n]^{2}-2x[n]{\hat {x}}[n]+{\hat {x}}[n]^{2})}
Используйте критерий минимальной среднеквадратической ошибки по всем , установив его градиент равным нулю: n {\displaystyle n}
∇ E = 0 {\displaystyle \nabla E=0} который
для всех ∂ E ∂ h ^ i = 0 {\displaystyle {\frac {\partial E}{\partial {\hat {h}}_{i}}}=0} i = 0 , 1 , 2 , . . . , N − 1 {\displaystyle i=0,1,2,...,N-1}
∂ E ∂ h ^ i = ∂ ∂ h ^ i ∑ n = − ∞ ∞ [ x [ n ] 2 − 2 x [ n ] x ^ [ n ] + x ^ [ n ] 2 ] {\displaystyle {\frac {\partial E}{\partial {\hat {h}}_{i}}}={\frac {\partial }{\partial {\hat {h}}_{i}}}\sum _{n=-\infty }^{\infty }[x[n]^{2}-2x[n]{\hat {x}}[n]+{\hat {x}}[n]^{2}]}
Заменить определение : x ^ [ n ] {\displaystyle {\hat {x}}[n]}
∂ E ∂ h ^ i = ∂ ∂ h ^ i ∑ n = − ∞ ∞ [ x [ n ] 2 − 2 x [ n ] ∑ k = 0 N − 1 h ^ k s [ n − k ] + ( ∑ k = 0 N − 1 h ^ k s [ n − k ] ) 2 ] {\displaystyle {\frac {\partial E}{\partial {\hat {h}}_{i}}}={\frac {\partial }{\partial {\hat {h}}_{i}}}\sum _{n=-\infty }^{\infty }[x[n]^{2}-2x[n]\sum _{k=0}^{N-1}{\hat {h}}_{k}s[n-k]+(\sum _{k=0}^{N-1}{\hat {h}}_{k}s[n-k])^{2}]}
Распределим частную производную:
∂ E ∂ h ^ i = ∑ n = − ∞ ∞ [ − 2 x [ n ] s [ n − i ] + 2 ( ∑ k = 0 N − 1 h ^ k s [ n − k ] ) s [ n − i ] ] {\displaystyle {\frac {\partial E}{\partial {\hat {h}}_{i}}}=\sum _{n=-\infty }^{\infty }[-2x[n]s[n-i]+2(\sum _{k=0}^{N-1}{\hat {h}}_{k}s[n-k])s[n-i]]}
Используя определение дискретной взаимной корреляции :
R x y ( i ) = ∑ n = − ∞ ∞ x [ n ] y [ n − i ] {\displaystyle R_{xy}(i)=\sum _{n=-\infty }^{\infty }x[n]y[n-i]}
∂ E ∂ h ^ i = − 2 R x s [ i ] + 2 ∑ k = 0 N − 1 h ^ k R s s [ i − k ] = 0 {\displaystyle {\frac {\partial E}{\partial {\hat {h}}_{i}}}=-2R_{xs}[i]+2\sum _{k=0}^{N-1}{\hat {h}}_{k}R_{ss}[i-k]=0}
Переставьте термины:
R x s [ i ] = ∑ k = 0 N − 1 h ^ k R s s [ i − k ] {\displaystyle R_{xs}[i]=\sum _{k=0}^{N-1}{\hat {h}}_{k}R_{ss}[i-k]}
для всех i = 0 , 1 , 2 , . . . , N − 1 {\displaystyle i=0,1,2,...,N-1}
Эту систему из N уравнений с N неизвестными можно определить.
Результирующие коэффициенты фильтра Винера можно определить по формуле: , где — вектор взаимной корреляции между и . W = R x x − 1 P x s {\displaystyle W=R_{xx}^{-1}P_{xs}} P x s {\displaystyle P_{xs}} x {\displaystyle x} s {\displaystyle s}
Вывод алгоритма LMS Ослабляя бесконечную сумму фильтра Винера только до ошибки в момент времени , можно вывести алгоритм LMS. n {\displaystyle n}
Квадратичная ошибка может быть выражена как:
E = ( d [ n ] − y [ n ] ) 2 {\displaystyle E=(d[n]-y[n])^{2}}
Используя критерий минимальной среднеквадратической ошибки, возьмем градиент:
∂ E ∂ w = ∂ ∂ w ( d [ n ] − y [ n ] ) 2 {\displaystyle {\frac {\partial E}{\partial w}}={\frac {\partial }{\partial w}}(d[n]-y[n])^{2}}
Применить цепочку правил и подставить определение y[n]
∂ E ∂ w = 2 ( d [ n ] − y [ n ] ) ∂ ∂ w ( d [ n ] − ∑ k = 0 N − 1 w ^ k x [ n − k ] ) {\displaystyle {\frac {\partial E}{\partial w}}=2(d[n]-y[n]){\frac {\partial }{\partial w}}(d[n]-\sum _{k=0}^{N-1}{\hat {w}}_{k}x[n-k])}
∂ E ∂ w i = − 2 ( e [ n ] ) ( x [ n − i ] ) {\displaystyle {\frac {\partial E}{\partial w_{i}}}=-2(e[n])(x[n-i])}
Используя градиентный спуск и размер шага : μ {\displaystyle \mu }
w [ n + 1 ] = w [ n ] − μ ∂ E ∂ w {\displaystyle w[n+1]=w[n]-\mu {\frac {\partial E}{\partial w}}}
что становится, для i = 0, 1, ..., N-1,
w i [ n + 1 ] = w i [ n ] + 2 μ ( e [ n ] ) ( x [ n − i ] ) {\displaystyle w_{i}[n+1]=w_{i}[n]+2\mu (e[n])(x[n-i])}
Это уравнение обновления LMS.
Смотрите также
Ссылки Дж. Г. Прокис и Д. Г. Манолакис, Цифровая обработка сигналов: принципы, алгоритмы и приложения, Prentice-Hall, 4-е изд., 2007.