LDPC DESIGN FOR HIGH RATE, HIGH PARALLELISM, AND LOW ERROR FLOOR
A method of data encoding is disclosed. An encoder receives a set of information bits and performs a lifted LDPC encoding operation on the information bits to produce a codeword. The encoder then punctures all lifted bits of the codeword that correspond to one or more punctured base bits of a base LDPC code used for the LDPC encoding operation. The base LDPC code has no multiple edges, and the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code. For some embodiments, the one or more punctured base nodes correspond to one or more degree 2 variable nodes.
1 . A method of data encoding, the method comprising:
receiving a set of information bits;
performing a lifted low density parity check (LDPC) encoding operation on the set of information bits to produce a codeword; and
puncturing all lifted bits of the codeword that correspond to one or more punctured base bits of a base LDPC code used for the LDPC encoding operation, wherein:
the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code; and
the base LDPC code has no multiple edges.
2 . The method of claim 1 , wherein the one or more punctured base nodes correspond to one or more variable nodes having a degree equal to, or one less than, a number of check nodes of the base LDPC code.
3 . The method of claim 1 , wherein at least one of the one or more punctured base nodes corresponds to a highest-degree variable node of the base LDPC code.
4 . The method of claim 1 , wherein the one or more punctured base nodes correspond to one or more degree 2 variable nodes.
5 . The method of claim 4 , wherein the one or more punctured base nodes split one or more respective check nodes that are each connected to another variable node, and wherein each of the other variable nodes is connected by edges to both elements of the corresponding split check node.
6 . The method of claim 4 , wherein the one or more punctured base nodes eliminate double edges in the base LDPC code.
7 . The method of claim 1 , wherein a quasi-cyclic lifting is applied to the base LDPC code, and wherein permutations of edge clusters in the quasi-cyclic lifting are cyclic permutations.
8 . A method of data decoding, the method comprising:
receiving an LDPC codeword;
identifying all lifted bits of the LDPC codeword that correspond to one or more punctured based bits of a base LDPC code, wherein:
the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code; and
the base LDPC code has no multiple edges; and
performing an LDPC decoding operation on the received codeword to recover a set of information bits, wherein the identified lifted bits are treated as erased for purposes of decoding.
9 . The method of claim 8 , wherein the one or more punctured base nodes correspond to one or more variable nodes having a degree equal to, or one less than, a number of check nodes of the base LDPC code.
10 . The method of claim 8 , wherein at least one of the one or more punctured base nodes corresponds to a highest-degree variable node of the base LDPC code.
11 . The method of claim 8 , wherein the one or more punctured base nodes correspond to one or more degree 2 variable nodes.
12 . The method of claim 11 , wherein the one or more punctured base nodes split one or more respective check nodes that are each connected to another variable node, and wherein each of the other variable nodes is connected by edges to both elements of the corresponding split check node.
13 . The method of claim 11 , wherein the one or more punctured base nodes eliminate double edges in the base LDPC code.
14 . The method of claim 8 , wherein a quasi-cyclic lifting is applied to the base LDPC code, and wherein permutations of edge clusters in the quasi-cyclic lifting are cyclic permutations.
15 . A computer-readable storage medium containing program instructions that, when executed by a processor provided within a communications device, causes the device to:
receive a set of information bits;
perform a lifted LDPC encoding operation on the set of information bits to produce a codeword; and
puncture all lifted bits of the codeword that correspond to one or more punctured base bits of a base LDPC code used for the LDPC encoding operation, wherein:
the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code; and
the base LDPC code has no multiple edges.
16 . The computer-readable storage medium of claim 15 , wherein the one or more punctured base nodes correspond to one or more variable nodes having a degree equal to, or one less than, a number of check nodes of the base LDPC code.
17 . The computer-readable storage medium of claim 15 , wherein at least one of the one or more punctured base nodes corresponds to a highest-degree variable node of the base LDPC code.
18 . The computer-readable storage medium of claim 15 , wherein the one or more punctured base nodes correspond to one or more degree 2 variable nodes.
19 . The computer-readable storage medium of claim 18 , wherein the one or more punctured base nodes split one or more respective check nodes that are each connected to another variable node, and wherein each of the other variable nodes is connected by edges to both elements of the corresponding split check node.
20 . The computer-readable storage medium of claim 18 , wherein the one or more punctured base nodes eliminate double edges in the base LDPC code.
21 . The computer-readable storage medium of claim 15 , wherein a quasi-cyclic lifting is applied to the base LDPC code, and wherein permutations of edge clusters in the quasi-cyclic lifting are cyclic permutations.
22 . A computer-readable storage medium containing program instructions that, when executed by a processor provided within a communications device, causes the device to:
receive an LDPC codeword;
identify all lifted bits of the LDPC codeword that correspond to one or more punctured based bits of a base LDPC code, wherein:
the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code; and
the base LDPC code has no multiple edges; and
perform an LDPC decoding operation on the received codeword to recover a set of information bits, wherein the identified lifted bits are treated as erased for purposes of decoding.
23 . The computer-readable storage medium of claim 22 , wherein the one or more punctured base nodes correspond to one or more variable nodes having a degree equal to, or one less than, a number of check nodes of the base LDPC code.
24 . The computer-readable storage medium of claim 22 , wherein at least one of the one or more punctured base nodes corresponds to a highest-degree variable node of the base LDPC code.
25 . The computer-readable storage medium of claim 22 , wherein the one or more punctured base nodes correspond to one or more degree 2 variable nodes.
26 . The computer-readable storage medium of claim 25 , wherein the one or more punctured base nodes split one or more respective check nodes that are each connected to another variable node, and wherein each of the other variable nodes is connected by edges to both elements of the corresponding split check node.
27 . The computer-readable storage medium of claim 25 , wherein the one or more punctured base nodes eliminate double edges in the base LDPC code.
28 . The computer-readable storage medium of claim 22 , wherein a quasi-cyclic lifting is applied to the base LDPC code, and wherein permutations of edge clusters in the quasi-cyclic lifting are cyclic permutations.
29 . A communications device, comprising:
a memory to store a set of information bits; and
an encoder to:
perform a lifted LDPC encoding operation on the set of information bits to produce a codeword; and
puncture all lifted bits of the codeword that correspond to one or more punctured base bits of a base LDPC code used for the LDPC encoding operation, wherein:
the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code; and
the base LDPC code has no multiple edges.
30 . The device of claim 29 , wherein the one or more punctured base nodes correspond to one or more variable nodes having a degree equal to, or one less than, a number of check nodes of the base LDPC code.
31 . The device of claim 29 , wherein at least one of the one or more punctured base nodes corresponds to a highest-degree variable node of the base LDPC code.
32 . The device of claim 29 , wherein the one or more punctured base nodes correspond to one or more degree 2 variable nodes.
33 . The device of claim 32 , wherein the one or more punctured base nodes split one or more respective check nodes that are each connected to another variable node, and wherein each of the other variable nodes is connected by edges to both elements of the corresponding split check node.
34 . The device of claim 32 , wherein the one or more punctured base nodes eliminate double edges in the base LDPC code.
35 . The device of claim 29 , wherein a quasi-cyclic lifting is applied to the base LDPC code, and wherein permutations of edge clusters in the quasi-cyclic lifting are cyclic permutations.
36 . A communications device, comprising:
a memory to store an LDPC codeword; and
a decoder to:
identify all lifted bits of the LDPC codeword that correspond to one or more punctured based bits of a base LDPC code, wherein:
the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code; and
the base LDPC code has no multiple edges; and
perform an LDPC decoding operation on the received codeword to recover a set of information bits, wherein the identified lifted bits are treated as erased for purposes of decoding.
37 . The device of claim 36 , wherein the one or more punctured base nodes correspond to one or more variable nodes having a degree equal to, or one less than, a number of check nodes of the base LDPC code.
38 . The device of claim 36 , wherein at least one of the one or more punctured base nodes corresponds to a highest-degree variable node of the base LDPC code.
39 . The device of claim 36 , wherein the one or more punctured base nodes correspond to one or more degree 2 variable nodes.
40 . The device of claim 39 , wherein the one or more punctured base nodes split one or more respective check nodes that are each connected to another variable node, and wherein each of the other variable nodes is connected by edges to both elements of the corresponding split check node.
41 . The device of claim 39 , wherein the one or more punctured base nodes eliminate double edges in the base LDPC code.
42 . The device of claim 36 , wherein a quasi-cyclic lifting is applied to the base LDPC code, and wherein permutations of edge clusters in the quasi-cyclic lifting are cyclic permutations.
43 . An encoder, comprising:
means for receiving a set of information bits;
means for performing a LDPC encoding operation on the set of information bits to produce a codeword; and
means for puncturing all lifted bits of the codeword that correspond to one or more punctured base bits of a base LDPC code used for the LDPC encoding operation, wherein:
the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code; and
the base LDPC code has no multiple edges.
44 . A decoder, comprising:
means receiving an LDPC codeword;
means for identifying all lifted bits of the LDPC codeword that correspond to one or more punctured based bits of a base LDPC code, wherein:
the one or more punctured base bits are those that correspond with one or more punctured base nodes, respectively, of the base LDPC code; and
the base LDPC code has no multiple edges; and
means for performing an LDPC decoding operation on the received codeword to recover a set of information bits, wherein the identified lifted bits are treated as erased for purposes of decoding.