We use a fixed delay D in between the primaryinput signal and the reference input as
shown in Figure 8.7. If we choose a long enough delay, we can de-correlate the broadband
components at the reference input from those at the primarysignal. The adaptive filter
output y(n) will be the narrowband signal because its periodic nature still keeps them
correlated. If the narrowband components are desired, the filter output y(n) is used as the
system output. On the other hand, if the broadband signal is corrupted by a narrowband
noise, the adaptive filter will reduce the narrowband interference bysubtracting the
estimated narrowband components from the primarysignal. Thus the error output e(n)
is used as the system output that consists of broadband signal.
In the experiment, we use the white noise as the broadband signal. Since the white
noise is uncorrelated, the delay D 1 is chosen. The adaptive predictor operation is
implemented as follows:
1. Compute the FIR filter output
nxn À l À 1:
2. Calculate the error signal
en xn À yn:
3. Update the adaptive filter coefficients
n 1 w
n menxn À l À 1, l 0, 1, . . . , L À 1:
4. Update the signal buffer for adaptive filter and place the new sample into the buffer
xn À l À 1 xn À l, l L À 1, . . . , 1,
The adaptive predictor written in floating-point C is given in Table 8.5. The fixed-
point implementation using the intrinsics can be implemented and compared against the
floating-point implementation. Finally, the assembly routine can be written to maximize
the run-time efficiencyand minimize the program memoryspace usage. The adaptive
predictor using the leakyLMS algorithm written in the C55x assmeblylanguage is listed
in Table 8.6.
In practice, it is preferred to initialize the adaptive filter coefficients to a known state.
The initialization can be done in two ways. If we know statistical characteristics of the
system, we can preset several adaptive filter coefficients to some predetermined value.
Using the preset values, the adaptation process usuallyconverges to the steadystate at a
faster rate. However, if we do not have anyprior knowledge of the system, a common
practice is to start the adaptive process byinitializing the coefficients to 0. The function
init.c listed in Table 8.3 is used to set both the coefficient and signal buffers to 0 at
the beginning of the adaptive process.
EXPERIMENTS USING THE TMS320C55X