Recursive least squares (RLS) is an adaptive filter algorithm that recursively finds the coefficients that minimize a weighted linear least squares cost function relating to the input signals. This approach is in contrast to other algorithms such as the least mean squares (LMS) that aim to reduce the mean square error. In the derivation of the RLS, the input signals are considered deterministic, while for the LMS and similar algorithms they are considered stochastic. Compared to most of its competitors, the RLS exhibits extremely fast convergence. However, this benefit comes at the cost of high computational complexity.
Motivation RLS was discovered by Gauss but lay unused or ignored until 1950 when Plackett rediscovered the original work of Gauss from 1821. In general, the RLS can be used to solve any problem that can be solved by adaptive filters. For example, suppose that a signal d ( n ) {\displaystyle d(n)} is transmitted over an echoey, noisy channel that causes it to be received as
x ( n ) = ∑ k = 0 q b n ( k ) d ( n − k ) + v ( n ) {\displaystyle x(n)=\sum _{k=0}^{q}b_{n}(k)d(n-k)+v(n)}
where v ( n ) {\displaystyle v(n)} represents additive noise. The intent of the RLS filter is to recover the desired signal d ( n ) {\displaystyle d(n)} by use of a p + 1 {\displaystyle p+1} -tap FIR filter, w {\displaystyle \mathbf {w} } :
d ( n ) ≈ ∑ k = 0 p w ( k ) x ( n − k ) = w T x n {\displaystyle d(n)\approx \sum _{k=0}^{p}w(k)x(n-k)=\mathbf {w} ^{\mathit {T}}\mathbf {x} _{n}}
where x n = [ x ( n ) x ( n − 1 ) … x ( n − p ) ] T {\displaystyle \mathbf {x} _{n}=[x(n)\quad x(n-1)\quad \ldots \quad x(n-p)]^{T}} is the column vector containing the p + 1 {\displaystyle p+1} most recent samples of x ( n ) {\displaystyle x(n)} . The estimate of the recovered desired signal is
d ^ ( n ) = ∑ k = 0 p w n ( k ) x ( n − k ) = w n T x n {\displaystyle {\hat {d}}(n)=\sum _{k=0}^{p}w_{n}(k)x(n-k)=\mathbf {w} _{n}^{\mathit {T}}\mathbf {x} _{n}}
… excerpt ends here. Continue reading the full article.

