WO2014193893A1 - Encoding techniques using multiple coding strengths within a single ldpc code word - Google Patents

Encoding techniques using multiple coding strengths within a single ldpc code word Download PDF

Info

Publication number
WO2014193893A1
WO2014193893A1 PCT/US2014/039675 US2014039675W WO2014193893A1 WO 2014193893 A1 WO2014193893 A1 WO 2014193893A1 US 2014039675 W US2014039675 W US 2014039675W WO 2014193893 A1 WO2014193893 A1 WO 2014193893A1
Authority
WO
WIPO (PCT)
Prior art keywords
information bits
code word
encode
groups
bits
Prior art date
Application number
PCT/US2014/039675
Other languages
French (fr)
Inventor
Hang Jin
Original Assignee
Cisco Technology, Inc.
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 Cisco Technology, Inc. filed Critical Cisco Technology, Inc.
Priority to EP14733849.5A priority Critical patent/EP3005598B1/en
Priority to CN201480038744.0A priority patent/CN105359447B/en
Publication of WO2014193893A1 publication Critical patent/WO2014193893A1/en

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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • H04L1/0058Block-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection

Definitions

  • the present disclosure relates to encoding techniques for communication and data storage applications.
  • Low density parity check (LDPC) coding techniques are gaining increasing popularity, and have been accepted for numerous communication standards, e.g., IEEE 802.11 (Wi-FiTM) WiMAXTM, Long Term Evolution (LTE), Digital Video Broadcast (DVBc2), Data Over Cable Service Interface Specification (DOCSIS3.1), etc.
  • IEEE 802.11 Wi-FiTM
  • WiMAXTM Long Term Evolution
  • LTE Long Term Evolution
  • DVDc2 Digital Video Broadcast
  • DOCSIS3.1 Data Over Cable Service Interface Specification
  • LDPC coding is a type of block coding.
  • a decoder extracts k information bits from n coded bits using m parity check equations.
  • the code rate is defined as k/n.
  • LDPC coding like all forward error correction (FEC) coding techniques, uses extra information carried in the redundant bits to recover the lost or damaged information bits.
  • FEC forward error correction
  • an LDPC code word sends more "information" than the original information bits and "inter-connects" the original information with the redundancy information so that the decoder can recover lost or damaged original information bits.
  • the recovery ability of the coding used is defined as the coding strength.
  • FIG. 1 is a diagram pictorially illustrating the coding techniques presented herein.
  • FIGs. 2A and 2B are Tanner graphs of two example codes that are used in a combined single code word according to techniques presented herein.
  • FIG. 3 illustrates a combination/parallelizing of the Tanner graphs of FIGs. 2A and 2B.
  • FIG. 4 is a diagram similar to FIG. 3, but showing cross branches connected between the two Tanner graphs of FIGs. 2 A and 2B.
  • FIG. 5 is a diagram showing in more detail the placement of the cross branches between the two Tanner graphs of FIGs. 2 A and 2B.
  • FIG. 6 is a flow chart depicting operations to encode information bits according to the techniques presented herein.
  • FIG. 7 is a diagram illustrating an example of a symbol constellation in which bits for different positions in the symbol constellation are grouped and encoded with different coding strengths.
  • FIG. 8 is a block diagram of a device configured to encode information bits according to the techniques presented herein.
  • the information bits are partitioned into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits.
  • Each of the groups of information bits is encoded with a different coding strength/rate.
  • the resulting code word may be stored in a storage media or transmitted in a communication channel.
  • LDPC low density parity check
  • coding techniques in which different coding strengths/rates are applied to different information bits, based on the inherent reliability and immunity to channel impairments of the respective information bits. Multiple coding strengths/rates are used within a single LDPC code word. Advantages of this multi-coding strength/rate LDPC code word include better coding gain and less coding overhead.
  • Information bits are used to represent data for storage in a data storage device or medium, or for communication in a communication channel.
  • each of the information bits does not have equal reliability or immunity to channel impairments.
  • bits are mapped to symbols and the bit-to-symbol mapping is "un-equal", resulting in differences in reliability and immunity to channel impairments.
  • An example of this unequal bit-to-symbol mapping is described hereinafter in connection with FIG. 7.
  • a coding scheme is presented herein in which different coding strengths are applied to different groups of the information bits within a single code word (e.g., a single LDPC code word), depending on the inherent reliability and immunity of the information bits to channel impairments, such as impairments in a communication channel or impairments associated with a particular storage device or storage media.
  • the code word is constructed from multiple component code words encoded with different coding strengths (coding rates), with intra-branches connecting the multiple code words together.
  • the intra- branches are structured to meet certain code performance criteria (e.g., the girth of the composite code satisfying predetermined criteria).
  • this LDPC coding scheme has reduced complexity. Some of the information bits can be coded with a much higher code rate, leading to fewer computations. Second, it has better coding gain. The inherent reliability of the bits is factored in the code structure, achieving improved coding gain in the resulting code word. Third, it enjoys less coding overhead. Some of the bits are coded with a higher code rate, such that the overall coding rate is increased, resulting in reduced coding overhead.
  • FIG. 1 a diagram is shown that pictorially depicts the coding scheme according to these techniques.
  • a string of information bits is shown at reference numeral 10.
  • This string of bits 10 is to be encoded for storage or communication in a communication channel.
  • some of the bits are inherently less reliable or more susceptible to channel impairments, and these bits are shown at reference numeral 12.
  • other bits in the string 10 are inherently more reliable and less susceptible to channel impairments, and these bits are shown at reference numeral 14.
  • the higher reliability bits 14 are grouped together and encoded with a lower coding strength/higher coding rate as shown at reference numeral 16.
  • the lower reliability bits 12 are grouped together and encoded with a higher coding strength/lower coding rate as shown at reference numeral 18.
  • the resulting code word 20 thus includes a first plurality of bits 22 for a first component code word resulting from encoding of the higher reliability bits 14 with a lower coding strength/higher coding rate, and a second plurality of bits 24 for a second component code word resulting from encoding of the lower reliability bits 12 with a higher coding strength/lower coding rate.
  • the code word 20 is a single code word with multiple coding strengths/rates, that is, with two (or more) inter-connected component code words, each of which is encoded with a different coding strength.
  • the number of bits shown in the example of FIG. 1 is not meant to be limiting, but solely for illustrative purposes of the general concepts of the coding techniques presented herein.
  • Tanner graph is a graphic representation of an LDPC parity check matrix, and is used extensively for LDPC encoding/decoding.
  • a Tanner graph consists of two columns of nodes, the left column consists of variable nodes representing information bits, and the right column consists of the check nodes representing the constraints (parity check equations) or redundancy bits.
  • the coding rate k/(k+m).
  • the number of nodes shown in FIGs. 2A and 2B are for illustration purposes only and not meant to indicate precisely the actual number of information nodes and checking nodes used in the encoder and decoder, nor meant to be precisely indicative of the coding rates used in the examples shown in FIGs. 2A and 2B.
  • CPvl>CR2 meaning code C2 is stronger than code CI .
  • the coding rate is defined as k/n, k is the number of information bits, and n is the number of coded bits. The higher the coding rate, the less parity bits in the code, so the weaker the coding strength, and vice versa. Coding strength is inversely proportional to code/coding rate.
  • the Tanner graphs for codes CI and C2 shown in FIGs. 2A and 2B are used hereinafter to describe the coding scheme to code information bits into a single multiple coding strength code word. [0023] FIG.
  • the codes CI and C2 are referred to as component codes or component code words.
  • branches are placed between the Tanner graphs Gl and G2 for codes CI and C2. These branches are shown at reference numeral 30 and are referred to as cross branches.
  • the "degrees” refers to the number of connections from the k nodes (representing the information bits) to the m check nodes (representing the redundancy or check bits).
  • FIG. 5 a diagram is provided that shows the connection of the cross branches 30 between the Tanner graphs Gl and G2. A procedure to connect the cross branches to the variable and check nodes is described as follows.
  • a first cross branch is connected to the first variable node in Tanner graph Gl .
  • the selected cross branch is connected to the first check node of Tanner graph G2.
  • a minimum girth value of the composite Tanner graph G with the added cross branch is computed.
  • the girth of a code is the length of the shortest cycle in its Tanner graph.
  • a "cycle" refers to the sum of all paths from a starting point node back to that same node after passing through information nodes and checking nodes.
  • the predetermined criteria may be that the minimum girth is 3.
  • the process stops if all the cross branches are connected. If not, the minimum girth criteria (reduce the requirement) is changed or a different component code CI and C2 is selected.
  • cross branches between the Tanner graph representations for component code words are computed, where the number of cross branches is based on the average degrees of the Tanner graph representations of each of the code words.
  • the cross branches are computed so that the resulting single code word, which is a composite of the component code words, has a girth that satisfies predetermined criteria.
  • each of the groups of information bits is encoded with a different coding strength/rate.
  • kl bits are mapped onto the variable nodes in the Tanner graph Gl according to code strength/rate CRl
  • the k2 bits are mapped onto the variable nodes in Tanner graph G2 according to code strength/rate CR2.
  • the actual implementation of this mapping may be done through the corresponding composite parity check matrix.
  • the coding rates are CRl for the kl bits, and CR2 for the k2 bits, respectively.
  • the effective coding rate will be (kl+k2)/(nl+n2). Again, in this example, the CR1>CR2.
  • the resulting code word is stored in a storage device or storage media, or transmitted in a communication channel to one or more destination devices. It should be appreciated that, in practice, the coding scheme is performed for large blocks of bits in order to encode a large number of bits into a plurality of code words representing the original information bits, for storage or transmission in a communication channel.
  • FIG. 7 a diagram is shown for an example application of the coding techniques presented herein.
  • a 64 Quadrature Amplitude Modulation (QAM) symbol constellation 70 is shown.
  • the bits for the inner symbols of the constellation are more reliable and can be encoded with a relatively lower coding strength/higher coding rate.
  • the bits for the outer symbols shown at 90 are less reliable and are encoded with a relatively higher coding strength/lower coding rate.
  • the encoding scheme dictates the decoding process.
  • decoding code words encoded according to the encoding scheme presented herein involves receiving a code word that includes two (or more) inter-connected component code words, each encoded with a different coding strength.
  • the inter-connected component code words are jointly decoded according to their corresponding coding strengths to recover all the information bits for all the component code words.
  • FIG. 8 shows a device 100 comprising an encoder 110, a processor or central processing unit (CPU) 120, memory 130 in which is stored encoding control software 135, transmitter 140, and storage system 150.
  • the encoder 110 is a hardware block that is configured to perform the encoding operations described herein to encode information bits into code words.
  • the encoder 110 may be implemented in digital logic gates in one or more application specific integrated circuits (ASICs) or in a programmable logic device configured to perform the encoding operations presented herein.
  • ASICs application specific integrated circuits
  • the processor 120 may be a microcontroller or microprocessor that executes instructions stored/encoded in memory 130 for the encoding control software 135 in order to facilitate one or more of the encoding operations described herein in connection with the encoder, or to perform the entirety of the encoding process described herein.
  • the processor 120 may supply the information bits to be encoded to the encoder 110.
  • the processor 120 may also perform the bit-to-symbol mapping prior to supplying the information bits to the encoder.
  • the encoding operations described herein may be performed partially in hardware and partially in software, entirely in hardware or entirely in software.
  • the transmitter 140 may be a wired or wireless transmitter that is configured to format and transmits the code words over communication channel 160 to a destination device 170.
  • the transmitter 140 may be configured to send data over a wired or wired network.
  • the storage system 150 may be a memory writing subsystem that writes data for storage in a data storage media or device, such as the storage device 152 shown in FIG. 8.
  • An example of storage device 152 is an optical compact disk, Universal Serial Bus (USB) disk drive, magnetic hard disk drive, etc.
  • the memory 130 may comprise read only memory (ROM), random access memory (RAM), magnetic disk storage media devices, optical storage media devices, flash memory devices, electrical, optical, or other physical/tangible memory storage devices.
  • ROM read only memory
  • RAM random access memory
  • magnetic disk storage media devices such as magnetic disks
  • optical storage media devices such as magnetic tapes
  • flash memory devices such as electrical, optical, or other physical/tangible memory storage devices.
  • the memory 130 may comprise one or more tangible (non-transitory) computer readable storage media (e.g., a memory device) encoded with software comprising computer executable instructions and when the software is executed (by the processor 120) it is operable to perform the operations described herein.
  • LDPC code word applies different coding strengths (coding rates) for different groups of information bits within a single code word.
  • a LDPC code word may be constructed from multiple shorter code words (component code words) with a different coding strength by parallelizing Tanner graph representations of each of the component code words.
  • the LDPC code word is constructed from multiple shorter code words with different coding strengths/rates by adding cross branches between the Tanner graph representations for the shorter code words. The branches may be added in such a way that the girth of the composite code satisfies a predetermined requirement or criteria.
  • a method comprising, at a device having information bits to be stored in a storage media or transmitted in a communication channel, partitioning the information bits into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and encoding each of the groups of information bits with a different coding strength.
  • one or more computer readable storage media is provided which is encoded with software comprising computer executable instructions and when the software is executed operable to: partition information bits to be stored in a storage media or transmitted in a communication channel into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and encode each of the groups of information bits with a different coding strength.
  • an apparatus comprising an encoder; and a processor coupled to the encoder and configured to supply information bits to the encoded; wherein the encoder is configured to: partition the information bits into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and encode each of the groups of information bits with a different coding strength.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

