Low-density parity-check codes for multiple code rates
AssigneeNokia Corporation
InventorVictor J. Stolpman
Life of this patent
Estimating the term…
Abstract
Puncture sequences S1, S2, etc. for code rates R1, R2, etc. less than a maximum code rate Rmax are defined subsets of a maximum rate puncture sequence Smax that corresponds to the maximum code rate Rmax. Each puncture sequence Si for a code rate Ri is related to the puncture sequence Si−1, of the previous code rate Ri−1, and preferably S1⊂S2⊂ . . . ⊂Smax−1⊂Smax. The puncture sequences are groups of one or more memory elements, each of which is a variable degree, a variable node location, a check degree, or a check node location. A method for deriving such a puncture sequence for variable code rates is also disclosed.
Claims38
A communication unit for a multiple code rate communication system comprising:
- a codeword defining N codeword elements and K information elements coded at a code rate R=K/(N−P), wherein P is a number of punctured elements of the codeword;
- a first storage location for storing an error reduction code mother code definition;
- a second storage location for storing a maximum puncture sequence Smax, wherein the maximum puncture sequence Smax is stored in and retrieved from a plurality of memory elements, wherein Smax is the puncture sequence for a maximum code rate Rmax, and further wherein Smax comprises a minimum puncture sequence S1 that is a puncture sequence for a minimum code rate R1, wherein the minimum puncture sequence S1 is stored in and retrieved from a subset of the plurality of memory elements that store the maximum puncture sequence Smax, wherein the codeword is one of decoded or encoded through the error reduction code mother code definition read from the first storage location and a selected one of puncturing sequences S1, S2, . . . Smax read from the second storage location wherein the sequence S2 is stored in and retrieved from a subset of the plurality of memory elements that store the maximum puncture sequence Smax.
A transceiver for transmitting and receiving a codeword at any of three coding rates R1, R2 and R3, wherein the codeword defines N codeword elements, K information elements, and P punctured elements, and the coding rates R1=K/(N−P1)<R2=K/(N−P2)<R3=K/(N−P3), comprising:
- a transmitter, a receiver, and storage for storing a low-density parity-check (LDPC) mother code definition;
- a plurality of memory elements that in combination store a puncture sequence S3 that corresponds to R3;
- a first set of computer instructions for retrieving a first subset of the plurality of memory elements to yield a puncture sequence S1 that corresponds to R1;
- and
- a second set of computer instructions for retrieving a second subset of the plurality of memory elements to yield a puncture sequence S2 that corresponds to R2.
A computer program embodied on a computer readable medium for determining a puncture sequence for a codeword, comprising:
- a first storage location for storing a low-density parity-check (LDPC) mother code definition;
- a second storage location for storing a plurality of memory elements Mall that in combination comprise a maximum rate puncture sequence Smax, that corresponds to a maximum code rate Rmax;
- and
- a first set of computer instructions for reading a first subset of memory elements Mset1, wherein the number of Mset1 is less than the number of Mall, wherein Mset1 comprises a puncturing sequence S1 that corresponds to a code rate R1<Rmax.
A method for determining a puncture sequence for an ensemble of low-density parity-check (LDPC) codes comprising:
- selecting at least one design criteria for an ensemble of LDPC codes and a stop criteria;
- calculating a mean input LLR values, mu0, that achieves the design criteria on the ensemble of codes;
- selecting a variable degree j within the design criteria for puncturing that requires one of a smallest mean input LLR value or a smallest decoding complexity;
- appending the variable degree to the puncturing sequence;
- adjusting the puncturing probability for the punctured variable degree, πj(0);
- and
- repeating the calculating and subsequent steps until the stop criteria is reached.
A transmitter comprising:
- an information source for providing a codeword;
- a memory for storing a low density parity check code LDPC mother code definition and a maximum puncture sequence Smax;
- a LDPC encoder having an input coupled to an output of the information source and an input coupled to an output of the memory;
- and
- a modulator having an input coupled to an output of the LDPC encoder,
- wherein the encoder operates in one instance to encode at a maximum rate Rmax by puncturing at least one elements of a codeword described by the maximum puncture sequence Smax read from the memory, and in another instance to encode at a lesser rate R1 by puncturing elements of a codeword described by a sequence S1 of the maximum puncture sequence Smax read from the memory, wherein the maximum puncture sequence Smax is stored in and retrieved a plurality of memory elements and the subset S1 is retrieved from a portion of the plurality of memory elements.
A receiver comprising:
- a demodulator for demodulating a received codeword;
- a memory for storing a low density parity check code LDPC mother code definition and a maximum puncture sequence Smax;
- and
- a LDPC decoder having an input coupled to an output of the demodulator and an input coupled to an output of the memory;
- wherein the decoder operates in one instance to decode at a maximum rate Rmax by de-puncturing elements of a codeword described by the maximum puncture sequence Smax read from the memory, and in another instance to decode at a lesser rate R1 by de-puncturing at least one elements of a codeword described by a sequence S1 of the maximum puncture sequence Smax read from the memory, wherein the maximum puncture sequence Smax is stored in and retrieved from a plurality of memory elements, wherein the sequence S1 is retrieved from fewer than all of the memory elements of the plurality of memory elements.
A method for operating a communication unit at multiple code rates comprising:
- receiving a codeword defining N codeword elements and K information elements coded at a code rate R=K/(N−P), wherein P is a number of punctured elements of the codeword;
- retrieving an error reduction code mother code definition from a first storage location;
- retrieving a puncture sequence from a second storage location, wherein the puncture sequence retrieved from the second storage location is a selected one of a maximum puncture sequence Smax for a maximum code rate Smax and a minimum puncture sequence S1 for a minimum code rate R1 and the minimum puncture sequence S1 is a subset of Smax and the minimum puncture sequence S1 corresponds to a column of a parity check matrix, wherein the maximum puncture sequence is stored in and retrieved from a combination of memory elements and the minimum puncture sequence S1 is stored in and retrieved from a subset of the combination of memory elements.
A circuit, comprising:
- a plurality of memory elements adapted to store a puncture sequence Smax, the puncture sequence Smax corresponding to a maximum code rate Rmax, the puncture sequence Smax being stored in a memory, a puncture sequence S1 being retrieved from a subset of the plurality of memory elements adapted to store the puncture sequence Smax, the puncture sequence S1 corresponding to a code rate R1 that is less than the maximum code rate Rmax;
- and
- circuitry adapted to perform one of encoding and decoding a codeword defining N codeword elements and K information elements coded at a code rate R=K/(N−P), where P is a number of punctured elements of the codeword and the code rate R includes the code rates Rmax and R1.
Dependencies are inferred from the claim text.