next up previous contents
Next: 9 asptlms Up: 4 Transversal and Linear Previous: 7 asptleakynlms   Contents


8 asptlclms

Purpose
Sample per sample filtering and coefficient update using the Linearly Constrained LMS (LCLMS) algorithm.

Syntax
[w,y,e]= asptlclms(x,w,d,mu,c,a)

Description
asptlclms() implements the LMS adaptive algorithm used to update a transversal adaptive filters $\vw $ subject to the linear constraint $\vc ^H \vw = a$. Referring to the general adaptive filter shown in Fig. 2.6, asptlclms() takes an input samples delay line $x(n)$, a desired sample $d(n)$, the vector of the adaptive filter coefficients from previous iteration $w(n-1)$, the step size $mu$, and returns the filter output $y(n)$, the error sample $e(n)$ and the updated vector of filter coefficients $w(n)$. The partial update equation of asptlclms() is given by
\begin{displaymath}
\vw (n) = \vw (n) + (\mu) e(n) \vx (n).
\end{displaymath} (31)

The linear constraint is then applied to the updated coefficients. An interesting case occurs when the desired signal is set to zero (blind adaptation) and the linear constraint is used to control the adaptation. This case is used in adaptive array signal processing to produce a beam in a certain look direction. The input and output parameters of asptlclms() for an FIR adaptive filter of $L$ coefficients are summarized below.
Input Parameters:: 
   x   : vector of input samples at time n
   w   : vector of filter coefficients w(n-1)
   d   : desired response d(n)
   mu  : adaptation constant
   c   : the weighting vector in the constraint equation
   a   : a scalar constant
Output parameters::
   w   : updated filter coefficients w(n)
   y   : filter output y(n)
   e   : error signal; e(n)=d(n)-y(n)

Example
% LCLMS used in a 2-element lambda/2 beam former application at
% baseband frequency. The desired signal coming from angle 0 deg 
% and a jammer from angle P=30 deg.
iter = 5000;                  % samples to process
P    = 30;                    % Jammer angle of arrival
D    = pi * sin(pi*P/180);    % delay (L=lambda/2)
xn   = rand(iter,1);          % signal
nn   = rand(iter,1);          % Jammer
c    = [1 ; 1];               % linear constraint vector
a    = 1;                     % linear constraint scalar
% Initialize the LCLMS algorithm with a filter of 2 coef.
[w,x,d,y,e] = init_lclms(2); 
d = 0;                        % no desired is needed



Figure 4.9: Sensitivity pattern for a 2-element adaptive array using LCLMS.
%% Processing Loop
for (m=1:iter)
   x(1)    = xn(m)+nn(m);            % element-1 input
   x(2)    = xn(m)+nn(m)*exp(-j*D);  % element-2 input      
   [w,y,e] = asptlclms(x,w,d,0.05,c, a);
end;
% Plot the resulting sensitivity pattern
th	= 2*pi*[0:0.001:1];
PG = zeros(size(th));
for k = 1:length(th)
  D     = pi * sin(th(k));  % delay in rad
  x(1)  = 1 ;               % test signal at element-1      
  x(2)  = exp(-j* D ) ;     % and at element-2
  e     =  d - w' * x;      % error
  PG(k) = (e.*conj(e));     % Power Gain
end;
polar(th,(PG));             % Plot result
Running the above script will produce the graph shown in Fig. 4.9. It is clear from this sensitivity pattern that the array tries to reduce the jammer signal in the array output by producing a spatial notch at the angle of arrival of the jammer, which is $30^{\circ}$ in the above example.


\epsfig{file=/home/john/winD/docs/aspt/aspt/figs/lclmsex1.eps,height=6cm}


Algorithm
The current implementation of asptlclms() performs the following operations
  • Filter the input signal $x(n)$ through the adaptive filter $w(n-1)$ to produce the filter output $y(n)$.
  • Calculates the error sample $e(n) = d(n) - y(n)$.
  • Updates the adaptive filter coefficients using the error $e(n)$ and the input samples $x(n)$ resulting in $w(n)$.
  • Applies the linear constraint on the newly calculated filter coefficients.

Remarks
The LCLMS algorithm is a stochastic implementation of the steepest-descent algorithm where the mean value of the filter coefficients converge towards their constrained solution given by
\begin{displaymath}
\vw _c = \vw _{opt} + \frac{(a - \vw _{opt}^H \vc )* \mR ^{-1} \vc }{\vc ^H \mR ^{-1} \vc }.
\end{displaymath} (32)

where $\vw _{opt}$ is the optimum unconstrained solution. The filter coefficients will fluctuate about their optimum values given above. The amplitude of the fluctuations is controlled by the step size. The smaller the step size, the smaller the fluctuations (less final misadjustment) but also the slower the adaptive coefficients converge to their optimal values. Note also the following.
  • The LCLMS algorithm shows stable convergence behavior only when the step size $mu$ (convergence constant) takes a value between zero and an upper limit defined by the statistics of the filter's input signal. The fastest convergence will be achieved for a white noise input sequence with zero mean and unit variance. Such white input signal has all its eigen values equal to unity and therefore has a diagonal autocorrelation matrix with diagonal values equal to unity.
  • The more colored the spectrum of the input signal, the slower the convergence will be. This is due to the large eigen value spread for such colored signals. This makes the convergence composed of several modes, each associated with one of the eigen values.
  • asptlclms() supports both real and complex data and filters. The adaptive filter for the complex LCLMS algorithm converges to the complex conjugate of the optimum solution.
  • asptlclms() does not update the input delay line for $x(n)$, this has been chosen to provide more flexibility. Delay line update, by inserting the newest sample at the beginning of the buffer and shifting the rest of the samples to the right, has to be done before calling asptlclms().



Resources
The resources required to implement the LCLMS algorithm for a transversal adaptive FIR filter of $L$ coefficients in real time is given in the table below. The computations given are those required to process one sample.


MEMORY $3L + 5$
MULTIPLY $6L $
ADD $6L-2$
DIVIDE 1


See Also
INIT_ LCLMS, BEAMBB_ LCLMS, ASPTLMS.

Reference
[11] for extensive analysis of the LMS and the steepest-descent search method. [2] for the Linearly Constrained LMS.


next up previous contents
Next: 9 asptlms Up: 4 Transversal and Linear Previous: 7 asptleakynlms   Contents