Started by 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

```