From: Fender123 on
Hi all,
I have a question on timing adjustment and equalizers, and in my case the
application is for a simple low speed PSK modem.

I am using a half-symbol spaced passband complex equalizer, so basically we
are pumping samples at B/2 (B is the baud rate). There is no preceeding
interpolator,
and the sample rate is not locked to the symbol rate.

Now, I am also using a Gardner-type timing error detector, and infrequently
(like 1 sample per 1000) we need to advance or retard by one sample.

When this happens, it is clear that the normal half-symbol step
incrementation to the carrier phase has to be also fractionally adjusted.
Also, the symbols in the equalizer delay line have to be partially rotated
so that they all make sense with the new clock phase.

My problem is that it appears that when this +/-1 sample adjustment is
done, despite the above, a partial loss of equalization results, not enough
to corrupt symbols but visibile none the less. After some time the
equilizer settles again.


What am I missing?
I suspect need to do something more to the equalizer memory elements, or
maybe to the equalizer coefficients.

Any insights into this issue?
Thanks,
Brian.


From: Vladimir Vassilevsky on


Fender123 wrote:
> Hi all,
> I have a question on timing adjustment and equalizers, and in my case the
> application is for a simple low speed PSK modem.
>
> I am using a half-symbol spaced passband complex equalizer, so basically we
> are pumping samples at B/2 (B is the baud rate). There is no preceeding
> interpolator,
> and the sample rate is not locked to the symbol rate.

You are doing things in awfully awkward way.

> Now, I am also using a Gardner-type timing error detector, and infrequently
> (like 1 sample per 1000) we need to advance or retard by one sample.

The equalizer adaptation would try to compensate for timing and carrier
errors. You won't see any error at Gardner until equalizer will ran out
of compensation.

> When this happens, it is clear that the normal half-symbol step
> incrementation to the carrier phase has to be also fractionally adjusted.
> Also, the symbols in the equalizer delay line have to be partially rotated
> so that they all make sense with the new clock phase.
>
> My problem is that it appears that when this +/-1 sample adjustment is
> done, despite the above, a partial loss of equalization results, not enough
> to corrupt symbols but visibile none the less. After some time the
> equilizer settles again.

> What am I missing?
> I suspect need to do something more to the equalizer memory elements, or
> maybe to the equalizer coefficients.
>
> Any insights into this issue?

Before doing anything with equalizer, lock the sample rate to symbol speed.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com

From: Fender123 on
Vlad, thanks for commenting.

I should have mentioned that this whole thing is working quite well, and I
am just refining it. I am aware of alternate signal chains and using an
upstream interpolator to lock the sample rate to symbol clock first and
foremost, etc.

I am also aware that the equalizer can compensate for the timing error,
indeed if I open the timing loop, I can see the impulse response in the
taps drifting until it falls off the end, as expected. But the equalizer's
main job here is to compensate for the non-changing impulse response of the
channel. That it also does fine timing adjustment is just an added bonus.

Regarding the (modified) Gardner timing error detector after the equalizer,
I do get a continous usable output, and the whole arrangement does keep the
typical unit impulse of the response centered, as intended.

So, to repeat my question, if I do retard/advance one sample to adjust the
timing, what would one expect needs to be done to existing data in the
half-symbol-spaced passband equalizer memory elements and taps to prevent a
disturbance?

Apart from rotating the symbols in the memory elements, perhaps a timeshift
of the taps is needed to realign/undo the fine timing adaptation (by fine I
mean a fraction of a sample).

Or perhaps as number of samples per half-symbol drops from 8 to 3 or 2, one
might be better off moving from classic half symbol spaced to a
sample-spaced equalizer.

Any further thoughts on my original question appreciated.
Brian.

From: steveu on
>Vlad, thanks for commenting.
>
>I should have mentioned that this whole thing is working quite well, and
I
>am just refining it. I am aware of alternate signal chains and using an
>upstream interpolator to lock the sample rate to symbol clock first and
>foremost, etc.
>
>I am also aware that the equalizer can compensate for the timing error,
>indeed if I open the timing loop, I can see the impulse response in the
>taps drifting until it falls off the end, as expected. But the
equalizer's
>main job here is to compensate for the non-changing impulse response of
the
>channel. That it also does fine timing adjustment is just an added bonus.
>
>Regarding the (modified) Gardner timing error detector after the
equalizer,
>I do get a continous usable output, and the whole arrangement does keep
the
>typical unit impulse of the response centered, as intended.
>
>So, to repeat my question, if I do retard/advance one sample to adjust
the
>timing, what would one expect needs to be done to existing data in the
>half-symbol-spaced passband equalizer memory elements and taps to prevent
a
>disturbance?
>
>Apart from rotating the symbols in the memory elements, perhaps a
timeshift
>of the taps is needed to realign/undo the fine timing adaptation (by fine
I
>mean a fraction of a sample).
>
>Or perhaps as number of samples per half-symbol drops from 8 to 3 or 2,
one
>might be better off moving from classic half symbol spaced to a
>sample-spaced equalizer.
>
>Any further thoughts on my original question appreciated.
>Brian.

You can play interesting games for hours, where you let the equaliser drift
along until it reaches a whole step from it starting position, detect this,
and then shuffle everything back by a step. Its fun to play around with.
Then there's what you do for a robust product..... :-)

Why don't you just lock down the symbol timing down with something like a
Farrow filter controlled by your Gardner detector? You know in your heart
it makes sense.

Steve