Hybrid concatenated codes and iterative decoding
CAFCFirst Claim
1. A system for errorcorrection coding of a source of original digital data elements, comprising:
 (a) a first systematic convolutional encoder, coupled to the source of original digital data elements, for generating a first series of coded output elements derived from the original digital data elements;
(b) at least one interleaver, each coupled to the source of original digital data elements, for modifying the order of the original digital data elements to generate respective sets of interleaved elements; and
(c) at least one next systematic convolutional encoder, each coupled to respective interleaved elements, each for generating a corresponding next series of coded output elements derived from a respective set of interleaved elements, each next series of coded output elements being in parallel with the first series of coded output elements;
wherein the system for errorcorrection coding outputs only the first series of coded output elements and each next series of coded output elements.
3 Assignments
Litigations
2 Petitions
Accused Products
Abstract
Several improved turbo code apparatuses and methods. The invention encompasses several classes: (1) A data source is applied to two or more encoders with an interleaver between the source and each of the second and subsequent encoders. Each encoder outputs a code element which may be transmitted or stored. A parallel decoder provides the ability to decode the code elements to derive the original source information d without use of a received data signal corresponding to d. The output may be coupled to a multilevel trelliscoded modulator (TCM). (2) A data source d is applied to two or more encoders with an interleaver between the source and each of the second and subsequent encoders. Each of the encoders outputs a code element. In addition, the original data source d is output from the encoder. All of the output elements are coupled to a TCM. (3) At least two data sources are applied to two or more encoders with an interleaver between each source and each of the second and subsequent encoders. The output may be coupled to a TCM. (4) At least two data sources are applied to two or more encoders with at least two interleavers between each source and each of the second and subsequent encoders. (5) At least one data source is applied to one or more serially linked encoders through at least one interleaver. The output may be coupled to a TCM. The invention includes a novel way of terminating a turbo coder.
708 Citations
74 Claims

1. A system for errorcorrection coding of a source of original digital data elements, comprising:

(a) a first systematic convolutional encoder, coupled to the source of original digital data elements, for generating a first series of coded output elements derived from the original digital data elements; (b) at least one interleaver, each coupled to the source of original digital data elements, for modifying the order of the original digital data elements to generate respective sets of interleaved elements; and (c) at least one next systematic convolutional encoder, each coupled to respective interleaved elements, each for generating a corresponding next series of coded output elements derived from a respective set of interleaved elements, each next series of coded output elements being in parallel with the first series of coded output elements; wherein the system for errorcorrection coding outputs only the first series of coded output elements and each next series of coded output elements.  View Dependent Claims (2, 3, 4, 5)


6. A system for errorcorrection coding of a plurality of sources of original digital data elements, comprising:

(a) a first systematic convolutional encoder, coupled to each source of original digital data elements, for generating a first set of series coded output elements derived from the original digital data elements; (b) at least one set of interleavers, each set coupled to respective sources of original digital data elements, for modifying the order of the original digital data elements from the respective coupled sources to generate a respective set of interleaved elements; and (c) at least one next systematic convolutional encoder, each coupled to at least one set of interleaved elements, each for generating a corresponding next set of series coded output elements derived from the coupled sets of interleaved elements, each next set of series coded output elements being in parallel with the first set of series coded output elements.  View Dependent Claims (7, 8, 9, 10, 11, 12)


13. A system for errorcorrection coding of a source of original digital data elements comprising:

(a) at least one interleaver, each coupled to the source of original digital data elements, for modifying the order of the original digital data elements to generate respective interleaved elements; and (b) a single systematic recursive convolutional encoder module, coupled to the source of original digital data elements and to interleaved elements from at least one interleaver, for generating a set of coded output elements derived from the original digital data elements; wherein the system for errorcorrection coding outputs the set of coded output elements and the original digital data elements.  View Dependent Claims (14, 15, 16, 17)


18. A system for errorcorrection coding of a source of original digital data elements, comprising:

(a) a first encoder, coupled to the source of original digital data elements, for generating a plurality of coded intermediate output elements derived from the original digital data elements; (b) at least one interleaver, each coupled to at least one of the plurality of coded intermediate output elements, for modifying the order of the coded intermediate output elements to generate respective interleaved output elements; and (c) at least one systematic recursive convolutional encoder, each coupled to at least one interleaver, for generating a set of coded output elements derived from the interleaved output elements from each coupled interleaver.  View Dependent Claims (19, 20, 21, 22)


23. A system for errorcorrection coding of a source of original digital data elements, comprising:

