From: lroberto on
Hi experts,
I am a usual ng lurker but now it is time to make my first question, as I
am stuck on a lms-dfe implementation issue.

I use the textbook equations (implemented in Scilab) to estimate, via LMS,
the filters coefficients.

I do a classical LMS to estimate the fwd filter coeffs, still being in
training mode, so I have:

d=known desired signal (training sequence)
X=input to the equalizer (training sequence conv the channel)

err(k) = d(k) - fwd(k-1)*X(k)
fwd(k) = fwd(k-1) + delta*err(k)*X(k)

Afterwards I need to design the coeffs of the back filter, for which I
still use LMS but using the known input signal as output signal. So I set
up another LMS loop like this:

err(k) = d(k) - back(k-1)*X(k)
back(k) = back(k-1) + delta*err(k)*D(k)

Well what I get is: a very good fwd filter, but a very bad back filter.
I.e. the fwd filter already gives an output signal that resembles well the
desired one (well it is classical LMS...) but when I add the back I get
very bad stuff:

equalized=conv(x,fwd) --> this is OK, classical LMS

isi = conv(d,back)
equalized=equalized + isi --> this gives a bad signal

"isi" should resemble the post-isi in dfe algo, but comes out a very high
value, like if the back filter would have been badly calculated. Any hint
guys, what am I missing?

Thanks in advance
Roberto