Techniques are presented herein to encode information bits. The information bits are partitioned into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits. Each of the groups of information bits is encoded with a different coding strength. The resulting code word may be stored in a storage media or transmitted in a communication channel.

Description

ENCODING TECHNIQUES USING MULTIPLE CODING STRENGTHS WITHIN A
SINGLE LDPC CODE WORD
TECHNICAL FIELD
[0001] The present disclosure relates to encoding techniques for communication and data storage applications.
BACKGROUND
[0002] Low density parity check (LDPC) coding techniques are gaining increasing popularity, and have been accepted for numerous communication standards, e.g., IEEE 802.11 (Wi-Fi™) WiMAX™, Long Term Evolution (LTE), Digital Video Broadcast (DVBc2), Data Over Cable Service Interface Specification (DOCSIS3.1), etc.
[0003] LDPC coding is a type of block coding. On the encode side, an encoder adds m parity (redundant) bits to every k information bits to form n=k+m coded bits. On the decode side, a decoder extracts k information bits from n coded bits using m parity check equations. The code rate is defined as k/n.
[0004] LDPC coding, like all forward error correction (FEC) coding techniques, uses extra information carried in the redundant bits to recover the lost or damaged information bits. In other words, an LDPC code word sends more "information" than the original information bits and "inter-connects" the original information with the redundancy information so that the decoder can recover lost or damaged original information bits. The recovery ability of the coding used is defined as the coding strength.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 is a diagram pictorially illustrating the coding techniques presented herein.
[0006] FIGs. 2A and 2B are Tanner graphs of two example codes that are used in a combined single code word according to techniques presented herein.
[0007] FIG. 3 illustrates a combination/parallelizing of the Tanner graphs of FIGs. 2A and 2B.
[0008] FIG. 4 is a diagram similar to FIG. 3, but showing cross branches connected between the two Tanner graphs of FIGs. 2 A and 2B. [0009] FIG. 5 is a diagram showing in more detail the placement of the cross branches between the two Tanner graphs of FIGs. 2 A and 2B.
[0010] FIG. 6 is a flow chart depicting operations to encode information bits according to the techniques presented herein.
[0011] FIG. 7 is a diagram illustrating an example of a symbol constellation in which bits for different positions in the symbol constellation are grouped and encoded with different coding strengths.
[0012] FIG. 8 is a block diagram of a device configured to encode information bits according to the techniques presented herein.
DESCRIPTION OF EXAMPLE EMBODIMENTS
Overview
[0013] Techniques are presented herein to encode information bits. The information bits are partitioned into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits. Each of the groups of information bits is encoded with a different coding strength/rate. The resulting code word may be stored in a storage media or transmitted in a communication channel.
Example Embodiments
[0014] Current low density parity check (LDPC) coding techniques apply the same coding strength equally to all the information bits. That is, a single code rate is used for all the information bits contained in a code word.
[0015] Presented herein are coding techniques in which different coding strengths/rates are applied to different information bits, based on the inherent reliability and immunity to channel impairments of the respective information bits. Multiple coding strengths/rates are used within a single LDPC code word. Advantages of this multi-coding strength/rate LDPC code word include better coding gain and less coding overhead.
[0016] Information bits are used to represent data for storage in a data storage device or medium, or for communication in a communication channel. Generally, each of the information bits does not have equal reliability or immunity to channel impairments. For example, in communication applications, bits are mapped to symbols and the bit-to-symbol mapping is "un-equal", resulting in differences in reliability and immunity to channel impairments. An example of this unequal bit-to-symbol mapping is described hereinafter in connection with FIG. 7.
[0017] Applying the same coding strength (coding rate) to all the information bits does not provide equal error correction capability to all the information bits because the bits inherently have different reliabilities (different coding requirements). This contradicts the purpose of coding, i.e., "averaging" the reliabilities of all bits so that lost or damaged bits can be recovered.
[0018] Accordingly, a coding scheme is presented herein in which different coding strengths are applied to different groups of the information bits within a single code word (e.g., a single LDPC code word), depending on the inherent reliability and immunity of the information bits to channel impairments, such as impairments in a communication channel or impairments associated with a particular storage device or storage media. The code word is constructed from multiple component code words encoded with different coding strengths (coding rates), with intra-branches connecting the multiple code words together. The intra- branches are structured to meet certain code performance criteria (e.g., the girth of the composite code satisfying predetermined criteria).
[0019] There are several advantages to this LDPC coding scheme. First, it has reduced complexity. Some of the information bits can be coded with a much higher code rate, leading to fewer computations. Second, it has better coding gain. The inherent reliability of the bits is factored in the code structure, achieving improved coding gain in the resulting code word. Third, it enjoys less coding overhead. Some of the bits are coded with a higher code rate, such that the overall coding rate is increased, resulting in reduced coding overhead.
[0020] Referring now to FIG. 1, a diagram is shown that pictorially depicts the coding scheme according to these techniques. In FIG. 1, a string of information bits is shown at reference numeral 10. This string of bits 10 is to be encoded for storage or communication in a communication channel. In the string of information bits 10, some of the bits are inherently less reliable or more susceptible to channel impairments, and these bits are shown at reference numeral 12. Conversely, other bits in the string 10 are inherently more reliable and less susceptible to channel impairments, and these bits are shown at reference numeral 14. The higher reliability bits 14 are grouped together and encoded with a lower coding strength/higher coding rate as shown at reference numeral 16. The lower reliability bits 12 are grouped together and encoded with a higher coding strength/lower coding rate as shown at reference numeral 18. The resulting code word 20 thus includes a first plurality of bits 22 for a first component code word resulting from encoding of the higher reliability bits 14 with a lower coding strength/higher coding rate, and a second plurality of bits 24 for a second component code word resulting from encoding of the lower reliability bits 12 with a higher coding strength/lower coding rate. The code word 20 is a single code word with multiple coding strengths/rates, that is, with two (or more) inter-connected component code words, each of which is encoded with a different coding strength. The number of bits shown in the example of FIG. 1 is not meant to be limiting, but solely for illustrative purposes of the general concepts of the coding techniques presented herein.
[0021] Reference is now made to FIGs. 2A and 2B. The diagrams shown in these figures are called Tanner graphs. A Tanner graph is a graphic representation of an LDPC parity check matrix, and is used extensively for LDPC encoding/decoding. A Tanner graph consists of two columns of nodes, the left column consists of variable nodes representing information bits, and the right column consists of the check nodes representing the constraints (parity check equations) or redundancy bits. In an example where the number of variable nodes=k, and the number of check nodes=m, the coding rate=k/(k+m).
[0022] FIG. 2A shows the Tanner graph Gl for a first code CI, where Cl(nl, kl, ml=nl- kl) and FIG. 2B shows the Tanner graph G2 for a second code C2, where C2(n2, k2, m2= n2-k2). The number of nodes shown in FIGs. 2A and 2B are for illustration purposes only and not meant to indicate precisely the actual number of information nodes and checking nodes used in the encoder and decoder, nor meant to be precisely indicative of the coding rates used in the examples shown in FIGs. 2A and 2B. The coding rate for code CI is CRl=kl/nl and the coding rate C2 is CR2=k2/n2, respectively. In these examples, CPvl>CR2, meaning code C2 is stronger than code CI . The coding rate is defined as k/n, k is the number of information bits, and n is the number of coded bits. The higher the coding rate, the less parity bits in the code, so the weaker the coding strength, and vice versa. Coding strength is inversely proportional to code/coding rate. The Tanner graphs for codes CI and C2 shown in FIGs. 2A and 2B are used hereinafter to describe the coding scheme to code information bits into a single multiple coding strength code word. [0023] FIG. 3 illustrates the combining/parallelizing of the Tanner graphs Gl and G2 for codes CI and C2 to construct a larger Tanner graph G which has k=kl+k2 variable nodes, and m=ml+m2 check nodes for a composite code word. In the combined Tanner graph G, the codes CI and C2 are referred to as component codes or component code words.
[0024] Next, in FIG. 4, branches are placed between the Tanner graphs Gl and G2 for codes CI and C2. These branches are shown at reference numeral 30 and are referred to as cross branches. The number, L, of these cross branches may be determined by the "degrees" of the Tanner graphs Gl and G2. For example, L=max(Dl, D2), where Dl and D2 are the average degrees of the Tanner graphs Gl and G2, respectively. The "degrees" refers to the number of connections from the k nodes (representing the information bits) to the m check nodes (representing the redundancy or check bits).
[0025] Turning now to FIG. 5, a diagram is provided that shows the connection of the cross branches 30 between the Tanner graphs Gl and G2. A procedure to connect the cross branches to the variable and check nodes is described as follows.
1. A first cross branch is connected to the first variable node in Tanner graph Gl .
2. The selected cross branch is connected to the first check node of Tanner graph G2.
3. A minimum girth value of the composite Tanner graph G with the added cross branch is computed. The girth of a code is the length of the shortest cycle in its Tanner graph. As is known in the art, a "cycle" refers to the sum of all paths from a starting point node back to that same node after passing through information nodes and checking nodes.
4. If the minimum girth satisfies predetermined criteria, the next cross branch is selected and the process is repeated at operation 1. Otherwise, a different pair is selected, the pair being either a variable node of Gl and a check node of G2, or a variable node of G2 and a check node of Gl, and the process goes to operation 3. For example, the predetermined criteria may be that the minimum girth is 3.
5. The process stops if all the cross branches are connected. If not, the minimum girth criteria (reduce the requirement) is changed or a different component code CI and C2 is selected.
To summarize, cross branches between the Tanner graph representations for component code words (associated with different coding strengths/rates) are computed, where the number of cross branches is based on the average degrees of the Tanner graph representations of each of the code words. The cross branches are computed so that the resulting single code word, which is a composite of the component code words, has a girth that satisfies predetermined criteria.
[0026] Reference is now made to FIG. 6 for a description of a flow chart depicting operations of an encoding process according to the techniques presented herein. Reference is also made to FIG. 5 for this description. At 40, information bits to be encoded are partitioned into (at least two) groups based on inherent reliability and immunity to channel impairments of the respective bits. For example, as shown in FIG. 5, k information bits are partitioned into two groups with information bits kl and k2, respectively, such that kl+k2=k. The partitioning is done in such a way that the kl bits are inherently more reliable than the k2 bits.
[0027] At 50, each of the groups of information bits is encoded with a different coding strength/rate. For example, in FIG. 5, kl bits are mapped onto the variable nodes in the Tanner graph Gl according to code strength/rate CRl, and the k2 bits are mapped onto the variable nodes in Tanner graph G2 according to code strength/rate CR2. The actual implementation of this mapping may be done through the corresponding composite parity check matrix. The coding rates are CRl for the kl bits, and CR2 for the k2 bits, respectively. The effective coding rate will be (kl+k2)/(nl+n2). Again, in this example, the CR1>CR2.
[0028] At 60, the resulting code word is stored in a storage device or storage media, or transmitted in a communication channel to one or more destination devices. It should be appreciated that, in practice, the coding scheme is performed for large blocks of bits in order to encode a large number of bits into a plurality of code words representing the original information bits, for storage or transmission in a communication channel.
[0029] Turning to FIG. 7, a diagram is shown for an example application of the coding techniques presented herein. In this example, a 64 Quadrature Amplitude Modulation (QAM) symbol constellation 70 is shown. As indicated in the figure, at 80, the bits for the inner symbols of the constellation are more reliable and can be encoded with a relatively lower coding strength/higher coding rate. On the other hand, the bits for the outer symbols shown at 90 are less reliable and are encoded with a relatively higher coding strength/lower coding rate. [0030] The encoding scheme dictates the decoding process. The decoding process takes in the coded bits, and uses the composite parity check matrix (the composited Tanner graph) to decode the bits, without the need to know explicitly how the parity check parity matrix is constructed and why it is constructed in such a way. Generally, decoding code words encoded according to the encoding scheme presented herein involves receiving a code word that includes two (or more) inter-connected component code words, each encoded with a different coding strength. The inter-connected component code words are jointly decoded according to their corresponding coding strengths to recover all the information bits for all the component code words.
[0031] Referring now to FIG. 8, an example block diagram is shown for a device in which the coding techniques presented herein may be used. As explained above, the coding techniques may be employed in a device that encodes information for storage in a storage media or device or for transmission across a communication channel. FIG. 8 shows a device 100 comprising an encoder 110, a processor or central processing unit (CPU) 120, memory 130 in which is stored encoding control software 135, transmitter 140, and storage system 150. The encoder 110 is a hardware block that is configured to perform the encoding operations described herein to encode information bits into code words. For example, the encoder 110 may be implemented in digital logic gates in one or more application specific integrated circuits (ASICs) or in a programmable logic device configured to perform the encoding operations presented herein.
[0032] The processor 120 may be a microcontroller or microprocessor that executes instructions stored/encoded in memory 130 for the encoding control software 135 in order to facilitate one or more of the encoding operations described herein in connection with the encoder, or to perform the entirety of the encoding process described herein. For example, the processor 120 may supply the information bits to be encoded to the encoder 110. The processor 120 may also perform the bit-to-symbol mapping prior to supplying the information bits to the encoder. The encoding operations described herein may be performed partially in hardware and partially in software, entirely in hardware or entirely in software.
[0033] The transmitter 140 may be a wired or wireless transmitter that is configured to format and transmits the code words over communication channel 160 to a destination device 170. For example, the transmitter 140 may be configured to send data over a wired or wired network. [0034] The storage system 150 may be a memory writing subsystem that writes data for storage in a data storage media or device, such as the storage device 152 shown in FIG. 8. An example of storage device 152 is an optical compact disk, Universal Serial Bus (USB) disk drive, magnetic hard disk drive, etc.
[0035] The memory 130 may comprise read only memory (ROM), random access memory (RAM), magnetic disk storage media devices, optical storage media devices, flash memory devices, electrical, optical, or other physical/tangible memory storage devices. In general, the memory 130 may comprise one or more tangible (non-transitory) computer readable storage media (e.g., a memory device) encoded with software comprising computer executable instructions and when the software is executed (by the processor 120) it is operable to perform the operations described herein.
[0036] To summarize, encoding techniques are presented herein in which information bits are partitioned into groups based on their inherent reliability and immunity to channel impairments, and different groups are encoded with different coding strengths (coding rates) with a single LDPC code word that supports multiple coding rates.
[0037] Multiple coding rates are supported within a single LDPC code word in accordance with these techniques. The LDPC code applies different coding strengths (coding rates) for different groups of information bits within a single code word. As described herein, a LDPC code word may be constructed from multiple shorter code words (component code words) with a different coding strength by parallelizing Tanner graph representations of each of the component code words. The LDPC code word is constructed from multiple shorter code words with different coding strengths/rates by adding cross branches between the Tanner graph representations for the shorter code words. The branches may be added in such a way that the girth of the composite code satisfies a predetermined requirement or criteria.
[0038] In summary, a method is provided comprising, at a device having information bits to be stored in a storage media or transmitted in a communication channel, partitioning the information bits into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and encoding each of the groups of information bits with a different coding strength.
[0039] Similarly, in another form, one or more computer readable storage media is provided which is encoded with software comprising computer executable instructions and when the software is executed operable to: partition information bits to be stored in a storage media or transmitted in a communication channel into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and encode each of the groups of information bits with a different coding strength.
[0040] Furthermore, an apparatus is provided comprising an encoder; and a processor coupled to the encoder and configured to supply information bits to the encoded; wherein the encoder is configured to: partition the information bits into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and encode each of the groups of information bits with a different coding strength.
[0041] Described above are examples. The concepts described herein may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The foregoing examples are therefore to be considered in all respects illustrative and not meant to be limiting. Accordingly, it is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of any claims filed in applications claiming priority hereto interpreted in accordance with the breadth to which they are fairly, legally and equitably entitled.