(a) a first systematic convolutional encoder, coupled to the source of original digital data elements, for generating a first series of coded output elements derived from the original digital data elements; (b) at least one interleaver, each coupled to the source of original digital data elements, for modifying the order of the original digital data elements to generate respective interleaved elements; (c) at least one next systematic convolutional encoder, each coupled to respective interleaved elements, each for generating a corresponding next series of coded output elements derived from the respective interleaved elements, each next series of coded output elements being in parallel with the first series of coded output elements; and (d) a multilevel modulator, directly coupled to the original digital data elements and to the coded output elements of each systematic convolutional encoder, for generating an output modulated signal representative of at least some of such original digital data elements and coded output elements.  View Dependent Claims (24)


25. A system for errorcorrection coding and multilevel modulation of a plurality of sources of original digital data elements, comprising:

(a) a first systematic convolutional encoder, coupled to each source of original digital data elements, for systematically selecting a first subset of the original digital data elements and generating a first series of coded output elements derived from the first selected subset, and for outputting at least one source of original digital data elements unchanged; (b) at least two interleavers, each coupled to a respective one of the plurality of sources of original digital data elements, for modifying the order of the original digital data elements to generate respective sets of interleaved elements; (c) at least one next systematic convolutional encoder, each coupled to at least two interleavers, each for systematically selecting a next subset from the sets of interleaved elements different from each other selected subset, for generating a corresponding next series of coded output elements derived from the corresponding next subset, each next series of coded output elements being in parallel with the first series of coded output elements, and for outputting at least one set of interleaved elements unchanged; and (d) a multilevel modulator, coupled to the original digital data elements, the unchanged interleaved elements, and the coded output elements, for generating an output modulated signal representative of at least some of such original digital data elements, unchanged interleaved elements, and coded output elements.  View Dependent Claims (26)


27. A system for terminating a turbo encoder comprising:

(a) a plurality of serially connected delay elements D having a tap after each delay element; (b) a plurality of first selective combinatorial devices, at least one before the first serially connected delay element D, at least one after the last serially connected delay element D, and at least one between each intermediate pair of serially connected delay elements D; (c) at least one data source line u_{b}, where b is the number of data source lines, each coupled to each first selective combinatorial device as input lines; (d) at least one set of next selective combinatorial devices, each set comprising a plurality of selective combinatorial devices each coupled to a corresponding tap and serially coupled together, with an end selective combinatorial device of each set selectively coupled to a corresponding data source line; wherein, to terminate input to the delay elements D, the sets of next selective combinatorial devices are coupled to the corresponding data source line and selectively actuated to select tap coefficients a_{i0}, . . . a_{i},m1 for i=1, 2, . . . b, to apply to a corresponding data source line, wherein the tap coefficients are obtained by repeated use of the following equation, and by solving the resulting equations;
##EQU19## where S^{k} (D) is the state of the turbo encoder at time k with coefficients S^{k}_{0}, S^{k}_{1}, . . . S^{k}_{m1} for input u^{k}_{1}, . . . u^{k}_{b}, and termination in state zero is achieved in at most m clock cycles.


28. A decoder system for decoding a plurality of sequences of received signals y_{i}, representative of code elements x_{i} generated by a turbo encoder from a source of original digital data elements u_{i}, into decoded elements corresponding to the original digital data elements u_{i}, the decoder system comprising:

(a) at least three decoder modules, each having a received signal input i, a feedback input, and an output, the output of each decoder module being coupled to the feedback input of each other decoder module; and (b) a summing module, coupled to each output of each decoder module, for generating final decoded elements from the outputs of the decoder modules; wherein each sequence of received signals y_{i} is coupled to the received signal input i of a corresponding decoder module.  View Dependent Claims (29, 30, 31)


32. An iterative decoder system for decoding at least one sequence of received signals y_{i}, representative of code elements x_{i} generated by a selfconcatenated encoder from a source of original digital data elements u_{i}, into decoded elements corresponding to the original digital data elements u_{i}, the decoder system comprising:

(a) a plurality of feedback inputs each comprising a combinatorial element; (b) a plurality of permuters, each coupled to a corresponding combinatorial element; (c) a probabilitybased decoder, coupled to each permuter and at least one combinatorial element, and including a received signal input and an output; (d) a plurality of inverse permuters, each coupled to the probabilitybased decoder so as to receive a signal associated with a corresponding permuter; (e) a plurality of differential combinatorial elements, one coupled to the output of the probabilitybased decoder and each other coupled to a corresponding inverse permuter, and each coupled to every noncorresponding feedback input; and (f) a plurality of delay elements, each coupled between a corresponding combinatorial element and a corresponding differential combinatorial element; wherein each sequence of received signals y_{i} is coupled to the received signal input of the probabilitybased decoder.  View Dependent Claims (33, 34)


