Abstract:
A method and apparatus are provided for convolutionally encoding digital data with a rate 5/8 convolutional code. A standard rate 1/2 convolutional code is punctured to rate 5/8 using a puncture map of ##EQU1## and octal generators 133, 171 wherein the constraint length K=7. An incoming data stream is processed using the rate 5/8 code. In another embodiment, a rate 1/3 convolutional code is punctured to rate 5/8 using a puncture map of ##EQU2## and octal generators 117, 135, 161 wherein the constraint length K=7.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to the communication of digital data using a rate 5/8 punctured convolutional code, and more particularly to such a code that is obtained by puncturing a &#34;standard&#34; rate 1/2 or rate 1/3 convolutional code. 
     Pragmatic Trellis-Coded Modulation (TCM) is a combined Forward Error Correction (FEC) coding and modulation scheme that utilizes a well-known and &#34;standard&#34; underlying convolutional code applied to certain bits of M-ary Phase Shift Keyed (MPSK) or M-ary Quadrature Amplitude Modulation (MQAM) symbol mappings. It&#39;s utility is in providing increased data rate over bandlimited channels using nearly standard off-the-shelf decoding hardware. Viterbi et. al. proposed this scheme and gave an example of applying the output of the underlying standard rate 1/2, constraint length K=7 encoder as the two-least-significant bits (LSBs) of each 3-bit 8PSK symbol and using an uncoded, or parallel branch, bit to choose the most-significant-bit (msb) of the 3-bit 8PSK symbol. Viterbi, Andrew et. al., &#34;A Pragmatic Approach to Trellis-Coded Modulation,&#34; IEEE Communications Magazine, July 1989, pp. 11-19. Viterbi&#39;s design takes two information bits to produce three channel bits or one 8PSK symbol (one parallel, uncoded bit and one bit that is rate 1/2 encoded into two bits) giving a code rate of 2/3. This code has been employed as a standard in an Intelsat satellite service. Intelsat Earth Station Standards (IESS) Doc. IESS-310, &#34;Performance Characteristics for Intermediate Data Rate Digital Carriers Using Rate 2/3 TCM/8PSK and Reed-Solomon Outer Coding (TCM/IDR),&#34; Approval Date: Sep. 16, 1996, pp. 14-22. 
     A later work by Wolf et. al. extends pragmatic coding to higher rates, e.g., a rate 5/6 code is built by puncturing the &#34;standard&#34; rate 1/2, K=7 code to rate 3/4 and applying its output along with two uncoded, parallel branch bits over two 8PSK symbol periods. Wolf, Jack Keil and Zehavi, Ephraim, &#34;P 2  Codes: Pragmatic Trellis Codes Utilizing Punctured Convolutional Codes,&#34; IEEE Communications Magazine, February 1995, pp. 94-99. Other references of interest include U.S. Pat. Nos. 5,233,629 (&#34;Method and Apparatus For Communicating Digital Data Using Trellis Coded QAM&#34;)to Paik et al., 5,396,518 (&#34;Apparatus and Method for Communicating Digital Data Using Trellis Coding with Punctured Convolutional Codes&#34;) and 5,408,502 (&#34;Apparatus and Method for Communicating Digital Data Using Trellis Coded QAM With Punctured Convolutional Codes&#34;) to How, and 5,511,082 (&#34;Punctured Convolutional Encoder&#34;) to How et al. 
     Puncturing a code is a method for deleting (i.e., not transmitting) certain encoder outputs in a regular manner such that the code still has good distance properties. This can be accomplished, for example, by deleting one of the two rate 1/2 encoder outputs on every other encoder cycle. In this manner, three output code bits are formed for every two input information bits (or every two encoder cycles) giving a rate 2/3 code. Punctures for the &#34;standard&#34; rate 1/2, K=7 code that provide good Hamming distance are well-known. See, for example, Yasuda, Y. et. al., &#34;High-Rate Punctured Convolutional Codes for Soft Decision Viterbi Decoding,&#34; IEEE Transactions on Communications, Vol. COM-32, 1984, pp. 315-319. 
     Trellis coded modulation (TCM) can be used to achieve increased throughput over a given bandlimited communication channel. The rate 2/3 code delivers 60 Megabits/second (Mbps) when used with an 8PSK symbol for a baud rate of 30 Megasymbols/second (Msps); the 5/6 code delivers 75 Mbps when used with a 30 Msps 8PSK rate. In comparison, a non-TCM scheme using a standard rate 7/8 coded, 30 Msps Quadrature PSK (QPSK) signal delivers 52.5 Mbps. The increased throughput achieved with TCM over standard coded QPSK imposes an increase in the required Signal- or Carrier-to-Noise Ratio (SNR or CNR) for a given Bit Error Rate (BER) performance value termed &#34;threshold&#34;. Rate 2/3 pragmatic TCM has a CNR threshold that is slightly worse than standard coded rate 7/8 QPSK but is 3 dB lower than rate 5/6 pragmatic TCM. 
     Both of the pragmatic TCM example designs (rate 2/3 and 5/6 8PSK) have been proposed for use as standards in satellite transmission of digital television (DTV) signals. These existing pragmatic schemes are found through computer simulation to require a 3 dB difference in the CNR for threshold BER operation. CNR is related directly to the required receiver antenna size, receiver noise figure, and satellite transmit power. 
     Moreover, past implementations of pragmatic TCM have been performed on the &#34;standard&#34; rate 1/2, K=7 convolutional code using &#34;standard&#34; puncture maps found to be optimum for this code in a Hamming distance sense (i.e., for use in schemes in which the coding is decoupled from the modulation scheme instead of integrated as in TCM). See, e.g., the Yasuda et al. article referred to above. 
     It would be advantageous to provide other code rates between and above 2/3 and 5/6 that offer varying requirements on threshold CNR and bit rate throughput so as to offer flexibility in operation with various communication channels. It would be further advantageous to puncture the &#34;standard&#34; code and other codes to achieve, e.g., an overall rate 3/4 8PSK TCM code that delivers 67.5 Mbps for a 30 Msps baud rate and has a threshold CNR lying midway between the rate 2/3 and 5/6 pragmatic implementations. 
     The present invention provides a trellis-coded modulation scheme having the aforementioned and other advantages. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention, a method is provided for convolutionally encoding digital data with a rate 5/8 convolutional code. The rate 5/8 code is obtained by puncturing a rate 1/2 convolutional code based on octal generators 133, 171, using a puncture map of ##EQU3## The constraint length K of the rate 1/2 code is 7 (K=7). As will be appreciated by those skilled in the art, the rate 1/2 code is a sixty-four state code, since the number of states is defined as 2 K-1 . 
     An effective overall encoder rate of 3/4 is provided by combining: 
     (i) eight coded bits produced by said rate 5/8 code from five input bits, with 
     (ii) four uncoded bits. 
     A rate 5/8 convolutional encoder is also disclosed. The rate 5/8 encoder includes means for puncturing a rate 1/2 convolutional code based on octal generators 133, 171 and having a constraint length K=7. The puncturing means uses a puncture map of: ##EQU4## An effective encoder rate of 3/4 is provided by combining: (i) eight coded bits produced by said rate 5/8 encoder from five input bits, with 
     (ii) four uncoded bits. 
     A method is also provided for convolutionally encoding digital data with a rate 5/8 convolutional code using an underlying rate 1/3 convolutional code. The rate 1/3 convolutional code is based on octal generators 117, 135, 161 with constraint length K=7, and is punctured to rate 5/8 using a puncture map of: ##EQU5## An incoming data stream is processed according to the rate 5/8 code. An effective overall encoder rate of 3/4 is provided by combining: 
     (i) eight coded bits produced by said rate 5/8 code from five input bits, with 
     (ii) four uncoded bits. 
     A corresponding rate 5/8 convolutional encoder comprises a rate 1/3 convolutional encoder based on octal generators 117, 135, 161 and having an input for receiving a data stream to be encoded. Means are provided for puncturing the code from the rate 1/3 convolutional encoder to rate 5/8 using a puncture map of ##EQU6## wherein the constraint length K=7. An effective encoder rate of 3/4 is provided by combining: 
     (i) eight coded bits produced by said rate 5/8 code from five input bits, with 
     (ii) four uncoded bits. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a forward error correction (FEC) decoder block diagram in accordance with the present invention; 
     FIG. 2 is an illustration of a branch metric computation for unpunctured branch distances in accordance with the present invention; 
     FIG. 3 is an illustration of a branch metric computation for X0X, X1X punctured branch distances in accordance with the present invention; 
     FIG. 4 is an illustration of a branch metric computation for XX0, XX1 punctured branch distances in accordance with the present invention; 
     FIG. 5 is a block diagram of a rate 3/4 8PSK trellis encoder in accordance with the present invention; 
     FIG. 6 illustrates an underlying rate 5/8 code punctured from a rate 1/3, K=7 code that can be used to implement the encoder of FIG. 5; 
     FIG. 7 illustrates an underlying rate 5/8 code punctured from a rate 1/2, K=7 code that can be used to implement the encoder of FIG. 5; and 
     FIG. 8 is a graph plotting the bit error rate against carrier-to-noise ratio (Es/No) for different codes. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention provides flexible coding and transmission rates in a trellis coded modulation scheme using punctured convolutional codes, in order to optimize satellite communication link performance. In particular, a rate 3/4 &#34;pragmatic&#34; code is formed by puncturing the rate 1/2 standard code to rate 5/8, and combining one uncoded bit with two encoder output bits over four 8PSK symbol periods. A code in accordance with the invention can deliver, for example, 2.25 bps (3×3/4) using 4×2=8 signal dimensions (8-D). 
     FIG. 1 is a block diagram of an FEC decoder that can be used with the codes of the present invention. The coding scheme uses a concatenated code having, for example, a (204,188) Reed-Solomon outer block code matched to the standard transport block size promulgated by the Motion Picture Experts Group (MPEG). Derandomization and deinterleaving may be performed as in the well known DigiCipher (proprietary to General Instrument Corporation of Horsham, Pa., USA) or Digital Video Broadcast (DVB) schemes. There is some flexibility in the choice of inner codes, however, and this choice has a great impact on the design of the inner decoder. 
     In the implementation illustrated in FIG. 1, the in-phase (I) and quadrature (Q) inputs of the signal to be decoded are input to a synchronization logic circuit 12, as well known in the art. Branch metrics are determined using a branch metric read only memory (ROM) 14, which outputs the corresponding branch metrics to a Viterbi decoder 16. The output of the Viterbi decoder is provided to a Reed-Solomon 8-bit symbol reformation and deinterleaver synchronization circuit 18. The resulting output is derandomized and deinterleaved in derandomizer and deinterleaver circuits 20, 22, respectively for input to a Reed-Solomon decoder 24 which provides, e.g., an MPEG compatible data stream. 
     The present invention uses a pragmatic code, which requires the above-mentioned synchronization and branch metric logic circuits as well as the additional components generally designated by reference numeral 10 in FIG. 1. In particular, the pragmatic code requires a sample delay memory 11, convolutional re-encoder 13 and uncoded bit correction logic 15. 
     Pragmatic decoders use the standard rate 1/2, K=7 code (octal generators 133 and 171) as the underlying code for encoding the two least significant bits (LSBs) of an 8PSK symbol. This code has good hamming distance properties and the mapping to 8PSK cosets preserves this in Euclidean distance as well for the rate 1/2 code. Puncturing this code yields other higher rate codes that also have good hamming distance properties. In the preferred embodiment of the present invention, the code is punctured to rate 5/8 for implementation of a rate 3/4 trellis code. A search was performed to find rate 5/8 punctures with good distance properties that facilitate trellis encoding of the LSBs of 8PSK symbols. Two good 5/8 codes were found as follows: 
     
         G1=133.sub.g P1=11111 
    
     
         G0=171.sub.g P0=11100 
    
     and 
     
         G1=133.sub.g P1=11111 
    
     
         G0=171.sub.g P0=11010 
    
     with the latter pattern providing a slightly better hamming distance profile. The first puncture pattern works well because the last two phases of the puncture pattern are punctured and may be used to map into two LSBs of the 4 th  8PSK symbol in the puncture cycle. The two 5/8 punctured codes lie within 0.1 dB of each other in union bounded QPSK bit error rate (BER) performance. 
     Another rate 5/8 code of interest is: 
     
         G2=117.sub.g P2=00000 
    
     
         G1=135.sub.g P1=11101 
    
     
         G0=161.sub.g P0=11110 
    
     This code is particularly useful in implementing a 5/8 code punctured from a rate 1/3, K=7 code, for use with the Digicipher® II digital satellite communication system proprietary to General Instrument Corporation, the assignee of the present application. 
     The branch metric calculation for punctured and non-punctured branches is illustrated in FIGS. 2-4. For non-punctured branches illustrated at 30 in FIG. 2 (e.g. normal rate 1/2 operation), the distance is found between the received point and the nearest member of a coset pair (i.e., to X00, X01, X10, and X11 where X represents the uncoded bit in the 8PSK symbol). For X0X and X1X punctured branches illustrated at 40 in FIG. 3 and XX0 and XX1 punctured branches illustrated at 50 in FIG. 4, the minimum Euclidean distance to the second and third LSB of the 8PSK symbol is found, conditioned on a &#34;0&#34; or &#34;1&#34; in those bit positions. In the notations used in FIGS. 3 and 4, d ijk! is the distance from the received signal to the ijk th  8PSK symbol in the ideal constellation. It should be noted that in the computation of FIG. 3, the distances d -0X!, d -1X! for the second bit calculation are applied differently to the branch metrics depending on whether G0 or G1 was punctured. Similarly, in FIG. 4, the distances d -X0!, d -X1! for the third bit calculation are applied differently to the branch metrics, depending on whether G0 or G1 was punctured. 
     FIG. 5 illustrates a rate 3/4 8PSK trellis encoder in accordance with the present invention. The uncoded bits (parallel branch bits) are input to an 8PSK symbol mapper and modulator 58 via a first-in first-out (FIFO) register 54 having a length of four bits. Coded bits are punctured by a rate 5/8 convolutional encoder 52, which uses a rate 1/2 or 1/3 convolutional code (K=7) punctured to rate 5/8. The technique of puncturing is well known in the art, and is explained in detail in J. B. Cain, G. C. Clark, Jr., and J. M. Geist, &#34;Punctured Convoulutional Codes of Rate (n-1)/n and Simplified Maximum Likelihood Decoding,&#34; IEEE Trans. Info. Theory, Vol. IT-25, pp. 97-100, January 1979, and Y. Yasuda, K. Kashusi, and Y. Hirata, &#34;High-Rate Punctured Convolutional Codes for Soft Decision Viterbi Decoding,&#34; IEEE Trans. on Commun., Vol. COM-32, pp. 315-319, March 1984. In the puncturing technique, a fraction of the symbols generated by a rate 1/2 code is deleted. At the decoder, the deleted symbols are replaced by erasures. One use of the puncturing technique is to permit a single basic code to be used for both power-limited and bandwidth-limited channels. A major advantage of puncturing is that high code rates (n-1)/n can be employed, and be decoded with practical rate 1/n decoders with only modifications in the branch metric generators, where erasures are inserted for the branch punctures. 
     In the rate 5/8 punctured encoder 52 illustrated in FIG. 5, five source bits (coded bits) are encoded into eight. The eight bits are temporarily stored (buffered) in FIFO registers 56. Successive three bit symbols are provided from registers 54, 56 to the 8PSK symbol mapper and modulator 58. More particularly, each three bit symbol input to mapper and modulator 58 comprises one uncoded bit from register 54 and two coded bits from registers 56. As can be seen from FIG. 5, the registers 54, 56 together have an overall length L of four symbols. Thus, the encoder has an effective rate of 3/4, since there are a total of twelve output bits (four uncoded plus eight coded) for nine input bits (four uncoded plus five coded). In other words, it takes only nine input bits to fill the twelve register cells provided by registers 54, 56, for a ratio of nine bits in for twelve bits out (9/12=3/4). It should be appreciated that the specific implementation illustrated in FIG. 5 is for purposes of example only, and that other implementations can be constructed without departing from the teachings of the invention and scope of the claims set forth hereinafter. 
     As indicated above, the rate 5/8 code can be punctured from either a rate 1/2 or a rate 1/3 convolutional code. FIG. 6 illustrates an encoder 60 for providing a rate 5/8 code from a rate 1/3 K=7 code. The puncture map for this encoder, as shown, is: 
     
         G0=1 1 1 1 0 
    
     
         G1=1 1 1 0 1 
    
     
         G2=0 0 0 0 0 
    
     FIG. 7 illustrates an encoder 70 for providing a rate 5/8 code from a rate 1/2 K=7 code. The puncture map for this encoder, as shown, is: 
     
         G0=1 1 1 0 0 
    
     
         G1=1 1 1 1 1 
    
     In the notation used, a &#34;1&#34; designates that the bit is transmitted and a &#34;0&#34; indicates that the bit is not transmitted. 
     FIG. 8 illustrates the 8PSK trellis coded bit error rate (BER) that was calculated for the punctured codes set forth above. In FIG. 8, BER is plotted against the 8PSK 3-bit symbol carrier-to-noise ratio (Es/No) in dB. Line 80 represents the BER of a theoretical uncoded quadrature phase shift keyed (QPSK) signal at 2 bits per second (bps). Line 86 represents the BER of a standard rate 2/3 code. Line 84 illustrates the BER of the rate 3/4 8PSK trellis modulated code of the present invention provided by the encoder of FIG. 7. Line 82 illustrates the results of the rate 3/4 8PSK trellis modulated code of the present invention provided by the encoder of FIG. 6. Line 88 represents the BER of a standard rate 5/6 code, and is provided for comparison purposes only. 
     As can be seen from FIG. 8, the BER performance for the encoder implementations of FIGS. 6 and 7 (curves 82 and 84) is very close. In particular, the difference in performance is less than 0.1 dB. Moreover, the performance of the inventive implementations is about midway between the rate 2/3 and 5/6 pragmatic codes illustrated by curves 86 and 88, respectively. 
     It should now be appreciated that the present invention provides a method of puncturing a &#34;standard&#34; rate 1/2 convolutional code and other codes (e.g., the Digicipher® II rate 1/3 code) to satisfy varying requirements on threshold CNR and bit rate throughput imposed by different communication channels. In particular, two alternative overall rate 3/4 8PSK TCM codes are disclosed that deliver 67.5 Mbps for a 30 Msps baud rate. These codes have a threshold CNR lying midway between known rate 2/3 and 5/6 pragmatic implementations.