Claims

What is claimed is:
1. A method comprising:
at a device having information bits to be stored in a storage media or transmitted in a communication channel, partitioning the information bits into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and
encoding each of the groups of information bits with a different coding strength.
2. The method of claim 1, wherein encoding comprises encoding information bits for a low density parity code word such that a different coding strength is applied to different groups of information bits within a single code word.
3. The method of claim 1, wherein encoding comprises encoding the information groups into a single low density parity code word that supports multiple coding strengths.
4. The method of claim 1, wherein encoding comprises encoding a group of information bits having a relatively low reliability and immunity to channel impairments with a relatively higher coding strength and encoding a group of information bits having a relatively high reliability and immunity to channel impairments with a relatively lower coding strength.
5. The method of claim 1, further comprising storing a resulting code word in a storage media or transmitting the code word in a communication channel.
6. The method of claim 1, wherein each of the groups corresponds to a component code word, and wherein encoding comprises encoding each of the component code words with a different coding strength by parallelizing Tanner graph representations of each of the component code words.
7. The method of claim 6, further comprising computing cross branches between the Tanner graph representations for the component code words, wherein the number of cross branches is based on average degrees of the Tanner graph representations of each of the component code words.
8. The method of claim 7, wherein computing cross branches is performed so that a resulting single code word, which is a composite of the component code words, has a girth that satisfies predetermined criteria.
9. One or more computer readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to:
partition information bits to be stored in a storage media or transmitted in a communication channel into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and
encode each of the groups of information bits with a different coding strength.
10. The computer readable storage media of claim 9, wherein the instructions operable to encode comprise instructions operable to encode the information bits for a low density parity code word such that a different coding strength is applied to different groups of information bits within a single code word.
11. The computer readable storage media of claim 9, wherein the instructions operable to encode comprise instructions operable to encode the information groups into a single low density parity code word that supports multiple coding strengths.
12. The computer readable storage media of claim 9, wherein the instructions operable to encode comprise instructions operable to encode a group of information bits having a relatively low reliability and immunity to channel impairments with a relatively higher coding strength and encode a group of information bits having a relatively high reliability and immunity to channel impairments with a relatively lower coding strength.
13. The computer readable storage media of claim 9, wherein each of the groups corresponds to a component code word, and the instructions operable to encode comprise instructions operable to encode each of the component code words with a different coding strength by parallelizing Tanner graph representations of each of the component code words.
14. The computer readable storage media of claim 13, further comprising instructions operable to compute cross branches between the Tanner graph representations for the component code words, wherein the number of cross branches is based on average degrees of the Tanner graph representations of each of the code words.
15. The computer readable storage media of claim 14, wherein the instructions operable to compute the cross branches comprise instructions operable to compute the cross branches so that that a resulting single code word, which is a composite of the component code words, has a girth that satisfies predetermined criteria.
16. An apparatus comprising:
an encoder; and
a processor coupled to the encoder and configured to supply information bits to the encoded;
wherein the encoder is configured to:
partition the information bits into at least two groups based on inherent reliability and immunity to channel impairments of the respective bits; and
encode each of the groups of information bits with a different coding strength.
17. The apparatus of claim 16, wherein the encoder is configured to encode information bits for a low density parity code word such that a different coding strength is applied to different groups of information bits within a single code word.
18. The apparatus of claim 16, wherein the encoder is configured to encode a group of information bits having a relatively low reliability and immunity to channel impairments with a relatively higher coding strength and encode a group of information bits having a relatively high reliability and immunity to channel impairments with a relatively lower coding strength.
19. The apparatus of claim 16, wherein each of the groups corresponds to a component code word, wherein the encoder is configured to encode each of the component code words with a different coding strength by parallelizing Tanner graph representations of each of the component code words.
20. The apparatus of claim 19, wherein the encoder is further configured to compute the cross branches so that a resulting single code word, which is a composite of the component code words, has a girth that satisfies predetermined criteria.
PCT/US2014/039675 2013-05-29 2014-05-28 Encoding techniques using multiple coding strengths within a single ldpc code word WO2014193893A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14733849.5A EP3005598B1 (en) 2013-05-29 2014-05-28 Encoding techniques using multiple coding strengths within a single ldpc code word
CN201480038744.0A CN105359447B (en) 2013-05-29 2014-05-28 Method and apparatus for encoding information bits

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/904,094 2013-05-29
US13/904,094 US9172400B2 (en) 2013-05-29 2013-05-29 Encoding techniques using multiple coding strengths within a single LDPC code word