35. An iterative decoder system for decoding at least one sequence of received signals y_{i}, representative of code elements x_{i} generated by a serial encoder from a source of original digital data elements u_{i}, into decoded elements corresponding to the original digital data elements u_{i}, the decoder system comprising:

(a) a plurality of permuters each having an input; (b) at least one first probabilitybased decoder, each coupled to a corresponding permuter, and including a received signal input; (c) a plurality of inverse permuters, each coupled to a corresponding probabilitybased decoder so as to receive a signal associated with a corresponding permuter; (d) a plurality of first differential combinatorial elements, each coupled to a corresponding inverse permuter; (e) a plurality of first delay elements, each coupled between the input of a corresponding permuter and a corresponding first differential combinatorial element; (f) a second probabilitybased decoder, coupled to each first differential combinatorial element, and including inputs corresponding to each first differential combinatorial element, and an output; (g) a plurality of second differential combinatorial elements, each coupled to the second probabilitybased decoder and to the input of a corresponding permuter; (h) a plurality of second delay elements, each coupled between corresponding inputs of the second probabilitybased decoder and a corresponding second differential combinatorial element; wherein the sequence of received signals y_{i} is coupled to corresponding received signal inputs of the first probabilitybased decoders.  View Dependent Claims (36, 37)


38. A method for errorcorrection coding of a source of original digital data elements, comprising the steps of:

(a) generating a first series of systematic convolutional encoded output elements derived from a source of original digital data elements; (b) modifying the order of the original digital data elements to generate at least one set of respective interleaved elements; and (c) generating at least one corresponding next series of systematic convolutional encoded output elements derived from a corresponding set of respective interleaved elements, each next series of coded output elements being in parallel with the first series of coded output elements; (d) outputting only the first series of systematic convolutional encoded output elements and each next series of systematic convolutional encoded output elements.  View Dependent Claims (39, 40, 41, 42)


43. A method for errorcorrection coding of a plurality of sources of original digital data elements, comprising the steps of:

(a) generating a first set of series systematic convolutional encoded output elements derived from a plurality of sources of original digital data elements; (b) modifying the order of the original digital data elements from the respective sources to generate at least one set of respective interleaved elements; and (c) generating at least one corresponding next set of series systematic convolutional encoded output elements derived from a corresponding set of respective interleaved elements, each next set of series systematic convolutional encoded output elements being in parallel with the first set of series systematic convolutional encoded output elements.  View Dependent Claims (44, 45, 46, 47, 48, 49)


50. A method for errorcorrection coding of a source of original digital data elements, comprising the steps of:

(a) modifying the order of a source of original digital data elements to generate at least one set of interleaved elements; and (b) generating a set of systematic convolutional encoded output elements derived from the original digital data elements and at least one set of interleaved elements; (c) outputting only the set of systematic convolutional encoded output elements.  View Dependent Claims (51, 52, 53, 54)


55. A method for errorcorrection coding of a source of original digital data elements, comprising the steps of:

(a) generating a plurality of systematic convolutional encoded intermediate output elements derived from a source of original digital data elements; (b) modifying the order of the systematic convolutional encoded intermediate output elements to generate at least one set of respective interleaved output elements; and (c) generating a set of systematic convolutional encoded output elements derived from at least one set of interleaved output elements.  View Dependent Claims (56, 57, 58, 59)


60. A method for errorcorrection coding of a source of original digital data elements, comprising the steps of:

(a) generating a first series of systematic convolutional encoded output elements derived from a source of original digital data elements; (b) modifying the order of the original digital data elements to generate at least one set of interleaved elements; (c) generating at least one next series of systematic convolutional encoded output elements derived from at least one set of interleaved elements, each next series of systematic convolutional encoded output elements being in parallel with the first series of systematic convolutional encoded output elements; and (d) generating an output multilevel modulated signal directly from and representative of at least some of such original digital data elements and systematic convolutional encoded output elements.  View Dependent Claims (61)


62. A method for errorcorrection coding and multilevel modulation of a plurality of sources of original digital data elements, comprising the steps of:

(a) systematically selecting a first subset of original digital data elements from a plurality of sources of original digital data elements; (b) generating a first series of systematic convolutional encoded output elements derived from the first selected subset; (c) outputting at least one source of original digital data elements unchanged; (d) modifying the order of the original digital data elements to generate at least two sets of interleaved elements; (e) systematically selecting a next subset from the sets of interleaved elements different from each other selected subset; (f) generating at least one next series of systematic convolutional encoded output elements derived from a corresponding next subset, each next series of systematic convolutional encoded output elements being in parallel with the first series of systematic convolutional encoded output elements; (g) outputting at least one set of interleaved elements unchanged; and (h) generating an output multilevel modulated signal representative of at least some of such original digital data elements, unchanged interleaved elements, and systematic convolutional encoded output elements.  View Dependent Claims (63)


