| 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 asptlclms() takes an input samples delay line asptlclms() is given by
asptlclms() for an FIR adaptive filter of 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 |
%% 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 resultRunning 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
|
| Algorithm |
The current implementation of asptlclms() performs the following operations
|
| 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
|
| Resources |
The resources required to implement the LCLMS algorithm for a transversal adaptive FIR filter of
|
| 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. |