Claims
- 1. A method of generating low density parity check codes for encoding data, the method comprising:
constructing a parity check matrix H having a balanced incomplete block design (BIBD) in which a plurality B-sets which define the matrix have no more than one intersection point; and generating parity bits as a function of the constructed parity check matrix H.
- 2. The method of claim 1, wherein constructing the parity check matrix further comprises constructing the parity check matrix H such that, for each v×v sub-matrix of the parity check matrix H, v being the number of bits in each row and column of each sub-matrix, each column of the sub-matrix contains the same number of 1's as all other columns of the sub-matrix.
- 3. The method of claim 2, wherein constructing the parity check matrix further comprises constructing the parity check matrix H such that, for each v×v sub-matrix of the parity check matrix H, each column after a first column is a circular shift of the first column.
- 4. The method of claim 3, wherein constructing the parity check matrix further comprises constructing the parity check matrix H such that each column of the matrix contains the same number of 1's as all other columns of the matrix.
- 5. The method of claim 4, wherein constructing the parity check matrix further comprises constructing the parity check matrix H such that no pair of columns in the parity check matrix contains two 1's at the same positions.
- 6. The method of claim 5, wherein constructing the parity check matrix further comprises constructing the parity check matrix H such that the BIBD is a pair (V, B), where V is a v-set and B is a collection of b k-subsets of v, each k-subset defining a block, such that each element of V is contained in exactly r blocks, and such that any 2-subset of V is contained in exactly λ blocks, and wherein λ is equal to 1.
- 7. The method of claim 6, wherein a (v,k,λ)-BIBD is a BIBD with v points, block size k, and index λ, and wherein constructing the parity check matrix further comprises constructing the parity check matrix such that it has a (v,k,1)-BIBD.
- 8. The method of claim 6, wherein constructing the parity check matrix further comprises constructing the parity check matrix such that it is a has a (v,3,1)-BIBD.
- 9. The method of claim 6, wherein constructing the parity check matrix further comprises constructing the parity check matrix such that it is a has a (v,2,1)-BIBD.
- 10. The method of claim 7, wherein the parity check matrix includes t sub-matrices [H1 H2 . . . Ht] such that H=[H1 H2 . . . Ht], and wherein m is a column vector consisting of (t−1)v data bits, generating the parity bits further comprising generating a column vector p consisting of v parity bits using the relationship [H1 H2 . . . Ht−1]×m=Ht×p.
- 11. An encoder for encoding message data with a low density parity check code, the encoder comprising:
a first matrix vector multiplier (MVM) which receives a v-bit set of message data and multiplies the V bit set of message data by a first column of a first sub-matrix of a low density parity check matrix H having a balanced incomplete block design (BIBD) in which a plurality B-sets which define the matrix have no more than one intersection point, the first MVM producing a first MVM output as a function of the multiplication; and a second MVM which receives the first MVM output and generates parity bits by multiplying the first MVM output by the inverse of a first column of a last sub-matrix of the low density parity check matrix H.
- 12. The encoder of claim 12, wherein the first MVM comprises a plurality of first MVM units each receiving a different v-bit set of message data and multiplying its corresponding received v-bit set of message data by a first column of a different one of a plurality of sub-matrices of the low density parity check matrix H, the first MVM producing the first MVM output as a function of a combination of the multiplication results in each of the plurality of first MVM units.
- 13. The encoder of claim 11, wherein for each v×v sub-matrix of the parity check matrix H, v being the number of bits in each row and column of each sub-matrix, each column of the sub-matrix contains the same number of 1's as all other columns of the sub-matrix.
- 14. The encoder of claim 13, wherein for each v×v sub-matrix of the parity check matrix H, each column after a first column is a circular shift of the first column.
- 15. The encoder of claim 14, wherein each column of the parity check matrix H contains the same number of 1's as all other columns of the parity check matrix.
- 16. The encoder of claim 15, wherein no pair of columns in the parity check matrix H contains two 1's at the same positions.
- 17. The encoder of claim 16, wherein the parity check matrix H is a (v,k,λ)-BIBD, where a (v,k,λ)-BIBD is a BIBD with v points, block size k, and index λ, and wherein index λ is equal to one.
- 18. An apparatus for encoding digital information with a low density parity check code, the apparatus comprising:
an input which receives a sequence of message bits; and means for generating parity bits as a function of the sequence of message bits and as a function of a parity check matrix H having a balanced incomplete block design (BIBD) in which a plurality B-sets which define the matrix H have no more than one intersection point.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority from U.S. Provisional Application No. 60/296,223, filed Jun. 6, 2001, and entitled “METHOD AND CODING USING LOW DENSITY PARITY CHECK CODES FOR DATA STORAGE OR DATA TRANSMISSION”, AND U.S. Provisional Application No. 60/314,987, filed Aug. 24, 2001, and entitled “A METHOD AND CODING MEANS USING ANTI-PASCH LDPC CODES”.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60296223 |
Jun 2001 |
US |
|
60314987 |
Aug 2001 |
US |