CA2402257A1 - Enhanced turbo product codes - Google Patents

Enhanced turbo product codes Download PDF

Info

Publication number
CA2402257A1
CA2402257A1 CA002402257A CA2402257A CA2402257A1 CA 2402257 A1 CA2402257 A1 CA 2402257A1 CA 002402257 A CA002402257 A CA 002402257A CA 2402257 A CA2402257 A CA 2402257A CA 2402257 A1 CA2402257 A1 CA 2402257A1
Authority
CA
Canada
Prior art keywords
block
encoded
encoder
parity
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CA002402257A
Other languages
French (fr)
Other versions
CA2402257C (en
Inventor
Eric John Hewitt
Bradley William Lindstrom
Peter Sean Ladow
Alan Robert Danielson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Comtech Telecommunications Corp
Original Assignee
Advanced Hardware Architectures, Inc.
Eric John Hewitt
Bradley William Lindstrom
Peter Sean Ladow
Alan Robert Danielson
Comtech Telecommunications Corp.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Hardware Architectures, Inc., Eric John Hewitt, Bradley William Lindstrom, Peter Sean Ladow, Alan Robert Danielson, Comtech Telecommunications Corp. filed Critical Advanced Hardware Architectures, Inc.
Publication of CA2402257A1 publication Critical patent/CA2402257A1/en
Application granted granted Critical
Publication of CA2402257C publication Critical patent/CA2402257C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction

Abstract

A hyper encoder module encodes a block of data having a plurality of sub-blocks. Each sub-block includes a plurality of systematic block code codewords. A parity sub-block is added to the block.
The parity sub-block is a first sub-block rotated by a predetermined number of bits. Each subsequent sub-block in the n-dimensional block is rotated by an appropriate number of bits and bit-wise XORed. An encoder method and apparatus which includes the hyper encoder module receives the block of data. A row of the block is immediately output and encoded by a first module according to a first encoding scheme. A column is encoded by a second module according to a second encoding scheme. A second set of encoded data is generated, iteratively updated and output by the second module. The hyper encoder module hyper-diagonally encodes the information bits as described above and then output.

Claims (40)

1. A method of encoding a block of data having n dimensions, wherein the block contains a plurality of systematic block code codewords, the method comprising the steps of:
a. performing a parity calculation along a hyper diagonal in the block, wherein a parity result for the parity calculation is generated; and b. adding the parity result to the block of data.
2. The method according to claim 1 further comprising the step of storing the parity result in a parity array, wherein the parity array is added to the block of data as a separate array.
3. The method according to claim 2 further comprising the step of rotating the parity array such that the parity result stared in the parity array is substantially aligned with the hyper diagonal along which the parity result was calculated.
4. The method according to claim 2 further comprising the step of initializing the parity array such that the parity bits are set to zero before the step of performing the parity calculation along the hyper diagonal is executed.
5. The method according to claim 1 further comprising the step of outputting the encoded block of data when the parity result is aligned substantially with the hyper diagonal.
6. The method according to claim 1 wherein the block of data is three dimensional.
7. The method according to claim 6 wherein the parity result for the parity calculation is stored in a parity plane, wherein the parity plane is added to the block of data as a separate plane.
8. A method of encoding a n-dimensional block of data having a plurality of (n-1) dimensional sub-blocks, wherein each sub-block includes a plurality of systematic block code codewords, wherein a parity sub-block is added to the block of data, the parity sub-block having a plurality of parity bits, the method comprising the steps of:
a. causing the parity sub-block to be equal to a first sub-block rotated by a predetermined number of bits; and b. for each subsequent sub-block parallel to the first sub-block in the n-dimensional block, bit-wise XORing that parallel sub-block with the parity sub-block, wherein the parity sub-block is rotated by an appropriate number of bits.
9. The method according to claim 8 further comprising the step of initializing the parity sub-block such that each parity bit is zero, wherein the step of initializing occurs before the parity sub-block is caused to be equal to the first plane.
10. The method according to claim 8 further comprising the step of outputting the encoded block of data.
11. A method of encoding a block of data having n-dimensions received from an input source, the block containing a plurality of information bits, the method comprising the steps of:
a. receiving a row of the block and immediately outputting the row;
b. encoding the information bits in the row, wherein a first set of encoded data is generated according to a first encoding scheme;
c. outputting the first set of encoded data;
d. encoding the information bits in a column according to a second encoding scheme, wherein a second set of encoded data is generated and iteratively updated according to the information bits in the row;
e. hyper-diagonally encoding the information bits in the block according to a parity encoding scheme, wherein a hyper set of encoded data is generated according to the information bits in the row and column and the first and second sets of encoded data;
f. outputting the updated second set of encoded data after all the information bits and all subsequent first sets of encoded data are outputted; and g. outputting the hyper set of encoded data.
12. The method according to claim 11 further comprising the step of encoding the second set of encoded data according to the first encoding scheme on a row by row basis such that all information bits received are encoded.
13. The method according to claim 11 further comprising the step of encoding the second set of encoded data according to the second encoding scheme on a row by row basis such that all information bits received are encoded.
14. The method according to claim 11 wherein the block of data is three dimensional, the block of data including a plane of encoded bits, wherein the plane is orthogonal to the row and the column.
15. The method according to claim 14 further comprising the steps of:
a. encoding the information bits in the plane according to a third encoding scheme, wherein a third set of encoded data is generated and iteratively updated corresponding to the information bits in the row; and b. outputting the third set encoded data after all subsequent second sets of encoded data are outputted.
16. The method according to claim 14 wherein the hyper parity array is a hyper parity plane.
17 17. The method according to claim 11 wherein the first set of encoded data is stored in a row encode storage array, wherein the row encode storage array includes a plurality of row array bits.
18. The method according to claim 17 further comprising the step of resetting the row encode storage array such that all row array bits are set to zero, wherein the step of resetting is executed after the first set of encoded data is outputted.
19. The method according to claim 11 wherein the second set of encoded data is stored in a column encode storage array.
20. The method according to claim 11 wherein the hyper set of encoded data is stored in a hyper parity array, wherein the hyper parity array includes a plurality of parity array bits.
21. The method according to claim 20 wherein the step of hyper-diagonally encoding further comprises:
a. updating the hyper parity array by iteratively encoding the parity array for the information bits and the first set and the second set of encoded data for each row; and b. rotating the hyper parity array by a predetermined number of bits.
22. The method according to claim 20 further comprising the step of initializing the hyper parity array such that all parity array bits are set to zero, wherein the step of initializing is executed before the any information bits are encoded.
23. An encoder comprising: a datapath module for encoding a block of data having a plurality of systematic block code codewords, wherein each codeword includes a plurality of information bits and a plurality of error correction bits, wherein the datapath module hyper-diagonally encodes a string of the block code codewords and performs a parity calculation on the string, whereby a parity result for each string is generated.
24. The encoder according to claim 23 wherein the parity result for each string is stored in a parity array.
25. The encoder according to claim 23 further comprising an input module for receiving the block of data.
26. The encoder according to claim 23 further comprising an output module for outputting the encoded block of data.
27. The encoder according to claim 23 wherein the datapath module further comprises:
a. a first encoder module for encoding a plurality of rows from the block of data, wherein the first encoder module adds the error correction bits to the rows; and b. a second encoder module for encoding a plurality of columns from the block of data, wherein the second encoder module adds the error correction bits to the columns such that an encoded block of data is formed.
28. The encoder according to claim 27 further comprising: an output multiplexer coupled to all the encoder modules for outputting the encoded block of data.
29. The encoder according to claim 27 wherein the datapath module further comprises a third encoder module for encoding a plurality of planes from the block of data, wherein the third encoder adds the error correction bits to the planes.
30. An encoder for encoding a block of data having a plurality of information bits, wherein the encoder outputs the information bits immediately after receiving the information bits, the encoder comprising:
a. a first encoder module for encoding the information bits in a row of the block, wherein the first encoder generates a set of encoded row bits;
b. a second encoder module for encoding the information bits in a column of the block, wherein the second encoder module generates a set of encoded column bits according to the information bits in each row, wherein the second encoder updates the encoded column bits for each row encoded by the first encoder; and c. a hyper encoder module for hyper-diagonally encoding all information bits and all encoded bits diagonally along the block, wherein the hyper encoder generates a set of parity results, whereby each parity result corresponds to a diagonal of the encoded bits.
31. The encoder according to claim 30 wherein the hyper encoder rotates the parity array such that each parity result is aligned with the corresponding diagonal.
32. The encoder according to claim 30 further comprising a third encoder module for encoding the information bits in a plane of the block, wherein the third encoder module generates a set of encoded plane bits according to the information bits in each row and column, wherein the third encoder updates the encoded plane bits according to each set of encoded row and column bits.
33. The encoder according to claim 30 wherein the first encoder module outputs the set of encoded row bits.
34. The encoder according to claim 33 wherein the second encoder module outputs the set of encoded column bits after all sets of encoded row bits are output.
35. The encoder according to claim 34 wherein the hyper encoder module outputs the set parity results after all encoded row bits and encoded column bits are outputted.
36. An encoder for encoding a block of data into an encoded block of data, wherein the block of data having a plurality of information bits arranged in a plurality of rows and columns, the encoder comprising:
a. means for receiving the block of data, wherein the information bits received are immediately output by an output means;
b. first means for encoding each row according to a first encoding scheme, wherein the first means generates a row encoding result for each row encoded by the first encoding scheme;
c. second means for encoding each column according to a second encoding scheme, wherein the second means generates a column encoding result for each column encoded by the second encoded scheme, wherein the column encoding result is iteratively updated for each row encoded by the first means; and d. means for hyper-diagonally encoding along the encoded block of data, the means for hyper-diagonally encoding generating a hyper parity result for each corresponding diagonal in the encoded block of data.
37. An encoder for encoding a block of data into an encoded block of data, the block of data having a plurality of information bits, wherein the encoder outputs the information bits immediately after receiving the information bits, the encoder comprising:
a. a first encoder module for encoding the information bits in a row of the block, wherein the first encoder generates a set of encoded row bits; and b. a second encoder module for encoding the information bits in a column of the block, wherein the second encoder module generates a set of encoded column bits according to the information bits in each row, wherein the second encoder updates the encoded column bits for each row encoded by the first encoder.
38. The encoder according to claim 37 further comprising a hyper encoder module for hyper-diagonally encoding along the encoded block of data, wherein the hyper encoder generates a set of parity results, each parity result corresponding to each diagonal encoded.
39. The encoder according to claim 38 wherein the hyper encoder module adds the set of parity results to the encoded block of data as a parity array.
40. The encoder according to claim 37 further comprising a third encoder module for encoding the information bits in a plane of the block, wherein the third encoder module generates a set of encoded plane bits according to the information bits in each row and column, wherein the third encoder updates the encoded plane bits for each row encoded by the first encoder and each column encoded by the second encoder.
CA2402257A 2000-03-14 2001-03-14 Enhanced turbo product codes Expired - Fee Related CA2402257C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US18934500P 2000-03-14 2000-03-14
US60/189,345 2000-03-14
PCT/US2001/008101 WO2001069797A2 (en) 2000-03-14 2001-03-14 Enhanced turbo product codes

Publications (2)

Publication Number Publication Date
CA2402257A1 true CA2402257A1 (en) 2001-09-20
CA2402257C CA2402257C (en) 2010-04-13

Family

ID=22696908

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2402257A Expired - Fee Related CA2402257C (en) 2000-03-14 2001-03-14 Enhanced turbo product codes

Country Status (5)

Country Link
EP (1) EP1273095A2 (en)
JP (1) JP2003527029A (en)
AU (1) AU2001250837A1 (en)
CA (1) CA2402257C (en)
WO (1) WO2001069797A2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117650870A (en) * 2023-12-06 2024-03-05 北京荷智科技有限公司 Communication method, system, equipment and medium based on longitudinal coding error correction

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5024819A (en) * 1973-07-07 1975-03-17
JPS61147619A (en) * 1984-12-21 1986-07-05 Sony Corp Error correction system
US4796260A (en) * 1987-03-30 1989-01-03 Scs Telecom, Inc. Schilling-Manela forward error correction and detection code method and apparatus
EP0519669A3 (en) * 1991-06-21 1994-07-06 Ibm Encoding and rebuilding data for a dasd array
JP2905368B2 (en) * 1993-08-10 1999-06-14 富士通株式会社 Error detection and correction method

Also Published As

Publication number Publication date
WO2001069797A3 (en) 2002-02-28
AU2001250837A1 (en) 2001-09-24
JP2003527029A (en) 2003-09-09
CA2402257C (en) 2010-04-13
EP1273095A2 (en) 2003-01-08
WO2001069797A2 (en) 2001-09-20

Similar Documents

Publication Publication Date Title
KR100709545B1 (en) Encoder, decoder, methods of encoding and decoding
US4856003A (en) Error correction code encoder
US7356752B2 (en) Enhanced turbo product codes
KR101110586B1 (en) Concatenated iterative and algebraic coding
US9088300B1 (en) Cyclic redundancy check for out-of-order codewords
US8359515B2 (en) Forward substitution for error-correction encoding and the like
WO2009004601A3 (en) Generation of parity-check matrices
US8099644B2 (en) Encoders and methods for encoding digital data with low-density parity check matrix
EP1624582A2 (en) Apparatus and method for channel coding in mobile communication system
US5537423A (en) Modular multiple error correcting code system
EP2695300A2 (en) Encoding and decoding techniques using low-density parity check codes
WO2015135298A1 (en) Method, device, and computer storage medium supporting low bit rate encoding
CN1983822A (en) Parity check matrix, method for generating parity check matrix, encoding method and error correction apparatus
JPWO2010073922A1 (en) Error correction encoding apparatus, decoding apparatus, encoding method, decoding method, and program thereof
CN101764620B (en) Apparatus and method for decoding using channel code
US8145971B2 (en) Data processing systems and methods for processing digital data with low density parity check matrix
JP2000353965A (en) Method and device for interleaving, turbo encoding method and turbo encoder
US10193574B1 (en) Efficient syndrome calculation in processing a GLDPC code
RU2671989C1 (en) Method of transmission of multilateral messages by the concatenated code in the communication complexes
CA2402257A1 (en) Enhanced turbo product codes
US8301962B2 (en) Apparatus and method for generating a linear code
EP2178213A1 (en) Methods and apparatuses for error correction coding
JP2832024B2 (en) Code transmission method
RU2759801C1 (en) Method for code frame synchronization for cascade code when applying strict solutions
JP2005340920A (en) Signal processing apparatus, encoding method, and decoding method

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20190314