<< Chapter < Page Chapter >> Page >

Observe that the source signal s [ k ] does not appear in [link] . Thus, no training signal is required for its implementation andthe decision-directed LMS equalizer adaptation law of [link] is called a “blind” equalizer. Given its genesis, one should expect decision-directed LMS toexhibit poor behavior when the assumption regarding perfect decisions is violated.The basic rule of thumb is that 5% (or so) decision errors can be tolerated before decision-directed LMS failsto converge properly.

The M atlab program DDequalizer.m has a familiar structure. The only code changed from LMSequalizer.m is the calculation of the error term, which implements e [ k ] = sign { y [ k ] } - y [ k ] rather than the LMS error [link] , and the initialization of the equalizer. Because the equalizer must begin withan open eye, f=0 is a poor choice. The initialization that follows starts all taps at zero except for onein the middle that begins at unity. This is called the “center-spike” initialization.If the channel eye is open, then the combination of the channel and equalizer will also have an open eyewhen initialized with the center spike. The exercises ask you to explore the issueof finding good initial values for the equalizer parameters. As with the LMS equalizer, thecode in EqualizerTest.m can be used to test the operation of the converged equalizer.

b=[0.5 1 -0.6];              % define channelm=1000; s=sign(randn(1,m));  % binary source of length m r=filter(b,1,s);             % output of channeln=4; f=[0 1 0 0]';           % initialize equalizermu=.1; % stepsizefor i=n+1:m % iterate  rr=r(i:-1:i-n+1)';         % vector of received signal   e=sign(f'*rr)-f'*rr;       % calculate error  f=f+mu*e*rr;               % update equalizer coefficients end
DDequalizer.m find a DD equalizer f for the channel b (download file)

Try the initialization f=[0 0 0 0]' in DDequalizer.m . With this initialization, can the algorithm open the eye? Try increasing m . Try changing the stepsize mu . What other initializations will work?

What happens in DDequalizer.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)) . What is the largest sd you can add, and still have no errors? Does the initial value for f influence this number? Try at least three initializations.

Use DDequalizer.m to find an equalizer that can open the eye for the channel b=[1 1 -0.8 -.3 1 1] .

  1. What equalizer length n is needed?
  2. What initializations for f did you use?
  3. How does the converged answer compare with the design in [link] and [link] ?

Modify DDequalizer.m to generate a source sequence from the alphabet ± 1 , ± 3 . For the default channel [0.5 1 -0.6] , find an equalizer that opens the eye.

  1. What equalizer length n is needed?
  2. What initializations for f did you use?
  3. Is this a fundamentally easier or more difficult task than when equalizing a binary source?
  4. How does the answer compare with the design in [link] and [link] ?

"Examples and Observations" provides the opportunity to view the simulated behavior of the decision-directedequalizer, and to compare its performance with the other methods.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Software receiver design. OpenStax CNX. Aug 13, 2013 Download for free at http://cnx.org/content/col11510/1.3
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software receiver design' conversation and receive update notifications?

Ask