<< Chapter < Page | Chapter >> Page > |
As with the matrix approach, the default channel
b=[0.5 1 -0.6]
can be equalized easily with
a short equalizer (one with a small
n
).
The convergent values of the
f
are very close to the final values of
the matrix approach; that is, for a given channel,the value of
f
given by
LMSequalizer.m
is very close
to the value found using
LSequalizer.m
.
A design consideration in the adaptive approach toequalization involves the selection of the stepsize.
Smaller stepsizes
mean that the trajectory
of the estimates is smoother (tends to reject noises better)but it also results in a slower convergence and slower
tracking when the underlying solution is time varying.Similarly, if the explicit averaging operation is retained,
longer averages imply smoother estimates but slowerconvergence.
Similar tradeoffs appear in the block approach in the choiceof block size: larger blocks average the noise better, but
give no details about changes in the underlying solution withinthe time span covered by a block.
The following code
EqualizerTest.m
shows one way
to verify that the equalizer has (or has not)done a good job. The code generates
a new received signal and passes it through the same channeland the final converged equalizer from
LMSequalizer.m
.
The decision sequence
dec
(the sign of the data for a binary transmission)
is then compared to the original transmitted data
s
.
Since the delay of the equalizer cannot be known beforehand,the loop on
sh
tests all the
possible delays (shifts) that might occur.If one of these is zero (or very small) then the equalizer
is doing a good job.
% First run LMSequalizer.m to set channel b
% and equalizer ffinaleq=f; % test final filter f
m=1000; % new data pointss=pam(m,2,1); % new binary source of length m
r=filter(b,1,s); % output of channelyt=filter(f,1,r); % use final filter f to test
dec=sign(real(yt));% quantization
for sh=0:n % if equalizer is working, one% of these delays has zero error
err(sh+1)=0.5*sum(abs(dec(sh+1:end)... -s(1:end-sh)));
end
EqualizerTest.m
verify the operation of an equalizer f for the channel b
(download file)
This trained adaptive approach, along with several others,
is implemented in the program
dae.m
, which is
available on the website.Simulated examples of LMS with training and
other adaptive equalization methods arepresented in
"Examples and Observations" .
Verify that, by proper choice of
n
and
delta
, the convergent values of
f
in
LMSequalizer.m
are close to the values
shown in
[link] .
What happens in
LMSequalizer.m
when the stepsize
parameter
mu
is too large? What happens when it is too
small?
Add (uncorrelated, normally distributed) noise into
the simulation using the command
r=filter(b,1,s)+sd*randn(size(s))
.
sd
you can add, and still have no errors?
How does this compare with the result from
[link] . Hint: It may be necessary to
simulate for more than the default
m
data points.sd
you can add, and still have no errors?Notification Switch
Would you like to follow the 'Software receiver design' conversation and receive update notifications?