<< Chapter < Page Chapter >> Page >

The least-squares solution

Define the matrix

Ψ = [ F - ( R T R ) - 1 R T S ] T ( R T R ) [ F - ( R T R ) - 1 R T S ] = F T ( R T R ) F - S T R F - F T R T S + S T R ( R T R ) - 1 R T S .

The purpose of this definition is to rewrite [link] in terms of Ψ :

J L S = Ψ + S T S - S T R ( R T R ) - 1 R T S = Ψ + S T [ I - R ( R T R ) - 1 R T ] S .

Since S T [ I - R ( R T R ) - 1 R T ] S is not a function of F , the minimum of J L S occurs at the F that minimizes Ψ . This occurs when

F = ( R T R ) - 1 R T S ,

assuming that ( R T R ) - 1 exists. A matrix is invertible as long as it has noeigenvalues equal to zero. Since R T R is a quadratic form it has no negative eigenvalues. Thus, all eigenvalues must be positivein order for it to be invertible. The corresponding minimum achievable by J L S at F = F is the summed squared delayed source recovery error. This is the remaining term in [link] ; that is,

J L S min = S T [ I - R ( R T R ) - 1 R T ] S .

The formulas for the optimum F in [link] and the associated minimum achievable J L S in [link] are for a specific δ . To complete the design task, it is also necessary to findthe optimal delay δ . The most straightforward approach is to set up a series of S = R F calculations, one for each possible δ , to compute the associated values of J L S min , and pick the delay associated with the smallest one.

This procedure is straightforward to implement in M atlab , and the program LSequalizer.m allows you to play with the various parameters to get a feel for theireffect. Much of this program will be familiar from openclosed.m. The first three lines define a channel, create a binary source, and thentransmit the source through the channel using the filter command. At the receiver, the data are put through a quantizer, and then the erroris calculated for a range of delays. The new part is in the middle.

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=3;                              % length of equalizer - 1 delta=3;                          % use delay <=n p=length(r)-delta;R=toeplitz(r(n+1:p),r(n+1:-1:1));  % build matrix R S=s(n+1-delta:p-delta)';          % and vector Sf=inv(R'*R)*R'*S                  % calculate equalizer f Jmin=S'*S-S'*R*inv(R'*R)*R'*S     % Jmin for this f and deltay=filter(f,1,r);                  % equalizer is a filter dec=sign(y);                      % quantize and count errorserr=0.5*sum(abs(dec(delta+1:end)...                   -s(1:end-delta)))
LSequalizer.m find a LS equalizer f for the channel b (download file)

The variable n defines the length of the equalizer, and delta defines the delay that will be used in constructing the vector S defined in [link] (observe that delta must be positive and less than or equal to n ). The Toeplitz matrix R is defined in [link] and [link] , and the equalizer coefficients f are computed as in [link] . The value of minimum achievable performance is Jmin , which is calculated as in [link] . To demonstrate the effect of the equalizer, thereceived signal r is filtered by the equalizer coefficients, and the output is then quantized.If the equalizer has done its job (i.e., if the eye is open), then there should be some shift sh at which no errors occur.

For example, using the default channel b= [0.5 1 -0.6],and length 4 equalizer ( n=3 ), four values of the delay delta give

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