An adaptive filter is one which changes with time to accommodate itself to changes in the time series being filtered. For example, suppose one were predicting one point ahead in a time series. One could take a lot of past data to design the filter; then one could apply the filter to present incoming data to predict future incoming data.

Below is a
computer program to do the Burg algorithm.
The program follows the notation of the text.
The data *X* is a vector of dimension given to be *LX*.
Choice of is a compromise between high resolution
and high scatter. The density of points on the frequency axis,
which is controlled by , is chosen for plotting
convenience and should be great enough to resolve narrow
spectral lines.

SUBROUTINE BURGC (LX,X,EP,EM,LC,C,A,N2048,S) C GIVEN A TIME SERIES X(1...LX) GET ITS LOG SPECTRUM S(1...N2048) DIMENSION X(LX),EP(LX),EM(LX),C(LC),A(LC),S(N2048) COMPLEX X,EP,EM,C,A,S,TOP,BOT,EPI,CONJG,CLOG DO 10 I=1,N2048 10 S(I)=O. A(1)=1. DO 20 I=1,LX EM(I)=X(I) 20 EP(I)=X(I) DO 60 J=2,LC TOP=0. BOT=0. DO 30 I=J,LX BOT=BOT+EP(I)*CONJG(EP(I))+EM(I-J+1)*CONJG(EM(I-J+1)) 30 TOP=TOP+EP(I)*CONJG(EM(I-J+1)) C(J)=2*TOP/BOT DO 40 I=J,LX EPI=EP(I) EP(I)=EP(I)-C(J)*EM(I-J+1) 40 EM(I-J+1)=EM(I-J+1)-CONJG(C(J))*EPI A(J)=0. DO 50 I=1,J 50 S(I)=A(I)-C(J)*CONJG(A(J-I+1)) DO 60 I=1,J 60 A(I)=S(I) CALL FORK(N2048,S,+1.) DO 70 I=1,N2048 70 S(I)=-CLOG(S(I))*2. RETURN END

As time goes on it might become desirable to
recompute the filter on the basis of new data which have come in.
How often should the filter be redesigned?
In concept,
there is no reason why it should not be recomputed very often,
perhaps after each new data point arrives.
In practice,
this is usually prohibitively expensive.
For a filter of length *n* it requires *n* multiplies
and adds to apply the filter to get one new output point.
To recompute the filter with Levinson recursion
requires about *n ^{2}* multiply-adds.
However, it is usually expected that the filter need
only be changed by a very small amount when a new data
point arrives.
For that reason we will give the Widrow
adaptive-filter algorithm which modifies the filter by
means of only

For definiteness,
consider a two-term prediction situation
where *e*_{t} is the error in predicting a time series
*x*_{t} from two of its past values

(19) |

(20) |

7-2
The sign of the partial derivative
tells whether or Figure 1 |

From (20) we have

(21) |

(22) |

There are many variations on these same ideas.
For example,
we could use the *L _{1}* norm and minimize something like

(23) |

(24) |

(25) |

(26) |

(27) |

(28) |

- If
*x*_{t}has physical dimensions of volts, what should be the physical dimensions for*k*? If*x*_{t}has an rms value of 100 V and ,the sampling interval, is 1 ms, what numerical value of*k*will allow the Widrow filter to adapt to new conditions in about a second? - Consider the time series
.Consider self-prediction of the form
*x*_{t+1}=*cx*_{t}. What are the results of least-squares prediction? What are the results of*L*norm prediction of data weighted and uniformly weighted types?_{1}

10/30/1997