Home > complex-toolbox > ACLMS > aclms.m

aclms

PURPOSE ^

FUNCTION aclms() implements the Augmented CLMS (ACLMS) algorithm

SYNOPSIS ^

function y = aclms(x,N,mu)

DESCRIPTION ^

 FUNCTION aclms() implements the Augmented CLMS (ACLMS) algorithm
 Based on the paper "The Augmented Complex Least Mean Square Algorithm With Application To Adaptive Prediction Problems" Proc. 1st IARP Workshop on Cognitive Information Processing, 2008, 54-57

 INPUT:
 x: input signal 
 N: filter length
 mu: step-size

 OUTPUT:
 y: filter output

 Complex Valued Nonlinear Adaptive Filtering toolbox for MATLAB
 Supplementary to the book:
 
 "Complex Valued Nonlinear Adaptive Filters: Noncircularity, Widely Linear and Neural Models"
 by Danilo P. Mandic and Vanessa Su Lee Goh
 
 (c) Copyright Danilo P. Mandic 2009
 http://www.commsp.ee.ic.ac.uk/~mandic
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You can obtain a copy of the GNU General Public License from
    http://www.gnu.org/copyleft/gpl.html or by writing to
    Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 ...........................................

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % FUNCTION aclms() implements the Augmented CLMS (ACLMS) algorithm
0002 % Based on the paper "The Augmented Complex Least Mean Square Algorithm With Application To Adaptive Prediction Problems" Proc. 1st IARP Workshop on Cognitive Information Processing, 2008, 54-57
0003 %
0004 % INPUT:
0005 % x: input signal
0006 % N: filter length
0007 % mu: step-size
0008 %
0009 % OUTPUT:
0010 % y: filter output
0011 %
0012 % Complex Valued Nonlinear Adaptive Filtering toolbox for MATLAB
0013 % Supplementary to the book:
0014 %
0015 % "Complex Valued Nonlinear Adaptive Filters: Noncircularity, Widely Linear and Neural Models"
0016 % by Danilo P. Mandic and Vanessa Su Lee Goh
0017 %
0018 % (c) Copyright Danilo P. Mandic 2009
0019 % http://www.commsp.ee.ic.ac.uk/~mandic
0020 %
0021 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0022 %    This program is free software; you can redistribute it and/or modify
0023 %    it under the terms of the GNU General Public License as published by
0024 %    the Free Software Foundation; either version 2 of the License, or
0025 %    (at your option) any later version.
0026 %
0027 %    This program is distributed in the hope that it will be useful,
0028 %    but WITHOUT ANY WARRANTY; without even the implied warranty of
0029 %    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0030 %    GNU General Public License for more details.
0031 %
0032 %    You can obtain a copy of the GNU General Public License from
0033 %    http://www.gnu.org/copyleft/gpl.html or by writing to
0034 %    Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.
0035 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0036 % ...........................................
0037 function y = aclms(x,N,mu)
0038 
0039 M = 1;% prediction horizon
0040 L = length(x)-M;
0041 filterinput = zeros(N,L); 
0042 WLMS = zeros(N,1); % weight vector of standard input vector
0043 AWLMS = zeros(N,1); % weight vector of conjugate input vector
0044 eALMS = zeros(1,L); % error
0045 filteroutput = zeros(1,L); 
0046 
0047 for i = 1:L
0048     for m = 1:N
0049         if (i-m+1)>0
0050             filterinput(m,i) = x(1,i-m+1);
0051         else
0052             filterinput(m,i) = 0;
0053         end
0054     end% inputing FIR
0055     conjinput = conj(filterinput);
0056     filteroutput(i) = transpose(filterinput(:,i)) * WLMS + transpose(conjinput(:,i)) * AWLMS;% filter output
0057     eALMS(i) = x(1,i+M) - filteroutput(i);
0058     WLMS = WLMS + mu * eALMS(i) * conj(filterinput(:,i));% weight update of standard input vector
0059     AWLMS = AWLMS + mu * eALMS(i) * conj(conjinput(:,i));% weight update of conjugate input vector
0060 end
0061 y = filteroutput;

Generated on Tue 21-Apr-2009 19:50:21 by m2html © 2003