Patent ID: 8245106

Claim:
A method for error correction and error detection of binary data that have been error correction encoded by an LDPC code the parity check matrix of which is equal to the result of the steps of: generating a first intermediate matrix comprising two rows of square, identically sized, binary sub-matrices, where the first row comprises p identity matrices of size p·p, and the second row comprises p increasing powers of a cyclic shift matrix of size p·p; generating from the first intermediate matrix a second intermediate matrix by removing m equidistant columns from each of the sub-matrices of the first intermediate matrix at column indices [r+2ri+i+q] modulo p, wherein i,m,p,q are integers, wherein i=0, . . . , m−1, wherein m,p,q,r are predefined such that p=m+2mr, and wherein column indices within the sub-matrices start with 0; generating a third intermediate matrix from the second intermediate matrix by deleting is those matrix rows from the first row of sub-matrices of the second intermediate matrix H2 which contain only zeros; prepending to the third intermediate matrix m−1 binary column vectors of height 2p−m having “1” elements in the middle rows of those row ranges where the 0-th power of the shift matrix juxtaposed to the 1st power of the shift matrix have row weight 2; the binary data being organized in words, the words comprising symbols, the method having the steps of: calculating, from a received word and the parity check matrix of the LDPC code, a binary syndrome vector; splitting the syndrome vector into a first subvector and a second subvector; calculating a first error weight from the first subvector, and calculating a second error weight and a third error weight from the second subvector; converting the syndrome vector into an orthogonal bit error weight vector; deriving, from the orthogonal bit error weight vector, a majority error vector via majority decision; computing, from the majority error vector, a vector of symbol error weights associated to the symbols of the received word; deriving, from the vector of symbol error weights, the number of potential symbol errors; correcting those received words where the number of potential symbol errors was derived as 1, by bitwise XOR operation with the first subvector.