Publications (1)

Publication Number Publication Date
WO2014193893A1 true WO2014193893A1 (en) 2014-12-04

Family

ID=51023113

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/039675 WO2014193893A1 (en) 2013-05-29 2014-05-28 Encoding techniques using multiple coding strengths within a single ldpc code word

Country Status (4)

Country Link
US (1) US9172400B2 (en)
EP (1) EP3005598B1 (en)
CN (1) CN105359447B (en)
WO (1) WO2014193893A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT3327936T (en) * 2016-11-23 2021-06-18 Grdf Coding/decoding with short quasi-cyclic semi-regular ldpc codes for low consumption applications such as remote meter reading

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2306653A1 (en) * 2008-07-04 2011-04-06 Mitsubishi Electric Corporation Check matrix creation device, check matrix creation method, check matrix creation program, transmission device, reception device, and communication system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8121020B1 (en) * 2002-10-08 2012-02-21 Urbain A. von der Embse QLM demodulation
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
EP1832002A1 (en) * 2004-12-29 2007-09-12 Intel Corporation Multilevel low density parity-check
US8050622B2 (en) 2006-02-10 2011-11-01 Cisco Technology, Inc. Method and system for detecting messages using enhanced distributed signaling
US8102882B2 (en) * 2006-05-02 2012-01-24 Nokia Corporation Subcarrier truncating data transmission scheme in OFDM system
US7454682B2 (en) 2006-10-11 2008-11-18 Cisco Technology, Inc. System for identifying localized burst errors
US8699604B2 (en) * 2007-12-11 2014-04-15 Koninklijke Philips N.V. System and method for relaying signals in asynchronous cooperative network
US8838519B2 (en) * 2011-10-06 2014-09-16 Ut-Battelle, Llc Graph-theoretic analysis of discrete-phase-space states for condition change detection and quantification of information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2306653A1 (en) * 2008-07-04 2011-04-06 Mitsubishi Electric Corporation Check matrix creation device, check matrix creation method, check matrix creation program, transmission device, reception device, and communication system

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CHARLY POULLIAT ET AL: "Enhancement of Unequal Error Protection Properties of LDPC Codes", EURASIP JOURNAL ON WIRELESS COMMUNICATIONS AND NETWORKING, vol. 2007, no. 1, 1 January 2007 (2007-01-01), pages 092659, XP055135359, ISSN: 1687-1499, DOI: 10.1109/18.910578 *
CHI-JEN WU ET AL: "A new construction of UEP QC-LDPC codes", PROC., IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY, ISIT 2010, IEEE, PISCATAWAY, NJ, USA, 13 June 2010 (2010-06-13), pages 849 - 853, XP031710648, ISBN: 978-1-4244-7890-3 *
GIANLUIGI LIVA: "Design of LDPC codes: A survey and new results", 1 September 2006 (2006-09-01), XP055056016, Retrieved from the Internet <URL:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.125.2561&rep=rep1&type=pdf> [retrieved on 20130311] *
MASNICK B ET AL: "On linear unequal error protection codes", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE PRESS, USA, vol. 13, no. 4, 1 October 1967 (1967-10-01), pages 600 - 607, XP011384941, ISSN: 0018-9448, DOI: 10.1109/TIT.1967.1054054 *
RAHNAVARD N ET AL: "NEW RESULTS ON UNEQUAL ERROR PROTECTION USING LDPC CODES", IEEE COMMUNICATIONS LETTERS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 10, no. 1, 1 January 2006 (2006-01-01), pages 43 - 45, XP001238634, ISSN: 1089-7798, DOI: 10.1109/LCOMM.2006.1576564 *
SANDBERG S ET AL: "Design of bandwidth-efficient unequal error protection LDPC codes", IEEE TRANSACTIONS ON COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, NJ. USA, vol. 58, no. 3, 1 March 2010 (2010-03-01), pages 802 - 811, XP011304246, ISSN: 0090-6778, DOI: 10.1109/TCOMM.2010.03.0800352 *
SANKAR H ET AL: "Design of low-density parity-check (LDPC) codes for high order constellations", GLOBAL TELECOMMUNICATIONS CONFERENCE, 2004. GLOBECOM '04. IEEE DALLAS, TX, USA 29 NOV.-3 DEC., 2004, PISCATAWAY, NJ, USA,IEEE, PISCATAWAY, NJ, USA, vol. 5, 29 November 2004 (2004-11-29), pages 3113 - 3117, XP010758295, ISBN: 978-0-7803-8794-2, DOI: 10.1109/GLOCOM.2004.1378925 *

