-1

For example, if an equalizer model experiences a delay due to its processing, the equalizer may misinterpret the boundaries between the equalized symbols it outputs and, therefore, return meaningless results. enter image description here

How to align the output data by finding the right delay?

Here a example of a simple equalizer implemented in matlab:

clc; clear all; N = 1e3; MQAM = 2;

d = randi([0 1],N,1);
x = qammod(d,MQAM,'gray','InputType','bit');
h = [0.1 0.5, 0.1 0.2];
r = awgn(complex(filter(h, 1, x), zeros(size(x))), 10, 'measured');

eq = comm.DecisionFeedbackEqualizer;
eq.Constellation = qammod(0:1, 2);
eq.StepSize = maxstep(eq,r);
eq.ReferenceTap = 2;

[y,e,w] = eq(r, x);

dec = qamdemod(y,MQAM,'gray','OutputType','bit');

errors = sum( dec~= d)

How to have dec and d align, in order word what is the delay ?

1 Answers1

0

There are several ways to handle this, and specific details would depend on the equalization approach- but in post-processing applications with least squared equalizer solutions I either do a cross-correlation of the received and transmitted signal to understand both the overall delay as well as the delay spread, since using an equalizer span that exceeds the delay spread results in noise enhancement. Another approach I take is to just use a much longer span in the equalizer and then from the equalizer solution I can see where the dominant taps are, and from that understand both the delay and delay spread and narrow the equalizer span accordingly.

See example code implementations here where the equalizer span was set to assume dominant taps in the center (so was zero padded before and after), and this post demonstrates further the effect of delay:

Compensating Loudspeaker frequency response in an audio signal

And here where 0 delay was assumed since the equalizer approach was used to determine the delay specifically:

How determine the delay in my signal practically

Dan Boschen
  • 50,942
  • 2
  • 57
  • 135