next up previous contents
Next: 11 asptnlms Up: 4 Transversal and Linear Previous: 9 asptlms   Contents


10 asptmvsslms

Purpose
Sample per sample filtering and coefficient update using the Modified Variable Step Size LMS (MVSSLMS) algorithm.

Syntax
[w,g,mu,y,e]= asptmvsslms(x,w,g,d,mu,roh)
[w,g,mu,y,e]= asptmvsslms(x,w,g,d,mu,roh,mu_min,mu_max)

Description
asptmvsslms() is a more resource efficient version of the Variable Step Size LMS adaptive algorithm, where the vector of step sizes in VSSLMS is replaced by a scalar step size. MVSSLMS does not only adjust the filter coefficients but also adjusts a scalar step size $mu(n)$ to obtain fast convergence rate as well as small final misadjustment, a combination impossible to achieve with constant step size. Referring to the general adaptive filter shown in Fig. 2.6, asptmvsslms() 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 previous step size value $mu(n-1)$, the previous gradient value $g(n-1)$ (used to update $mu$), and returns the filter output $y(n)$, the error sample $e(n)$, the updated gradient vector $g(n)$, the updated step size vector $mu(n)$, and the updated vector of filter coefficients $w(n)$. If the mu_min and mu_max optional input arguments are given, the new step size is constrained to those limits. The update equation of asptmvsslms() is given by
\begin{displaymath}
\vw (n) = \vw (n) + \mu(n) e(n) \vx (n).
\end{displaymath} (34)

The input and output parameters of asptmvsslms() for an FIR adaptive filter of $L$ coefficients are summarized below. Note that the difference between VSSLMS and MVSSLMS is that $mu$ and $g$ in the former are vectors of size $L$ and in the latter are scalars.
Input Parameters [Size] :: 
   x      : input samples delay line [L x 1]
   d      : desired response [1 x 1]
   w      : filter coef. vector w(n-1) [L x 1]
   g      : previous gradient sample g(n-1) [1 x 1]
   mu     : previous step sizes value mu(n-1) [1 x 1]
   roh    : gradient step size [1 x 1]
   mu_min : lower bound for mu [1 x 1]
   mu_max : higher bound for mu [1 x 1]

Output parameters::
   w      : updated filter coefficients w(n)
   y      : filter output y(n)
   g      : updated gradient g(n)
   mu     : updated step size mu(n)
   e      : error sample, e(n)=d(n)-y(n)



Example
Figure 4.11: The adaptive filter coefficients after convergence, the learning curve, and the evolution of the step size for the complex FIR system identification problem using the MVSSLMS algorithm.
% MVSSLMS used in a system identification application.
% By the end of this script the adaptive filter w should
% have the same coefficients as the unknown filter h. 
iter = 5000;                  % Number of samples to process
% Complex unknown impulse response
h    = [.9 + i*.4; 0.7+ i*.2; .5; .3+i*.1; .1];     
xn   = 2*(rand(iter,1)-0.5);  % Input signal, zero mean random.
% although xn is real, dn will be complex since h is complex
dn   = osfilter(h,xn);        % Unknown filter output 
en   = zeros(iter,1);         % vector to collect the error
mu0  = 0.05;                  % initial step size (scalar)
muv  = zeros(iter,1);         % evolution of mu with time
% Initialize the MVSSLMS algorithm with a filter of 10 coef.
[w,x,d,y,e,g,mu] 	= init_mvsslms(10,[],[],[],mu0); 
%% Processing Loop
for (m=1:iter)
   % update the input delay line
   x = [xn(m,:); x(1:end-1,:)];  
   d = dn(m,:) + 1e-3*rand;      % additive noise of var = 1e-6   
   % call MVSSLMS to calculate the filter output, estimation error
   % and update the coefficients and step sizes. 
   [w,g,mu,y,e] = asptmvsslms(x,w,g,d,mu,1e-3,1e-6,.99);
   % save the last error sample to plot later
   en(m,:) = e;  muv(m) = mu;
end;
% display the results
subplot(3,3,1);stem([real(w) imag(conj(w))]); grid;
eb = fftfilt(fir1(5,.05), en .* conj(en));
subplot(3,3,2);plot(10*log10(eb  ));grid
subplot(3,3,3);plot(muv); grid;
Running the above script will produce the graph shown in Fig. 4.11. The left-most graph of the figure shows the adaptive filter coefficients after convergence which are almost identical to the unknown filter h. The middle graph shows the mean square error in dB versus time during the adaptation process, which is usually called the learning curve. The lower limit of the error signal power in the learning curve is defined here by the additive white noise added at the filter output (-60 dB). The right-most graph shows the evolution of the scalar step size with time. Note that the step size increases at the beginning to speed up the convergence then decreases to decrease the final misadjustment.


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

Remarks
Like the LMS, the MVSSLMS is also a stochastic implementation of the steepest-descent algorithm where the mean value of the filter coefficients converge towards their optimal solution. Therefore, the filter coefficients will fluctuate about their optimum values given by the Wiener solution. 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. The improvement the MVSSLMS introduces to the LMS is that the step size is also updated. When the filter coefficients are far from their optimal values, the step size is increased to speed up the convergence. Conversely, when the coefficients are near their optimal values, the step size is decreased to decrease the final misadjustment. Similar to the LMS, the following points also apply to the MVSSLMS.
  • The MVSSLMS algorithm shows stable convergence behavior only when the step size $mu(n)$ takes a value between zero and an upper limit, at all time indexes n, 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 eigenvalues 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 eigenvalue spread for such colored signals. This makes the convergence composed of several modes, each associated with one of the eigenvalues.
  • asptmvsslms() supports both real and complex data and filters. The adaptive filter for the complex MVSSLMS algorithm converges to the complex conjugate of the optimum solution.
  • asptmvsslms() does not update the input delay line for $x(n)$, this has been chosen to provide more flexibility, so that the same function can be used with transversal as well as linear combiner structures. 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 asptmvsslms() as in the example above.



Resources
The resources required to implement the MVSSLMS 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 $2L + 4$
MULTIPLY $3L + 3$
ADD $3L + 1$
DIVIDE 0

See Also
INIT_ MVSSLMS, MODEL_ MVSSLMS, ASPTVSSLMS, ASPTNLMS, ASPTLMS, ASPTLCLMS.

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


next up previous contents
Next: 11 asptnlms Up: 4 Transversal and Linear Previous: 9 asptlms   Contents