64. A method for terminating input to a turbo encoder comprising a plurality of serially connected delay elements D having a tap after each delay element;
 a plurality of first selective combinatorial devices, at least one before the first serially connected delay element D, at least one after the last serially connected delay element D, and at least one between each intermediate pair of serially connected delay elements D;
at least one data source line u_{b}, where b is the number of data source lines, each coupled to each first selective combinatorial device as input lines; and
at least one set of next selective combinatorial devices, each set comprising a plurality of selective combinatorial devices each coupled to a corresponding tap and serially coupled together, with an end selective combinatorial device of each set selectively coupled to a corresponding data source line;
the method comprising the steps of;(a) coupling the sets of next selective combinatorial devices to the corresponding data source line; (b) selectively actuating the sets of next selective combinatorial devices to select tap coefficients a_{i0}, . . . a_{i},m1 for i=1, 2, . . . b, to apply to a corresponding data source line, wherein the tap coefficients are obtained by repeated use of the following equation, and by solving the resulting equations;
##EQU20## where S^{k} (D) is the state of the turbo encoder at time k with coefficients S^{k}_{0}, S^{k}_{1}, . . . S^{k}_{m1} for input u^{k}_{1}, . . . u^{k}_{b}, and termination in state zero is achieved in at most m clock cycles.
 a plurality of first selective combinatorial devices, at least one before the first serially connected delay element D, at least one after the last serially connected delay element D, and at least one between each intermediate pair of serially connected delay elements D;

65. A method for decoding a plurality of sequences of received signals y_{i}, representative of systematic convolutional encoded elements x_{i} generated from a source of original digital data elements u_{i}, into decoded elements corresponding to the original digital data elements u_{i}, the method comprising the steps of:

(a) coupling at least three decoder modules, each having a received signal input i, a feedback input, and an output, such that the output of each decoder module is coupled to the feedback input of each other decoder module; (b) applying each sequence of received signals y_{i} to the received signal input i of a corresponding decoder module; and (c) summing the output of each decoder module to generate final decoded elements.  View Dependent Claims (66, 67, 68)


69. An iterative method for decoding at least one sequence of received signals y_{i}, representative of systematic convolutional encoded elements x_{i} generated by a selfconcatenated encoder from a source of original digital data elements u_{i}, into decoded elements corresponding to the original digital data elements u_{i}, the method comprising the steps of:

(a) applying feedback signals to inputs of a plurality of combinatorial elements to generate first output signals; (b) applying the first output signals to a plurality of permuters to generate second output signals; (c) applying selected ones of the first and second output signals, and each sequence of received signals y_{i}, to a probabilitybased decoder to generate third output signals and a decoded output for decoded elements; (d) applying the third output signals to a plurality of inverse permuters to generate fourth output signals; (e) applying the fourth output signals to a plurality of differential combinatorial elements to generate feedback signals; (f) applying the feedback signals to noncorresponding inputs of the plurality of combinatorial elements; and (g) coupling a plurality of delay elements between a corresponding combinatorial element and a corresponding differential combinatorial element.  View Dependent Claims (70, 71)


72. An iterative method for decoding at least one sequence of received signals y_{i}, representative of code elements x_{i} generated by a serial encoder from a source of original digital data elements u_{i}, into decoded elements corresponding to the original digital data elements u_{i}, the method comprising the steps of:

(a) applying feedback signals to respective inputs of a plurality of permuters to generate first output signals; (b) applying the first output signals, and the sequence of received signals y_{i}, to at least one first probabilitybased decoder to generate second output signals; (c) applying the second output signals to a plurality of inverse permuters to generate third output signals; (d) applying the third output signals to a plurality of first differential combinatorial elements to generate fourth output signals; (e) coupling a plurality of first delay elements between respective inputs of corresponding permuters and corresponding first differential combinatorial elements; (f) applying the fourth output signals to a second probabilitybased decoder to generate fifth output signals and a decoded output for decoded elements; (g) applying the fifth output signals to a plurality of second differential combinatorial elements, to generate feedback signals coupled to the second probabilitybased decoder and to the inputs of corresponding permuters; (h) coupling a plurality of second delay elements between corresponding inputs of the second probabilitybased decoder and corresponding second differential combinatorial elements.  View Dependent Claims (73, 74)

1 Specification