Claims
- 1. A method of error-correction coding of source data elements, comprising the steps of:
- (a) coding the source data elements using one or more product codes having a common component code, to provide one or more primary product codewords, each of the primary product codewords consisting of a plurality of first codewords of the common component code;
- (b) assembling one or more first sets of codewords of the common component code, each of said first sets comprising two or more distinct first codewords forming part of a same primary product codeword;
- (c) codeword-mapping each of the codewords of each of the first sets to a second codeword of the common component code using a one-to-one codeword-mapping to provide one or more second sets of second codewords, each second set corresponding to a first set of codewords, codeword-mappings of each codeword of a first set including the step of:
- (i) re-ordering, according to a known interleaving pattern, the symbols within a codeword,
- the codeword-mappings being such that if all of the codewords of a first set are from a same primary product codeword, then some codeword-mappings applied to the codewords of the first set are different, and if two or more repetitions of a same codeword are included in a single first set, then the codeword-mappings applied to those repetitions are different;
- (d) coding each set of second codewords using a systematic code so as to generate a secondary product codeword for a product code having as component codes the common component code and the systematic code; and,
- (e) providing encoded output data comprising the primary product codewords and the non-systematic portion of the secondary product codewords.
- 2. A method of error-correction coding of source data elements as defined in claim 1, comprising the step of iterating steps (b) through (e), wherein the one or more primary product codewords for a subsequent iteration are the one or more primary product codewords provided in step (e) of a previous iteration, and the non-systematic portion of the secondary product codewords provided in step (e) of a previous iteration is provided as isolated codewords for use in the subsequent iteration.
- 3. A method of error-correction coding of source data elements as defined in claim 1, wherein the common component code is a cyclic code, and wherein, for at least one of the codeword-mappings used in step (c), the step of re-ordering the symbols within a codeword is performed using a cyclic shift of the codeword.
- 4. A method of error-correction coding of source data elements as defined in claim 3, wherein each codeword of a first set and from a same primary product codeword is codeword-mapped using a step of re-ordering according to a cyclic shift different from a cyclic shift used in codeword-mapping each other codeword of said first set and from said primary product codeword.
- 5. A method of error-correction coding of source data elements as defined in claim 1, wherein the common component code is a product code, at least one component code of which being a cyclic code, and wherein, for at least one of the codeword-mappings used in step (c), the step of re-ordering comprises a step of rolling along a dimension associated with a cyclic component code.
- 6. A method of error-correction coding of source data elements as defined in claim 5, wherein each of the codeword-mappings of codewords of a first set and from a same primary product codeword comprises rolling the codeword along a dimension according to a roll amount different from that used for rolling each other codeword of said first set and from said primary product codeword along a same dimension.
- 7. A method of error-correction coding of source data elements as defined in claim 1, wherein the common component code is a quasi-cyclic code, and wherein, for at least one of the codeword-mappings used in step (c), the step of re-ordering the symbols within a codeword is performed using a cyclic shift of the codeword, said cyclic shift producing a codeword of the common component code.
- 8. A method of error-correction coding of source data elements as defined in claim 7, wherein each codeword of a first set and from a same primary product codeword is codeword-mapped using a codeword-mapping that re-orders the symbols of said codeword according to a cyclic shift different from that used for codeword-mapping each other codeword of said first set and from said primary product codeword.
- 9. A method of error-correction coding of source data elements as defined in claim 1, wherein the common component code is a product code, at least one component code of which being a quasi-cyclic code, and wherein, for at least one of the codeword-mappings used in step (c), the step of re-ordering comprises a step of rolling along a dimension associated with a quasi-cyclic component code, said rolling producing a codeword of the common component code.
- 10. A method of error-correction coding of source data elements as defined in claim 9, wherein each of the codeword-mappings of codewords of a first set and from a same primary product codeword comprises rolling the codeword along a dimension according to a roll amount different from that used for rolling each other codeword of said first set and from said primary product codeword along a same rolling dimension.
- 11. A method of error-correction coding of source data elements as defined in claim 1, wherein the common component code is a sum-to-identity code.
- 12. A method of error-correction coding of source data elements as defined in claim 1, wherein the common component code is a product code, at least one component code of which being a sum-to-identity code, and wherein the step of re-ordering comprises a step of shuffling along a dimension associated with a component code that is a sum-to-identity code.
- 13. A method of error-correction coding of source data elements as defined in claim 1, wherein the common component code is a product code composed of component codes that are binary sum-to-identity codes, and wherein each codeword in the primary product codewords is within only one first set.
- 14. A method of error-correction coding of source data elements as defined in claim 1, comprising the step of:
- (f) decoding received data elements representing encoded output data, wherein said decoding method comprises an iterative decoding procedure comprising the steps of:
- (i) decoding using a posteriori probability (APP) processing the received data using constraints determined in step (a); and
- (ii) decoding using a posteriori probability (APP) processing the received data using constraints determined in steps (b) through (e).
- 15. A method of error-correction coding of source data elements as defined in claim 1, wherein the codeword-mapping step comprises a step of symbol-mapping.
- 16. A method for decoding received data elements representing source data elements coded according to the coding method of claim 1, wherein said decoding method comprises an iterative decoding procedure comprising the steps of:
- (i) decoding using a posteriori probability (APP) processing the received data using constraints determined in step (a); and
- (ii) decoding using a posteriori probability (APP) processing the received data using constraints determined in steps (b) through (e).
- 17. A method according to claim 16, wherein the APP processing is log-APP processing.
- 18. A method according to claim 17, wherein the log-APP processing is max-log-APP processing.
- 19. A method according to claim 18, wherein the common component code is a binary sum-to-identity code, and log-probability quantities used in the decoding process are log-likelihood ratios (LLRs).
- 20. A method according to claim 18, wherein the common component code is a product code composed of component codes that are binary sum-to-identity codes, and log-probability quantities used in the decoding process are log-likelihood ratios (LLRs).
Parent Case Info
This appln claims the benefit of U.S. Provisional Ser. No. 60/055,611 filed Aug. 14, 1997.
US Referenced Citations (8)