The weiner-filter,
Wopt=R-1P
W
opt
R
P
, is ideal for many applications. But several issues
must be addressed to use it in practice.
Problem 1
In practice one usually won't know exactly the statistics of
x
k
x
k
and
d
k
d
k
(i.e. RR and
PP) needed to
compute the Weiner filter.
How do we surmount this problem?
[
Click for Solution 1 ]
Solution 1
Estimate the statistics
r
xx
l
̂≈1N∑k=0N-1
x
k
x
k
+
l
r
xx
l
1
N
k
0
N
1
x
k
x
k
+
l
r
xd
l
̂≈1N∑k=0N-1
d
k
x
k
-
l
r
xd
l
1
N
k
0
N
1
d
k
x
k
-
l
then solve
Ŵopt=
R-1
̂=
P
̂
W
opt
R
P
[
Hide Solution 1 ]
Problem 2
In many applications, the statistics of
x
k
x
k
,
d
k
d
k
vary slowly with time.
How does one develop an adaptive system which
tracks these changes over time to keep the system near
optimal at all times?
[
Click for Solution 2 ]
Solution 2
Use short-time windowed estiamtes of the correlation
functions.
Equation in Question:
r
xx
l
̂k=1N∑m=0N-1
x
k
-
m
x
k
-
m
-
l
r
xx
l
k
1
N
m
N
1
0
x
k
-
m
x
k
-
m
-
l
r
dx
l
̂k=1N∑m=0N-1
x
k
-
m
-
l
d
k
-
m
r
dx
l
k
1
N
m
N
1
0
x
k
-
m
-
l
d
k
-
m
and
W
opt
k≈R̂k-1P̂k
W
opt
k
R
k
P
k
[
Hide Solution 2 ]
Problem 3
How can
r
xx
k
l
̂
r
xx
k
l
be computed efficiently?
[
Click for Solution 3 ]
Solution 3
Recursively!
r
xx
k
l=
r
xx
k
-
1
l+
x
k
x
k
-
l
-
x
k
-
N
x
k
-
N
-
l
r
xx
k
l
r
xx
k
-
1
l
x
k
x
k
-
l
x
k
-
N
x
k
-
N
-
l
This is critically stable, so people usually do
1-α
r
xx
kl=α
r
xx
k
-
1
l+
x
k
x
k
-
l
1
α
r
xx
l
k
α
r
xx
k
-
1
l
x
k
x
k
-
l
[
Hide Solution 3 ]
Problem 4
how does one choose N?
Tradeoffs
Larger NN → more
accurate estimates of the correlation values →
better
Ŵopt
W
opt
. However, larger NN
leads to slower adaptation.
Note:
The success of adaptive systems depends on
xx,
dd being roughly stationary over
at least NN samples,
N>M
N
M
. That is, all adaptive filtering algorithms
require that the underlying system varies slowly with
respect to the sampling rate and the filter length (although
they can tolerate occasional step discontinuities in the
underlying system).
Computational Considerations
As presented here, an adaptive filter requires computing a
matrix inverse at each sample. Actually, since the matrix
RR is Toeplitz, the linear system
of equations can be sovled with
OM2
O
M
2
computations using Levinson's algorithm, where
MM is the filter length. However,
in many applications this may be too expensive, especially
since computing the filter output itself requires
OM
O
M
computations. There are two main approaches to
resolving the computation problem
- Take advantage of the fact that
Rk+1
R
k
1
is only slightly changed from
Rk
R
k
to reduce the computation to
OM
O
M
; these algorithms are called Fast Recursive
Least Squareds algorithms; all methods proposed so far
have stability problems and are dangerous to use.
-
Find a different approach to solving the optimization
problem that doesn't require explicit inversion of the
correlation matrix.
Note:
Adaptive algorithms involving the correlation matrix are
called Recursive least Squares (RLS)
algorithms. Historically, they were developed after the LMS
algorithm, which is the slimplest and most widely used approach
OM
O
M
.
OM2
O
M
2
RLS algorithms are used in applications requiring
very fast adaptation.
"A good introduction in adaptive filters, a major DSP application."