Geoscience Reference
In-Depth Information
Fig. 6.6
Schematic of an adaptive i lter. Each iteration involves a new estimate of the i lter
weights
W
i
+1
based on the previous set of i lter weights
W
i
plus a term that is the product of
a bounded step size
u
, a function of the i lter input
X
i
, and a function of the error
e
i
. In other
words, error
e
i
calculated from the previous step is fed back into the system to update i lter
coei cients for the next step (modii ed from Trauth 1998).
In the following example introducing the use of the function
canc
, each
of these loops is called an iteration, and many of these loops are required
if optimal results are to be achieved. h is algorithm extracts the noise-
free signal from two vectors,
x
and
s
, containing the correlated signals and
uncorrelated noise. As an example we generate two signals
yn1
and
yn2
containing the same sine wave but dif erent Gaussian noise.
clear
x = 0 : 0.1 : 100; x = x';
y = sin(x);
rng(0)
yn1 = y + 0.5*randn(size(y));
yn2 = y + 0.5*randn(size(y));
plot(x,yn1,x,yn2)
h e algorithm
canc
formats both signals, feeds them into the i lter loop,
corrects the signals for phase shit s, and formats the signals for the output.
h e required inputs are the signals
x
and
s
, the step size
u
, the i lter length
l
and the number of iterations
iter
. In our example the two noisy signals are
yn1
and
yn2
. We make an arbitrary choice of a i lter with
l=5
i lter weights. A
value of
u
in the range of 0 <
u
< l/ʻ
max
, where ʻ
max
is the largest eigenvalue of
the autocorrelation matrix for the reference input, leads to reasonable results
(Haykin 1991) (Fig. 6.7). h e value of
u
is computed using
k = kron(yn1,yn1');
u = 1/max(eig(k))
where
kron
returns the Kronecker tensor product of
yn1
and
yn1'
(which is
a matrix formed by taking all possible products between the elements of
yn1