Also Published As

Publication number Publication date
EP3005598B1 (en) 2018-07-11
US20140359390A1 (en) 2014-12-04
CN105359447A (en) 2016-02-24
US9172400B2 (en) 2015-10-27
CN105359447B (en) 2019-12-17
EP3005598A1 (en) 2016-04-13

Similar Documents

Publication Publication Date Title
US10536171B2 (en) Encoding/decoding method, device, and system
US11310000B2 (en) Transport block segmentation for multi-level codes
CN104219019B (en) Encoding method and encoding apparatus
WO2009031837A1 (en) Signal segmentation method and crc attachment method for reducing undetected error
US8161347B1 (en) Interleaving parity bits into user bits to guarantee run-length constraint
WO2017194013A1 (en) Error correction coding method and device
WO2016164367A3 (en) Device-specific variable error correction
KR20170097580A (en) Apparatus for polar coding
CN111669250B (en) Data transmission method, device and system
BR112019019253A2 (en) method for performing low density parity check code (ldpc) parity check matrix coding on a wireless and terminal communication system using the same
CN107733562B (en) Method and device for encoding and decoding polarization code
CN1756090B (en) Channel encoding apparatus and method
CN103312458A (en) Hybrid coding method
CN104135345A (en) Cross-layer coding and decoding method applied to long-term evolution system
JP6291296B2 (en) Transmitting apparatus and receiving apparatus using concatenated codes
US20160049962A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
EP3005598B1 (en) Encoding techniques using multiple coding strengths within a single ldpc code word
EP3737013B1 (en) Encoding method, decoding method and device
CN107733441B (en) Coding method and device, decoding method and device
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
JP7375111B2 (en) Encoding method and device
KR20150134505A (en) transmitter and signal processing method thereof
WO2019030908A1 (en) Rate matching in polar codes
US10797726B2 (en) Network data prediction method, network data processing device and network data processing method
US8954832B1 (en) Asymmetric distance coding

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201480038744.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14733849

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2014733849

Country of ref document: EP