Forums

1.15 LMS problem ...please help

Started by rahul October 12, 2003
Hi friends,

I am running an 1 tap complex tracker with an adaptive weight using a 
LMS
algorithm. 

u-input
d-ideal points
y-filtered points
w- coefficient

y(i)=w*(i).u(i)
e(i)=d(i)-y(i)
w(i+1)=w(i)+mu.e(i).u(i)

mu=0.01

The floating point algorithm works well with this value of mu. I have
done a matlab fixed point 1.15 and 1.31 implementation of the above ,
and find that it is a poor tracker with the value of mu =0.01 . Upon
changing the value to 0.1, i find that it works fine. I am wondering
why this should happen with the fixed point simulation.

Can anyone explain as to why this is happening or is there anything
else i should  take into consideration.?

Thanks for ur inputs.

rahul.
rahul wrote:
> Hi friends, > > I am running an 1 tap complex tracker with an adaptive weight using a > LMS > algorithm. > > u-input > d-ideal points > y-filtered points > w- coefficient > > y(i)=w*(i).u(i) > e(i)=d(i)-y(i) > w(i+1)=w(i)+mu.e(i).u(i) > > mu=0.01 > > The floating point algorithm works well with this value of mu. I have > done a matlab fixed point 1.15 and 1.31 implementation of the above , > and find that it is a poor tracker with the value of mu =0.01 . Upon > changing the value to 0.1, i find that it works fine. I am wondering > why this should happen with the fixed point simulation. > > Can anyone explain as to why this is happening or is there anything > else i should take into consideration.? > > Thanks for ur inputs. > > rahul.
One thing to remember for fixed point implementations is that the order of multiplications is important when you quantize between the multiplications (which I assume you are doing here). It would be interesting to see in which order you do the mu.e(i).u(i) term. You might find that doing mu.(e(i).u(i)) will improve your performance. Also running normalized (higher mu for smaller values of u(i)) can improve the performance. -- Brian Dam Pedersen DSP Software Engineer