next up previous contents
Next: 9 init_ ftrls Up: 5 Lattice Adaptive Algorithms Previous: 7 asptrlslbpef   Contents


8 asptrlslfpef

Purpose
Implements the adaptive RLS Lattice Forward Prediction Error Filter.

Syntax
[ff,bb,fb,cf,b,y,e,kf,kb,c]=asptrlslfpef(ff,bb,fb,cf,b,a,x)



Description
Figure 5.14: Block diagram of the forward prediction error filter.
asptrlslfpef() is a lattice implementation of the forward prediction error filter shown in Fig. 5.14. asptrlslfpef() updates the PARCOR coefficients of the lattice predictor by minimizing the backward and forward prediction errors in the recursive least squares sense. The forward prediction error of the last lattice stage is returned as the error signal $e(n)$ of the prediction error filter. If the number of output arguments are more than 9, the coefficients of the equivalent transversal prediction error filter are also calculated and returned in the variable $c$ such that $e(n) = [1; -\vc ]^T \; \vx (n-1)$; where $[1; -\vc ]^T$ represents the impulse response between the PEF output e(n) and its input x(n) and $\vx (n-1)$ is the input signal delay line delayed by one sample.


\epsfig{file=/home/john/winD/docs/aspt/aspt/figs/predict.eps,width=.8\textwidth}
The input and output parameters of asptrlslfpef() of $L$ stages are summarized below.
Input Parameters:: 
   ff  : last autocorrelation of forward prediction error (f)
   bb  : last autocorrelation of backward prediction error (b)
   fb  : last crosscorrelation of f and b 
   cf  : last conversion factor vector
   b   : last backward prediction error vector
   a   : forgetting factor
   x   : newest input sample x(n)
Output parameters::
   ff  : updated autocorrelation of forward prediction error 
   bb  : updated autocorrelation of backward prediction error 
   fb  : updated crosscorrelation of f and b 
   cf  : updated conversion factor vector
   b   : updated backward prediction error vector
   y   : linear combiner output 
   e   : forward prediction error 
   kf  : updated forward lattice coefficients kf(n)
   kb  : updated backward lattice coefficients kb(n)
   c   : equivalent transversal forward predictor coefficients.

Example
% RLSLFPEF used in a adaptive line enhancer application.
% By the end of this script, the backward prediction error 
% is the wide-band signal and the output of the equivalent 
% transversal predictor is the narrow-band signal.

iter = 5000;
t    = (1:iter)/1000;           % time index @ 1kHz
xn   = 2*(rand(iter,1)-0.5)  ;  % Input signal, zero mean random.
xn   = xn + 1 * cos(2*pi*50*t');
yn   = zeros(iter,1);           % narrow-band signal
en   = yn;                      % error signal

% Initialize RLSLFPEF
M    = 10;                      % filter length
a    = 0.99;                    % forgetting factor
[ff,bb,fb,cf,b,y,e,kf,kb] = init_rlslfpef(M);   

%% Processing Loop
for (m=1:iter)
   x = xn(m);
   [ff,bb,fb,cf,b,y,e,kf,kb,c]=asptrlslfpef(ff,bb,fb,cf,b,a,x);
   yn(m,:) = y;              % save narrow-band
   en(m,:) = e;              % save wide-band
end;

% Transfer function between e(n) and x(n-L).
h = filter([ 1;(-c)],1,[1; zeros(1023,1)]);
f = (0:512)*500/512;
H = 20*log10(abs(fft(h)));
% display the results
subplot(2,2,1);plot(f,H(1:513,:)); grid;
subplot(2,2,2);
plot([yn(4800:5000)]);grid
Running the above script will produce the graph shown in Fig. 5.15. The left side graph of the figure shows the frequency response of the equivalent transversal prediction error filter after convergence. This frequency response shows that the predictor adjusts itself to pass the narrow-band signal at 50 Hz and attenuate all other input components so that the error signal contains the wide-band signal only. The right side graph shows the last 200 samples of the filter output which shows that the filter output coincide with the narrow-band 50 Hz superimposed on the white noise input signal.



Figure 5.15: The frequency response of the PEF after convergence and the filter output for the adaptive line enhancer using RLSLFPEF.


\epsfig{file=/home/john/winD/docs/aspt/aspt/figs/rlslfpefex1.eps,width=0.9\textwidth}

Algorithm
asptrlslfpef() performs the following operations
  • Calculates the backward (bb) and forward (ff) autocorrelations for each lattice stage,
  • Calculates the crosscorrelation (fb) between forward and backward prediction errors for each lattice stage,
  • Calculates the forward and backward prediction errors for the lattice structure stages using the order update equations,
  • Updates the forward and backward PARCOR coefficients of the lattice predictor and the conversion factor $e_{bn}/e_{b(n-1)}$,
  • Evaluates the error signal and equivalent transversal predictor output,
  • Evaluates the equivalent transversal predictor coefficients if required.

Remarks
The adaptive Lattice Prediction Error Filter is a useful tool in linear prediction and autoregressive modeling applications. The following remarks apply to the RLS lattice forward prediction error filter:
  • Unlike the LMS LFPEF, the forward and backward lattice prediction coefficients of the same lattice stage are not equal.
  • The linear combiner coefficients are optimized sequentially starting with $c_1$ and ending with $c_M$.
  • The backward prediction errors $e_{b0}(n), e_{b1}(n), \cdots, e_{bM}(n)$ are uncorrelated with one another for any input sequence $x(n)$. This property is very important since it shows that the lattice predictor can be seen as an orthogonal transformation with the input signal samples $x(n), x(n-1), \cdots, x(n-M+1)$ as input and the backward errors $e_{b0}(n), e_{b1}(n), \cdots, e_{bM}(n)$ as the uncorrelated (orthogonal) output.
  • The power of the prediction error decreases with increasing predictor order. The error power decrease is controlled by the magnitude of the PARCOR coefficients. The closer the value of a PARCOR coefficient to unity, the higher the contribution of its stage in reducing the prediction error. The first few stages usually have PARCOR coefficients of high magnitudes. The magnitude of the coefficients decreases with increasing stage number.



Resources
The resources required to implement the RLSLFPEF of $L$ stages in real time is given in the table below. The computations given are those required to process one sample.


MEMORY $8L + 3$
MULTIPLY $10L $
ADD $7L $
DIVIDE $7L$

See Also
INIT_ RLSLFPEF, PREDICT_ RLSLFPEF, ASPTRLSLBPEF, ASPTRLSLATTICE.

Reference
[2] and [4] for analysis of the adaptive Lattice filters.


next up previous contents
Next: 9 init_ ftrls Up: 5 Lattice Adaptive Algorithms Previous: 7 asptrlslbpef   Contents