Abstract:
Intersymbol interference and precoding loss are minimized by combining the precoding and coding operations. An intersymbol interference coder uses a feedback loop to apply a dither sequence to a sequence of input signal points. The dither signal applied to each input signal point is a function of the previous signal points in the sequence. The intersymbol interference coder implements, for example, a trellis coding operation by selecting one of several different modulo operations to determine the magnitude of the dither signal, the selection being made in response to the current trellis state. The sequence of signal points output from the intersymbol interference coder generates a valid sequence of the trellis code input to the Viterbi decoder.

Description:
FIELD OF THE INVENTION 
     This invention relates to methods for transmitting data over intersymbol interference channels and, more particularly, to methods for minimizing the effects of intersymbol interference on transmitted data. 
     BACKGROUND OF THE INVENTION 
     Intersymbol interference results from the fact that a typical communications channel inherently has memory such that other signals transmitted through the channel interfere with the current, transmitted signal. Prior techniques for minimizing the effects of intersymbol interference have involved &#34;precoding&#34; the signal to be transmitted. These prior art techniques, while allowing both coding and shaping gains on intersymbol interference channels, provide sub-optimal performance because of the &#34;precoding loss&#34; (i.e., the additional power that must be transmitted to minimize the effects of intersymbol interference) associated with these techniques. Because the precoding loss increases whin a more powerful trellis code is used, such precoders cannot approach the channel capacity. 
     One technique for minimizing the effects of intersymbol interference involves precoding a sequence of signal points to achieve noise whitening on intersymbol interference channels. This precoding is a nonlinear operation that ensures that the channel output or the output of a noise whitening filter is a trellis code sequence affected by additive white Gaussian noise. A so-called &#34;dither signal&#34; is added to each of the signal points in the sequence.. No coding operation (i.e., an operation which achieves coding gain) is performed as part of precoding. Rather, precoding is performed on a sequence of previously trellis coded signal points which could be selected from a shaped constellation. Precoding is performed by using a modulo λ&#39;, operation, where λ&#39; is the coset lattice, that is, the lattice in the last level of coset partitioning used to generate the trellis code. Using this scheme, the precoding loss is large when the trellis code is based on a large number of coset partitions. The performance of this scheme degrades with the number of coset partitions used to generate the trellis code. 
     SUMMARY OF THE INVENTION 
     Intersymbol interference and precoding loss are minimized in accordance with the invention by combining the precoding and coding operations. By performing precoding together with coding, the nonlinear modulo operation is based on the first level of the lattice partitioning used to generate the trellis code. This produces a smaller precoding loss than the prior art precoding techniques and makes the precoding loss independent of the number of coset partitions used to generate the trellis code. Coding is performed by choosing the appropriate nonlinear modulo operation as a function of the current state of the finite-state machine that is used to generate the trellis code. 
     In an exemplary embodiment of the invention, an intersymbol interference coder uses a feedback loop to apply a dither sequence to a sequence of uncoded input signal points. The dither signal applied to each input signal point is a nonlinear function of the previous signal points in the sequence and the current state of the finite-state machine used to generate the trellis code. The intersymbol interference coder implements, for example, a trellis code by selecting one of two different modulo (mod) operations to determine the magnitude of the dither signal, the selection being made based on the current state of the finite-state machine used to generate the trellis code. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the drawings: 
     FIG. 1 is a block diagram of the transmitter portion of a communications system constructed in accordance with the principles of the present invention; 
     FIG. 2 is a block diagram of the receiver portion of a communications system constructed in accordance with the principles of the present invention; 
     FIG. 3 shows the first level of partitioning of a two-dimensional lattice that may be used to generate a trellis code in accordance with the invention; 
     FIG. 4 is a block diagram of the intersymbol interference coder of FIG. 1; and 
     FIG. 5 is a block diagram of the intersymbol interference decoder of FIG. 2. 
    
    
     DETAILED DESCRIPTION 
     FIG. 1 shows the transmitter portion of a communications system which includes an intersymbol interference channel. The transmitter includes a binary data source 100, a constellation encoder 102, an intersymbol interference coder 104, and a transmit filter 106. The transmitter outputs a sequence of signal points for transmission across an intersymbol interference channel 108. Intersymbol interference channel 108 can be represented as an intersymbol interference channel filter 110 and noise applied to an adder (which is diagramatically represented as a noise element 112). 
     Binary data source 100 outputs data in the form of bits to constellation encoder 102, which maps the bits received from data source 100 to a sequence of signal points selected from a shaped, but uncoded, constellation. Constellation encoder 102 outputs a stream of signal points to intersymbol interference coder 104. In accordance with the invention, intersymbol interference coder 104 adds, as described below, a dither sequence to the stream of signal points to generate an output sequence of signal points that (1) is precoded to minimize the effect of intersymbol interference, and (2) in the receiver, results in a sequence from a predetermined signal-space code (e.g., a trellis code) affected by white Gaussian noise (to achieve coding gain). The output sequence of signal points is passed through a conventional transmit filter 106 and applied to intersymbol interference channel 108. 
     FIG. 2 shows the receiver portion of the communications system, which receives a sequence of signal points from intersymbol interference channel 108. The receiver includes an equalizer/sampler 200 and a noise prediction error filter 202 which collectively comprise a &#34;noise whitening&#34; filter 203, a Viterbi decoder 204, an intersymbol interference decoder 206, a &#34;constellation&#34; decoder 208, and a data sink 210. Noise prediction error filter 202 has a transfer function H(z). Equalizer/sampler 200, noise prediction error filter 202, Viterbi decoder 204, and constellation decoder 208 can be implemented in a conventional manner that is known to those skilled in the art. 
     The output of intersymbol interference channel 108 is input to equalizer/sampler 200 and noise prediction error filter 202 which output the sequence to Viterbi decoder 204. Alternatively, the output of channel 108 can provided directly to Viterbi decoder 204 (in which case, channel filter 110 has a transfer function H(z)). The output of intersymbol interference channel 108 (or the output of noise prediction error filter 202 if used in the noise whitening context) is a sequence from the predetermined signal-space code affected by noise, such as white Gaussian noise. Viterbi decoder 204 is a maximum likelihood-type detector which operates to identify the sequence of signal points and effectively removes this noise. The transmitted constellation point is then uniquely recovered from the output of Viterbi decoder 204 by intersymbol interference decoder 206, as described below in the discussion of FIG. 5. Constellation decoder 208 receives a sequence of signal points from intersymbol interference decoder 206 and outputs bits, which blocks of signal points, to data sink 210. 
     To generate the trellis code, a two-dimensional (2D) lattice λ=Z 2  is partitioned into cosets of the coset lattice λ&#39;, which is a sublattice of Z 2 . (The notation &#34;Z 2  &#34; indicates that both coordinates of all points on a plane are integers.) FIG. 3 shows the 2D lattice λ that in the first level of partitioning is partitioned into two subsets λ A  and λ B . For this example λ A  =RZ 2  and its coset (in λ)λ B  =RZ 2  +(0,1) represent the first level of partitioning, i.e., λ/λ a  /λ&#39; from a chain of lattice partitions. Points on the lattice λ identified by &#34;x&#34; and &#34;o⃡, respectively represent points from subsets λ A  and λ B . For all coset codes with redundancy 1 bit/2D, all outgoing transitions from any trellis state either correspond to signal points in λ A  or signal points in λ B , but not in both. The output of constellation encoder 102 (FIG. 1) is an uncoded sequence of points on λ A . 
     At the origin of the lattice in FIG. 3 is a region identified by the letter V (shown as a shaded region). This region is the Voronoi region of the lattice λ A . The Voronoi region contains all points on the plane which are closer to the origin than to any other point on the lattice. The Voronoi region is bounded on two sides by solid lines, indicating that the signal points along those lines are included in the region. The remaining two sides of the Voronoi region are bounded by dashed lines, indicating that the signal points along those lines are excluded from the region. The significance of the Voronoi region will be made clear below. 
     In accordance with the present invention, the operations of a) trellis coding to provide coding gain and b) precoding to overcome the effects of intersymbol interference, are combined into a single operation. The intersymbol interference coder of the invention is used to transmit data over intersymbol interference channels while realizing both coding and shaping gains. By combining trellis coding and precoding in a single operation, the invention achieves a smaller precoding loss than was possible in the prior art. Also, the precoding loss of the intersymbol interference coder of the invention is independent of the number of coset partitions used to generate the trellis code. 
     FIG. 4 shows a block diagram of intersymbol interference coder 104. Intersymbol interference coder 104 includes a trellis coder 400, a filter 402, modulo operation means 404, and adders 406 and 407. As discussed above, intersymbol interference coder 104 receives a signal point on lead 408 and outputs the signal point for transmission over intersymbol interference channel 108 on lead 410. Filter 402, modulo operation means 404, and adder 406 form a feedback loop between a node 412 at the output of intersymbol interference coder 104 and adder 406. With the intersymbol interference coder 104, the output of noise prediction error filter 202 will be a n  +q n  affected by white Gaussian noise, where q n  is a point on either λ A  or λ B . The output of filter 402 also is applied to adder 407 to be added to the signal from node 412 to form the input to trellis coder 400. 
     Filter 402 has a transfer function H(z)-1, giving intersymbol interference coder 104 an effective transfer function of 1/H(z) if the modulo operation is ignored (i.e., replaced by a simple connection). Thus, ignoring the operation of modulo operation means 404, intersymbol interference coder 104 would have a transfer function that is the reciprocal of the transfer function of noise prediction error filter 202. 
     In accordance with the invention, intersymbol interference coder 104 ensures that the input to Viterbi decoder 204 is the trellis code sequence a n  +q n  affected by additive white Gaussian noise. This is accomplished by selecting the appropriate mod operation in modulo operation means 404. Coder 104 selects the appropriate mod operation based on the current state of the finite-state machine which generates the trellis code. If the current state dictates that the present output be in λ A , modulo λ A  operation is selected. If, on the other hand, the current state requires the output to be in λ B , modulo λ B  is selected. After the modulo operation, the output a n  +q n  of noise prediction error filter 202 (assuming no noise) is used to determine the next state of the finite-state machine. 
     Trellis coder 400 is a finite state machine which generates the trellis code. Trellis coder 400 deals with all levels of partitioning of the trellis code, but mod operations are based only on the first level of trellis partitioning. 
     To understand why the output of noise whitening filter 203 is a valid sequence from a trellis code, consider the following. Assume that the past sequence of output signal points . . . , a 0  +q 0 , . . . , a n-2  +q n-2 , a n-1  +q n-1  form a valid trellis sequence. If the output a n-1  +q n-4  leaves the trellis in a state that allows only those transitions that correspond to points in λ A , trellis coder 400 selects mod λ A  operation. If instead, however, a n-1  +q n-1  leaves the trellis in a state that allows only those transitions that correspond to points in λ B , trellis coder 400 selects mod λ B  operation. Performing a mod λ A  operation implies, as described below, quantizing the feedback signal f n  to the nearest point q n  in λ A  and determining the quantization error m n . Similarly, a mod λ B  operation refers to quantizing f n  to the nearest point q n   in λ B  and determining the quantization error m n . 
     The quantization in the modulo operation means 404 is performed such that the error m n  (the dither signal that is applied to adder 406) is always a point in the Voronoi region V of λ A . Since the current input signal point on lead 408 is always a point in λ A  (signal points a n  are selected from an uncoded constellation), a n  +q n  corresponds to a valid transition in the finite-state machine of the trellis code, taking the finite-state machine to a new state. This process is continually repeated for successive next inputs (e.g., a n+1 ). In this manner, intersymbol interference coder 104 ensures that the input to the Viterbi decoder in the receiver is a valid trellis sequence (affected by additive white Gaussian noise). 
     As discussed above, the precoding loss is the overhead transmitted energy required to overcome the effects of intersymbol interference caused by channel 108. In the embodiment of FIG. 4, the precoding loss is the average energy of m n , which is the average energy of the Voronoi region V of the lattice λ A . By combining the precoding operation, that is, the addition of a dither sequence (a sequence of successive dither signals m n ) to the sequence of input channel signal points, with the coding operation, intersymbol interference coder 104 performs modulo operations based on sublattices in the first level of lattice partition used to generate the trellis code. The sublattices in the first level partition are more dense (finer) than later partitions of the lattice. Hence, the lattice corresponding to the first level partition has a smaller Voronoi region than that of the lattices corresponding to later partitions, and thus, has a smaller average energy. This produces a smaller precoding loss. Operating on the first level partition also makes the precoding loss independent of the number of coset partitions that generate the trellis code. 
     Intersymbol interference coder 10.4 will operate successfully if the sequence of signal points a n  can be uniquely recovered from the output a n  +q n  of Viterbi decoder 204. The symbol a n  +q n  denotes an estimate of the quantity a n  +q n .) Intersymbol interference decoder 206, shown in greater detail in FIG. 5, performs this decoding operation. 
     Referring to FIG. 5, intersymbol interference decoder 206 includes a filter 500 and a quantizer 502. Filter 500 has a transfer function 1/H(z) which is the inverse of the transfer function of noise prediction error filter 202. In the absence of channel errors, filter 500 receives a signal point having a value a n  +q n  from the output of the Viterbi decoder 204. The sequence a n  +q n  is filtered by filter 500 to give a signal a n  -m n . Because m n  is always in the Voronoi region V of the lattice λ A , and a n  is a point on λ A , quantizer 502 can recover a n  from a n  -m n  simply by quantizing, in a conventional manner, to the nearest point in lattice λ A  (such that the quantization error is within Voronoi region V). 
     Intersymbol interference coder 104 has been described in the context of receiving a sequence of signal points which are selected from an uncoded constellation. It is to be understood, however, that intersymbol interference coder 104 could receive signal points encoded using a first trellis code which intersymbol interference coder 104 converts to a different trellis code. 
     It will be apparent to one skilled in the art that other modifications can be made to the described embodiment without departing from the scope of the invention. For example, although the invention has been described in the context of 2D trellis coded signal points with a 1 bit/2D redundancy, the present invention is equally applicable to trellis codes of other dimensions and redundancies, and to other signal-space codes. Also, unshaped constellations, and constellations of different sizes and different dimensionality could be used.