WO2013047258A1 - Method for determining quasi-cyclic low-density parity-check code, and system for encoding data based on quasi-cyclic low-density parity-check code - Google Patents

Method for determining quasi-cyclic low-density parity-check code, and system for encoding data based on quasi-cyclic low-density parity-check code Download PDF

Info

Publication number
WO2013047258A1
WO2013047258A1 PCT/JP2012/073766 JP2012073766W WO2013047258A1 WO 2013047258 A1 WO2013047258 A1 WO 2013047258A1 JP 2012073766 W JP2012073766 W JP 2012073766W WO 2013047258 A1 WO2013047258 A1 WO 2013047258A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
bits
group
pattern
bit
Prior art date
Application number
PCT/JP2012/073766
Other languages
French (fr)
Inventor
Jonathan Yedidia
Yige Wang
Original Assignee
Mitsubishi Electric Corporation
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 Mitsubishi Electric Corporation filed Critical Mitsubishi Electric Corporation
Priority to CN201280047910.4A priority Critical patent/CN103843252B/en
Priority to JP2014506381A priority patent/JP5752317B2/en
Priority to EP12773409.3A priority patent/EP2761759A1/en
Publication of WO2013047258A1 publication Critical patent/WO2013047258A1/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
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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
    • H03M13/1154Low-density parity-check convolutional codes [LDPC-CC]
    • 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
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]

Definitions

  • This invention relates generally to quasi-cyclic (QC) low-density parity- check (LDPC) codes, and more particularly to constructing QC LDPC codes with no trapping sets.
  • QC quasi-cyclic
  • LDPC low-density parity- check
  • LDPC low- density parity-check
  • Random graph constructions can produce LDPC codes that approach the Shannon capacity.
  • LDPC graph constructions normally use a "Tanner graph,” which is a bi-partite graph including "variable” nodes representing the codeword bits, and "check" nodes representing the parity checks, where a variable node is connected to a check node by an edge if and only if the corresponding entry in the parity check matrix for the code is nonzero. Tanner graphs are well known.
  • LDPC codes based on highly random Tanner graph construction can closely approach the Shannon limit, those constructions are difficult to implement in hardware because the irregular connections between check and variable nodes in the Tanner graph of the code imply high complexity wiring. In actual implementations, more structured constructions are preferred because those provide practical wiring, and straightforward parallelism in the decoders.
  • Quasi-cyclic LDPC (QC LDPC) codes are structured graph constructions that use a parity check matrix which is partitioned into sub-matrices that have a circulant structure. Because the structured graph construction is practical to implement in hardware, QC LDPC codes are used in a variety communication networks, such as networks implemented according to the IEEE 802.16e, DVB-S2, and IEEE 802.11 standards.
  • Eliminating or lowering error floors is particularly important for applications that require extreme reliability demands, including high density data storage, and high speed fiber-optic communication systems.
  • QC LDPC codes are constructed based on a wide variety of techniques, including finite geometries, finite fields, and combinatorial designs. Recently, there has also been great interest in a class of "convolutional," or
  • spatially-coupled codes which are much more structured than the conventional random constructions, but have also been shown to closely approach the Shannon capacity, or even to achieve the Shannon capacity on a binary erasure channel (BEC).
  • BEC binary erasure channel
  • Error floor issues for LDPC codes that are decoded using belief propagation (BP) or related decoders are generally caused by "trapping sets.”
  • a trapping set is a set of a small number of bits that reinforce each other in their incorrect beliefs. Trapping sets of bits are invariably arranged in clustered short cycles in a Tanner graph for the code.
  • One way to remove the trapping sets is to design the Tanner graph so that clusters of short cycles do not exist.
  • An alternative, and at least conceptually simpler approach is to design codes with larger girths.
  • the "girth" of a code is the length of the shortest cycle in the Tanner graph.
  • QC quasi-cyclic
  • LDPC low-density parity-check
  • a trapping set is a set of a small number of bits that reinforce each other in their incorrect beliefs when decoded using a belief propagation decoder, or a related decoder such as a bit-flipping decoder.
  • a QC LDPC code can have many possible trapping sets, which are very difficult to detect. If one would attempt to test the QC LDPC code for a presence of all possible trapping sets, a database of many thousands of different patterns of possible trapping sets would be required, and such constructing and verifying the completeness of such a database would be impossible, or at least impractical in real time.
  • Various embodiments of the invention are based on a discovery that tail- biting spatially-coupled codes of girth eight or greater having columns of weight four have very few trapping sets. Furthermore, in such codes, all possible trapping sets are related to a particular configuration of bits and checks, which make possible to verify that a particular code does not have any trapping sets.
  • Tail-biting spatially-couple codes were selected in part because such codes have excellent waterfall performance. Accordingly, the QC LDPC code constructed by the embodiments of the invention has excellent waterfall performance and avoids error floors, because the error floors are caused by the trapping sets.
  • some embodiments of the invention are based on a realization that a matrix representing the QC LDPC code with no trapping sets can be selected from a set of base matrices representing a family of QC LDPC codes, wherein each code in the family is a tail-biting spatially-coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four.
  • the selection is based on a trapping set pattern that can be detected using the base matrix representing a QC LDPC code.
  • the trapping set pattern includes a pattern of six bits in the Tanner graph of the QC LDPC code. If the trapping set pattern is a pattern of "fully connected" six bits, then this trapping set pattern indeed includes the trapping set. More
  • the "fully connected" six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group. If the trapping set pattern is a pattern of nearly fully connected six bits, this trapping set pattern has a potential to include the trapping set, but might in fact not include one. Thus, such trapping set pattern is tested for the presence of a trapping set.
  • the nearly fully connected six bits form two groups of three bits, including a first group and a second group, wherein a first bit and a second bit of the first group is connected to every bit in the second group, and wherein a third bit of the first group is connected to two bits in the second group.
  • one embodiment of the invention discloses a method for determining a quasi-cyclic (QC) low-density parity -check (LDPC) code, such that the QC LDPC code has no trapping sets.
  • the method includes acquiring a set of matrices representing a family of QC LDPC codes, wherein each QC LDPC code is a tail-biting spatially-coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four, and selecting, based on a trapping set pattern, a matrix from the set of matrices, such that the matrix represents the QC LDPC code with no trapping sets.
  • the resulting QC LDPC code can be stored into a memory for encoding or decoding process.
  • Another embodiment discloses system for encoding data based on a quasi- cyclic (QC) low-density parity-check (LDPC) code, including a source for providing the data; a memory for storing QC LDPC code represented by a parity check matrix, wherein the parity check matrix represents a tail-biting spatially- coupled (TBSC) QC LDPC code with no trapping sets; and an encoder for encoding the data using the TBSC QC LDPC code to produce an encoded data, and for transmitting the encoded data over a channel.
  • the TBSC QC LDPC code may have a girth at least equal to eight, and a weight of a majority of columns in the matrix equal to four.
  • Yet another embodiment discloses a method for determining a quasi-cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets, including steps of: determining a skeleton base matrix of a tail-biting spatially-coupled code such that a weight of each column equals four; applying to the skeleton base matrix a girth-maximization procedure to produce the set of matrices representing a family of QC LDPC codes, wherein each QC LDPC code is a tail-biting spatially -coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four; selecting, from the set of matrices, a preliminary matrix having in a corresponding Tanner graph no pattern of fully connected six bits, wherein the fully connected six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group; testing, for each set of candidate elements in the preliminary matrix
  • Figure 1 is a block diagram of a method for determining a quasi-cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets, according to some embodiments of the invention.
  • QC quasi-cyclic
  • LDPC low-density parity-check
  • Figure 2A is an example of Tanner graph of the QC LDPC code that may include a trapping set pattern
  • Figure 2B is an example of Tanner graph of the QC LDPC code that may include a trapping set pattern
  • Figure 2C is an example of Tanner graph of the QC LDPC code that may include a trapping set pattern
  • Figure 2D is an example of Tanner graph of the QC LDPC code that may include a trapping set pattern
  • FIG. 3 is a block diagram of another embodiment of the invention.
  • Figure 4 is an example of a matrix determined by one of embodiments of the invention.
  • FIG. 5 is an example of a matrix determined by one of embodiments of the invention.
  • Figure 5 is an example of a matrix determined by one of embodiments of the invention.
  • Figure 6 is an example of a matrix determined by one of embodiments of the invention.
  • Figure 7 is a block diagram of a girth-maximization method
  • Figure 8 is a block diagram of a method for searching and testing each set of candidate elements according to some embodiments of the invention.
  • Figure 9 is a block diagram of a method for selecting entries of a matrix to be removed.
  • FIG 10 is a schematic of various systems employing some embodiments of the invention.
  • Figure 1 shows a block diagram of a method 100 for determining a quasi- cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets, according to some embodiments of the invention.
  • the method can be performed by a processor 101, which can be operatively connected to a memory and input/output interfaces, as known in the art.
  • QC quasi- cyclic
  • LDPC low-density parity-check
  • a set of matrices 126 representing a family of QC LDPC codes is acquired 120.
  • Each QC LDPC code is a tail-biting spatially -coupled (TBSC) QC LDPC code of girth 112 having a value not less than eight, and each column of each matrix 125 in the set has a weight 114 having a value not less than four.
  • the set of matrices can be determined, e.g., using a skeleton based matrix as described below, or received over a wired or wireless channel.
  • the method selects 130, based on a trapping set pattern 110, a matrix 135 from the set of matrices, such that the matrix 135 represents the QC LDPC code without trapping sets.
  • the matrix can be stored 140 in a memory 140.
  • the matrix 135 can be submitted 150 to an encoder 170 for encoding data 160, and for transmitting 180 the encoded data. Similarly, the matrix 135 can be used for decoding the encoded data.
  • the trapping set pattern includes a pattern of six bits in the Tanner graph of the QC LDPC code, as shown in Figures 2A-D.
  • the Tanner graph includes bits, e.g., bits 211-216, and parity checks, e.g., parity checks 219. Two bits can be connected to each other through parity check.
  • the parity check can be a satisfied parity check or an unsatisfied parity check, based on the values of the bits. Bits can also be called variable nodes, or variables.
  • the parity check can also be called a parity check node.
  • Figure 2A shows a trapping set pattern of fully connected six bits 211-216.
  • Such trapping set pattern indeed includes a trapping set.
  • the fully connected six bits form two groups of three bits, i.e., a first group 217 and a second group 218, wherein every bit in one group is connected to every bit in the other group.
  • Figure 2B shows a candidate trapping set pattern of nearly fully connected six bits 221-226.
  • This trapping set pattern may include a trapping set and is tested for the presence of the trapping set.
  • the nearly fully connected six bits form two groups of three bits, including a first group 227 and a second group 228, wherein a first bit 221 and a second bit 222 of the first group is connected to every bit in the second group, and wherein a third bit 223 of the first group is connected to two bits in the second group.
  • Figure 2C shows the trapping set pattern that includes a pattern of six bits 231-236 in a Tanner graph of the matrix, wherein the six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group through a "satisfied" parity check 239, and wherein each of the six bits is connected to one "unsatisfied" parity check 238.
  • Figure 2D shows the trapping set pattern that includes a pattern of six bits 241-246, wherein one unsatisfied parity check is removed. If only unsatisfied parity checks are removed from the trapping set pattern, the trapping set pattern remains a trapping set, because the unsatisfied parity checks bring in correct information in a BP decoder. Thus, both patterns of Figures 2C and 2D are considered trapping set patterns of fully connected six bits.
  • QC LDPC codes which are structured codes whose decoders are easier to be constructed in hardware.
  • the QC LDPC codes have therefore been used in many standards.
  • a QC LDPC code has a parity check matrix that is composed entirely from p xp sub-matrices that are either p xp circulant permutation matrices, oxp xp all-zeroes matrices. For example, the following would be the parity check matrix for a QC LDPC code, where p - 3: 0 1 0 0 0 0 0 1 0 0
  • the parity-check matrix is constructed from 3x3 sub- matrices as:
  • the QC LDPC code can equivalently be described in terms of its "base matrix,” which lists the circulant shifts and uses to denote an all zeroes matrix.
  • base matrix equivalent to the parity check matrix in our example is
  • a tail-biting spatially-coupled QC LDPC code is a QC LDPC code whose base matrix has a particular structure.
  • p the size of the/? xp sub-matrices
  • J the number of rows in the base-matrix
  • L the number of columns in the base-matrix
  • S the number of non-negative entries in each row of the base-matrix
  • P the number of non-negative entries in each column of the base matrix.
  • the last row of the base matrix of a regular TBSC QC LDPC code in conventional form 11 begins with L-S entries (representing all-zero matrices), followed by S entries that are non-negative integers ranging from 0 to p-1.
  • the next to last row above that is also has S non-negative entries and L-S entries that are equal to -1, but the positions of the non-negative entries is shifted to the left by G L/J.
  • the positions of the non-negative entries are further shifted to the left by the same value.
  • the positions of the non- negative entries wrap around to the right-hand side of the matrix.
  • the LDPC code can described using the "Tanner graph,” which is
  • variable nodes representing the codeword bits
  • check nodes representing the parity checks
  • Cycles in the Tanner graph of QC LDPC codes can be identified using their parity check matrices.
  • Each check node in the Tanner graph of a code corresponds to a row in its parity check matrix, and each variable node corresponds to a column.
  • a cycle is a path through nodes in the Tanner graph, alternating between check and variable nodes, which begins and ends at the same node.
  • a cycle can be visualized as a sequence of alternating vertical and horizontal moves through the matrix starting and ending on the same row of the matrix.
  • a vertical move (along a column) corresponds to selecting a second edge connected to the same variable node that forms the next step in the cycle.
  • a horizontal move (along a row) corresponds to selecting two edges connected to the same check node that form part of the path.
  • cycles in the Tanner graph can be identified based on conditions on the base matrix, i.e., values of the elements/parameters of the base matrix.
  • adjusting the non-negative parameters of the base matrix can be used to eliminate short cycles.
  • the "girth" of the Tanner graph of an LDPC code is the length of its shortest cycle.
  • Figure 3 shows a non-limited example of one embodiment of the invention.
  • a skeleton base matrix (SBM) 325 of a tail-biting spatially- coupled code is determined 320 such that the weight of each column is four.
  • the skeleton base matrix represents a family of codes that have a block-length 312 and a rate 314, and is used to determine the set of matrices 126.
  • the block-length and the rate can be predetermined or determined in real time, e.g., randomly.
  • An example 410 of a transpose of the skeleton base matrix 325 is shown in Figure 4, as described in more details below.
  • a girth-maximization method 330 is applied to the skeleton base matrix to produce the set of matrices 126.
  • Various girth-maximization methods can be used by the embodiment.
  • a specific girth- maximization procedure is selected such that the column weights of each matrix 125 in the set 126 are preserved.
  • the selection 130 includes selecting 340, from the set of matrices, a preliminary matrix 345 having no pattern of fully connected six bits in a corresponding Tanner graph. This is because the matrix in the corresponding Tanner graph has a pattern of fully connected six bits includes a trapping set, and should not be selected as the matrix 135.
  • the matrix represents the QC LDPC codes with no trapping sets and is selected as the matrix 135. However, if the preliminary matrix includes one or more sets of elements forming a pattern of nearly fully connected six bits in the corresponding Tanner graph, such matrix may or may not include the trapping set.
  • the selecting 130 includes testing 350, for each candidate set of elements in the preliminary matrix forming a pattern of nearly-fully connected six bits in the corresponding Tanner graph, whether the candidate set of elements is a trapping set. If no trapping sets are found 360, then the preliminary matrix is selected 362 as the matrix 135. Otherwise, the above steps are repeated 364 for the next preliminary matrix selected from the set 126.
  • the skeleton base matrix has
  • non-negative entries of the skeleton base matrix are denoted with a symbol * below.
  • the columns of the skeleton base matrix are organized into pairs that are identical. More generally, the columns of this skeleton base matrix can be organized into groups of size G.
  • some embodiments use an irregular structure, where certain groups of columns have a different size than other groups of columns.
  • This base matrix is similar to that in Equation (1). The only difference is that the last group of two identical columns has been replaced with a group of three identical columns.
  • Some embodiments use larger values of J and L, and correspondingly reduce the size of p. For larger values of J and L, it is easier to make irregular versions of the base matrix that improve the waterfall performance, as described below.
  • girth-maximization methods can be used by the embodiments of the invention.
  • a specific girth-maximization method is selected such that the weights of each matrix 125 in the set 126 are preserved.
  • Figure 7 shows an example of a girth-maximization method 700, which optimizes the girth of the QC LDPC code such that the weights of each matrix 125 in the set 126 are preserved.
  • One input to the girth maximization procedure is a skeleton base matrix 325 that specifies a family of TBSC QC LDPC codes.
  • Another input is a desired girth 112; e.g., eight.
  • the desired output is a matrix 125 for a TBSC QC LDPC code of the desired girth that has the form specified by the skeleton base matrix, but where the unknown parameters in the skeleton base matrix are definite values.
  • cost function Another input to the method is a "cost function" associated with each type of cycle.
  • the cost function used depends on the number of cycles in the current code that have length less than the desired girth.
  • a weight vector 710 is used, such that shorter cycles are weighted to be more costly than longer cycles. For example, if girth 8 is desired, then we could assign a cost of 10 for each four-cycle, and a cost of 1 for each six-cycle. Because the procedure tries to minimize cost, the procedure first removes four-cycles, and then six-cycles.
  • the girth maximization iteratively updates the current non-negative parameters in the base matrix. During each iteration, the single non-negative parameter is changed to the value that effects the greatest reduction in the cost function.
  • a "cost matrix” is determined 730, which, for each non-negative parameter value, gives the cost of changing that parameter value to every other possible value from 0 to p-1. From the cost matrix, a "gain matrix” can be generated 740, which gives the improvement in cost for changing each possible non-negative parameter value from its current value to each possible other value.
  • the method checks 750 whether there is a positive gain that improves the cost. If the gain is positive, then the single non-negative parameter value change that most improves the cost is selected and is used to update the base matrix 760 appropriately. Then, we re-determine the cost matrix 730 and iterate.
  • the method 700 terminates when we can no longer change any single parameter value to a value that further reduces the cost (and thus the number of undesired cycles). Formally, this means that the maximum gain in the gain matrix is no longer positive 750.
  • we check 770 whether the costs are zero in the current base matrix. If they are, then we have found a base matrix that does not have any short cycles; e.g., if girth eight is the goal, a cost of zero indicates that there are no 4-cycles or 6-cycles. Therefore, in that case we output the base matrix 780 representing the TBSC LDPC code of the desired girth 125.
  • the procedure has failed 790.
  • the procedure cannot succeed; in particular if p is too small and g is too large.
  • the procedure normally succeed, and can be used multiple times to generate a set of matrices 126 that conform to the structure specified by the skeleton base matrix and that has the desired girth.
  • the procedure successfully found codes with the desired girth and structure.
  • a set of candidate elements of the matrix representing a TBSC QC LDPC code forms a trapping set candidate in the corresponding Tanner graph, i.e., the pattern of nearly-fully connected six bits.
  • the set of candidate elements may form a trapping set, or not, i.e., may in fact not form a trapping set.
  • various embodiments of the invention search for the set of candidate elements, and test each set to determine whether the set is a trapping set.
  • the testing process uses belief propagation (BP) decoder assuming a binary symmetric channel, where each bit in the trapping set candidate is initialized to the incorrect value, and all other bits in the graph are initialized to the correct value. If the BP decoder fails to decode successfully, then the trapping set candidate is a true trapping set, and the code is unacceptable.
  • BP belief propagation
  • Figure 8 shows a block diagram of a method for searching and testing each set of candidate elements.
  • the method searches 810 for the pattern of fully connected six bits and/or for the pattern of nearly fully connected six bits in each matrix in the set of matrices. For example, one embodiment determines candidate six bits forming multiple cycles 815 of length eight in a corresponding Tanner graph, and determines whether the candidate six bits form the pattern of fully connected six bits and/or the pattern of nearly fully connected six bits.
  • a block is constructed wherein the correct values of the candidate bits in the Tanner graph of the code are changed 820 to be incorrect, while preserving correct values of all other bits in the code.
  • the block is then decoded 830 using the BP decoder, and the result of decoding is checked 840 for correctness. If the decoder failed to decode the block, then the method finds 845 that the set of candidate elements forms a trapping set. Otherwise, the method finds 845 that the set of candidate elements does not form a trapping set.
  • Codes with fully regular weights of the columns may not optimize the waterfall performance.
  • the waterfall performance is improved when some columns are changed to higher degrees.
  • some embodiments of the invention increase a weight of at least one column of the matrix.
  • the new increased value of the weight can be any value greater than four, and less than or equal to the maximum column weight.
  • the increasing step can be applied during any stage of the method. For example, the increasing can be applied to the matrix 125 or to the matrix 135.
  • the choice of which columns to change to higher degrees can be made using, e.g., a density evolution method.
  • the code is tested on the binary erasure channel (BEC), and a threshold of the code for the BEC is
  • the "threshold" for the BEC would be the maximum erasure probability such that the code will continue to decode
  • the weight of the higher weight columns can be determined in a variety of ways. Selecting full column weight (every element in the column of the base matrix is non-negative) may give the best threshold performance under density evolution, but it may be inconvenient for the practical construction of a decoder in hardware. Alternatively, one embodiment selects the largest weight compatible with hardware implementation.
  • bits corresponding to higher weight columns have many inputs from unsatisfied parity checks, and therefore do not participate in any trapping sets. Therefore, these bits are ignored when searching for trapping sets.
  • Figure 6 shows an example of the transposed base matrix 610 of such code.
  • the density evolution threshold of the code with transposed base matrix 510 on the BEC is improved by converting two columns of the matrix from weight four to weight twenty.
  • the exact values of the base matrix entries in the higher weight columns that are changed from -1 to a non-negative value are not always important.
  • the values can be random, or determined by a girth-maximization method.
  • Some embodiments improve the waterfall performance of the code by removing elements from the base matrix 135 by transforming some weight four columns into weight three columns.
  • the elements are removed from the base matrix to reduce the weight of at least one column to weight three.
  • the removed elements can be selected using a density evolution method. Additionally or alternatively, the removed elements can be selected based on corresponding positions of the elements in trapping set patterns or candidate trapping set patterns.
  • each base matrix entry corresponds to an edge between a check node and a bit node in the Tanner graph.
  • One embodiment removes, if possible, base matrix entries that correspond to "internal edges" in trapping set candidates, rather than external edges.
  • Figure 9 shows an example of a method to select the entries to be removed.
  • the method sets the number of entries to remove.
  • a penalty value is assigned to each entry (i.e., each edge) in the base matrix with the initial values equal to, e.g., zero.
  • the penalty values are modified based on corresponding positions in of the elements in the trapping set pattern. If the entry is an internal edge for a trapping set candidate, its penalty value is decreased by one. If it is an external edge for a trapping set candidate, then the penalty value is increased by one. If the entry belongs to a trapping set that already has one external check removed, then set the penalty value of this entry to infinity.
  • a set of entries with penalty values below a threshold 935 is selected.
  • the entry in the set that maximizes a density evolution threshold 945 is removed. For example, the method selects a number of entries with the smallest penalty values and select the one that improves the density evolution threshold the most to remove. The abovementioned steps can be repeated to remove multiple entries. After the entries to remove are selected, one
  • the QC LDPC code determined by embodiments of the invention can be used in both decoding and encoding procedure, such as by a system 1000 shown in Figure 10.
  • the embodiments of the invention provide the method 100 for constructing a quasi-cyclic low-density parity-check (QC-LDPC) code with a high girth, which can be stored in a memory 1050.
  • Such a code can then be used by an encoder 1020 to encode data, e.g., an information block 1001 of k symbols u[a] generated by a source 1010.
  • the encoded data can be transmitted through a noisy channel 1030 as a code- word x[n] 1002 including N symbols.
  • the channel can be a communications channel.
  • the "channel" can also be storage media. In this case, the code-word is written to the media for later retrieval.
  • the embodiments may be implemented in any of numerous ways.
  • the embodiments may be implemented using hardware, software or a combination thereof.
  • processors may be implemented as integrated circuits, with one or more processors in an integrated circuit component.
  • a processor may be implemented using circuitry in any suitable format.
  • a computer can be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, minicomputer, or a tablet computer.
  • Such computers may be interconnected by one or more networks in any suitable form, including as a local area network or a wide area network, such as an enterprise network or the Internet.
  • networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
  • embodiments of the invention may be embodied as a method, of which an example has been provided.
  • the steps performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which steps are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
  • the method and system of this invention are applicable to many kinds of fields.

Landscapes

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

Abstract

A system and a method for determining a quasi-cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets are disclosed. A set of matrices representing a family of QC LDPC codes are acquired, wherein each QC LDPC code is a tail-biting spatially-coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four. Based on a trapping set pattern, a matrix from the set of matrices is selected such that the matrix represents the QC LDPC code with no trapping sets. The matrix can be stored into a memory.

Description

[DESCRIPTION]
METHOD FOR DETERMINING QUASI-CYCLIC LOW-DENSITY PARITY- CHECK CODE, AND SYSTEM FOR ENCODING DATA BASED ON QUASI- CYCLIC LOW-DENSITY PARITY-CHECK CODE
[Technical Field]
[0001]
This invention relates generally to quasi-cyclic (QC) low-density parity- check (LDPC) codes, and more particularly to constructing QC LDPC codes with no trapping sets.
[Background Art]
[0002]
Two broad classes of methods can be used for the construction of low- density parity-check (LDPC) codes. One class is based on random graph
constructions, while the other class is based on structured algebraic constructions. Random graph constructions can produce LDPC codes that approach the Shannon capacity.
[0003]
LDPC graph constructions normally use a "Tanner graph," which is a bi-partite graph including "variable" nodes representing the codeword bits, and "check" nodes representing the parity checks, where a variable node is connected to a check node by an edge if and only if the corresponding entry in the parity check matrix for the code is nonzero. Tanner graphs are well known.
[0004]
Although LDPC codes based on highly random Tanner graph construction can closely approach the Shannon limit, those constructions are difficult to implement in hardware because the irregular connections between check and variable nodes in the Tanner graph of the code imply high complexity wiring. In actual implementations, more structured constructions are preferred because those provide practical wiring, and straightforward parallelism in the decoders.
[0005]
Quasi-cyclic LDPC (QC LDPC) codes are structured graph constructions that use a parity check matrix which is partitioned into sub-matrices that have a circulant structure. Because the structured graph construction is practical to implement in hardware, QC LDPC codes are used in a variety communication networks, such as networks implemented according to the IEEE 802.16e, DVB-S2, and IEEE 802.11 standards.
[0006]
For most applications, it is important to optimize decoding performance in a "water-fall" regime where the signal-to-noise ratio (SNR) is relatively low.
However, for some applications, optimizing water-fall performance is not sufficient. One must also avoid "error floors" that are characteristic of many LDPC codes in higher SNR regimes. The error floor in the performance curve means that the decoding failure rate does not continue to decrease as the SNR increases.
Eliminating or lowering error floors is particularly important for applications that require extreme reliability demands, including high density data storage, and high speed fiber-optic communication systems.
[0007]
Generally, QC LDPC codes are constructed based on a wide variety of techniques, including finite geometries, finite fields, and combinatorial designs. Recently, there has also been great interest in a class of "convolutional," or
"spatially-coupled" codes, which are much more structured than the conventional random constructions, but have also been shown to closely approach the Shannon capacity, or even to achieve the Shannon capacity on a binary erasure channel (BEC). Those codes are significant here, because the codes can be implemented using quasi-cyclic constructions, and the codes should thus be able to achieve very good performance while retaining the practicality of other structured QC LDPC codes.
[0008]
Error floor issues for LDPC codes that are decoded using belief propagation (BP) or related decoders are generally caused by "trapping sets." A trapping set is a set of a small number of bits that reinforce each other in their incorrect beliefs. Trapping sets of bits are invariably arranged in clustered short cycles in a Tanner graph for the code. One way to remove the trapping sets is to design the Tanner graph so that clusters of short cycles do not exist. An alternative, and at least conceptually simpler approach is to design codes with larger girths. The "girth" of a code is the length of the shortest cycle in the Tanner graph. By removing short cycles, we remove potentially dangerous configurations of cycles, and hopefully lower the error floor. Unfortunately, there are no guarantees that the code with large girth, e.g., eight or greater, will have no trapping sets.
[0009]
Therefore, there is a need in the art to provide a method for determining QC LDPC codes having no trapping sets.
[Summary of the Invention]
[0010]
It is an object of the present invention to provide a system and a method for constructing a quasi-cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets. Another object of the invention is to determine such the QC LDPC that optimizes waterfall performance code and avoids error floors.
[0011] A trapping set is a set of a small number of bits that reinforce each other in their incorrect beliefs when decoded using a belief propagation decoder, or a related decoder such as a bit-flipping decoder. Usually, a QC LDPC code can have many possible trapping sets, which are very difficult to detect. If one would attempt to test the QC LDPC code for a presence of all possible trapping sets, a database of many thousands of different patterns of possible trapping sets would be required, and such constructing and verifying the completeness of such a database would be impossible, or at least impractical in real time.
[0012]
Various embodiments of the invention are based on a discovery that tail- biting spatially-coupled codes of girth eight or greater having columns of weight four have very few trapping sets. Furthermore, in such codes, all possible trapping sets are related to a particular configuration of bits and checks, which make possible to verify that a particular code does not have any trapping sets.
Accordingly, this discovery makes it possible to construct QC LDPC codes with no trapping sets.
[0013]
The abovementioned discovery is based on extensive research and testing. Tail-biting spatially-couple codes were selected in part because such codes have excellent waterfall performance. Accordingly, the QC LDPC code constructed by the embodiments of the invention has excellent waterfall performance and avoids error floors, because the error floors are caused by the trapping sets.
[0014]
Specifically, some embodiments of the invention are based on a realization that a matrix representing the QC LDPC code with no trapping sets can be selected from a set of base matrices representing a family of QC LDPC codes, wherein each code in the family is a tail-biting spatially-coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four. The selection is based on a trapping set pattern that can be detected using the base matrix representing a QC LDPC code.
[0015]
The trapping set pattern includes a pattern of six bits in the Tanner graph of the QC LDPC code. If the trapping set pattern is a pattern of "fully connected" six bits, then this trapping set pattern indeed includes the trapping set. More
specifically, the "fully connected" six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group. If the trapping set pattern is a pattern of nearly fully connected six bits, this trapping set pattern has a potential to include the trapping set, but might in fact not include one. Thus, such trapping set pattern is tested for the presence of a trapping set. The nearly fully connected six bits form two groups of three bits, including a first group and a second group, wherein a first bit and a second bit of the first group is connected to every bit in the second group, and wherein a third bit of the first group is connected to two bits in the second group.
[0016]
Accordingly, one embodiment of the invention discloses a method for determining a quasi-cyclic (QC) low-density parity -check (LDPC) code, such that the QC LDPC code has no trapping sets. The method includes acquiring a set of matrices representing a family of QC LDPC codes, wherein each QC LDPC code is a tail-biting spatially-coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four, and selecting, based on a trapping set pattern, a matrix from the set of matrices, such that the matrix represents the QC LDPC code with no trapping sets. The resulting QC LDPC code can be stored into a memory for encoding or decoding process.
[0017] Another embodiment discloses system for encoding data based on a quasi- cyclic (QC) low-density parity-check (LDPC) code, including a source for providing the data; a memory for storing QC LDPC code represented by a parity check matrix, wherein the parity check matrix represents a tail-biting spatially- coupled (TBSC) QC LDPC code with no trapping sets; and an encoder for encoding the data using the TBSC QC LDPC code to produce an encoded data, and for transmitting the encoded data over a channel. The TBSC QC LDPC code may have a girth at least equal to eight, and a weight of a majority of columns in the matrix equal to four.
[0018]
Yet another embodiment discloses a method for determining a quasi-cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets, including steps of: determining a skeleton base matrix of a tail-biting spatially-coupled code such that a weight of each column equals four; applying to the skeleton base matrix a girth-maximization procedure to produce the set of matrices representing a family of QC LDPC codes, wherein each QC LDPC code is a tail-biting spatially -coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four; selecting, from the set of matrices, a preliminary matrix having in a corresponding Tanner graph no pattern of fully connected six bits, wherein the fully connected six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group; testing, for each set of candidate elements in the preliminary matrix forming a pattern of nearly-fully connected six bits in the corresponding Tanner graph, whether the set of candidate elements includes a trapping set, wherein the nearly-fully connected six bits form two groups of three bits, including a first group and a second group, wherein a first bit and a second bit of the first group is connected to every bit in the second group, and wherein a third bit of the first group is connected to two bits in the second group; and finding the preliminary matrix as a matrix representing the QC LDPC code with no trapping sets, if the trapping set is not found; and otherwise repeating the selecting, the testing, and the finding, wherein the steps of the method are performed by a processor.
[Brief Description of the Drawings]
[0019]
[Fig. 1]
Figure 1 is a block diagram of a method for determining a quasi-cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets, according to some embodiments of the invention.
[Fig. 2A]
Figure 2A is an example of Tanner graph of the QC LDPC code that may include a trapping set pattern;
[Fig. 2B]
Figure 2B is an example of Tanner graph of the QC LDPC code that may include a trapping set pattern;
[Fig. 2C]
Figure 2C is an example of Tanner graph of the QC LDPC code that may include a trapping set pattern;
[Fig. 2D]
Figure 2D is an example of Tanner graph of the QC LDPC code that may include a trapping set pattern;
[Fig. 3]
Figure 3 is a block diagram of another embodiment of the invention;
[Fig. 4]
Figure 4 is an example of a matrix determined by one of embodiments of the invention; [Fig. 5]
Figure 5 is an example of a matrix determined by one of embodiments of the invention;
[Fig. 6]
Figure 6 is an example of a matrix determined by one of embodiments of the invention;
[Fig. 7]
Figure 7 is a block diagram of a girth-maximization method;
[Fig. 8]
Figure 8 is a block diagram of a method for searching and testing each set of candidate elements according to some embodiments of the invention;
[Fig. 9]
Figure 9 is a block diagram of a method for selecting entries of a matrix to be removed; and
[Fig. 10]
Figure 10 is a schematic of various systems employing some embodiments of the invention.
[Description of Embodiments]
[0020]
Figure 1 shows a block diagram of a method 100 for determining a quasi- cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets, according to some embodiments of the invention. The method can be performed by a processor 101, which can be operatively connected to a memory and input/output interfaces, as known in the art.
[0021]
A set of matrices 126 representing a family of QC LDPC codes is acquired 120. Each QC LDPC code is a tail-biting spatially -coupled (TBSC) QC LDPC code of girth 112 having a value not less than eight, and each column of each matrix 125 in the set has a weight 114 having a value not less than four. The set of matrices can be determined, e.g., using a skeleton based matrix as described below, or received over a wired or wireless channel.
[0022]
Next, the method selects 130, based on a trapping set pattern 110, a matrix 135 from the set of matrices, such that the matrix 135 represents the QC LDPC code without trapping sets. The matrix can be stored 140 in a memory 140. The matrix 135 can be submitted 150 to an encoder 170 for encoding data 160, and for transmitting 180 the encoded data. Similarly, the matrix 135 can be used for decoding the encoded data.
[0023]
The trapping set pattern includes a pattern of six bits in the Tanner graph of the QC LDPC code, as shown in Figures 2A-D. The Tanner graph includes bits, e.g., bits 211-216, and parity checks, e.g., parity checks 219. Two bits can be connected to each other through parity check. The parity check can be a satisfied parity check or an unsatisfied parity check, based on the values of the bits. Bits can also be called variable nodes, or variables. The parity check can also be called a parity check node.
[0024]
For example, Figure 2A shows a trapping set pattern of fully connected six bits 211-216. Such trapping set pattern indeed includes a trapping set. As can be seen from Figure 2A, the fully connected six bits form two groups of three bits, i.e., a first group 217 and a second group 218, wherein every bit in one group is connected to every bit in the other group.
[0025] Figure 2B shows a candidate trapping set pattern of nearly fully connected six bits 221-226. This trapping set pattern may include a trapping set and is tested for the presence of the trapping set. The nearly fully connected six bits form two groups of three bits, including a first group 227 and a second group 228, wherein a first bit 221 and a second bit 222 of the first group is connected to every bit in the second group, and wherein a third bit 223 of the first group is connected to two bits in the second group.
[0026]
Figure 2C shows the trapping set pattern that includes a pattern of six bits 231-236 in a Tanner graph of the matrix, wherein the six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group through a "satisfied" parity check 239, and wherein each of the six bits is connected to one "unsatisfied" parity check 238.
[0027]
When a trapping set is causing belief propagation (BP) decoder to fail, the bits in the trapping sets have incorrect beliefs, while the other bits in the code have correct beliefs. That is the reason for the names of the "satisfied" and "unsatisfied" parity checks. The satisfied parity checks are connected to two bits in the trapping set with incorrect beliefs, but because there are two of them, their parity is correct and they are satisfied. The unsatisfied parity checks are connected to a single bit in the trapping set with incorrect beliefs, and therefore have incorrect parity.
[0028]
Figure 2D shows the trapping set pattern that includes a pattern of six bits 241-246, wherein one unsatisfied parity check is removed. If only unsatisfied parity checks are removed from the trapping set pattern, the trapping set pattern remains a trapping set, because the unsatisfied parity checks bring in correct information in a BP decoder. Thus, both patterns of Figures 2C and 2D are considered trapping set patterns of fully connected six bits.
[0029]
QC LDPC codes
Various embodiments of the invention determine quasi-cyclic (QC) LDPC codes, which are structured codes whose decoders are easier to be constructed in hardware. The QC LDPC codes have therefore been used in many standards.
[0030]
Let denote the circulant permutation matrix, or "cyclic shift matrix," obtained by cyclically right-shifting Άρ xp identity matrix by i positions, where 0 ≤i≤p - 1. Thus, isclosure, we often suppress the depe
Figure imgf000012_0001
As an example, if p = 4, then the circul nt permutation matrix shifted by one position is
Figure imgf000012_0002
[0031]
Let Op denote the ? xp all-zeroes matrix. A QC LDPC code has a parity check matrix that is composed entirely from p xp sub-matrices that are either p xp circulant permutation matrices, oxp xp all-zeroes matrices. For example, the following would be the parity check matrix for a QC LDPC code, where p - 3: 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 1 0
1 0 0 0 0 0 0 0 1
H =
0 0 1 1 0 0 1 0 0
1 0 0 0 1 0 0 1 0
0 1 0 0 0 1 0 0 1
[0032]
In this example, the parity-check matrix is constructed from 3x3 sub- matrices as:
Figure imgf000013_0001
[0033]
The QC LDPC code can equivalently be described in terms of its "base matrix," which lists the circulant shifts and uses to denote an all zeroes matrix. Thus, the base matrix equivalent to the parity check matrix in our example is
1 -1 0
B =
[2 0 0
[0034]
Tail-Biting Spatially-Coupled QC LDPC Codes
A tail-biting spatially-coupled QC LDPC code is a QC LDPC code whose base matrix has a particular structure. There are a few parameters describing a TBSC QC LDPC code, i.e., p (the size of the/? xp sub-matrices), J (the number of rows in the base-matrix), L (the number of columns in the base-matrix, S (the number of non-negative entries in each row of the base-matrix), and P (the number of non-negative entries in each column of the base matrix. [0035]
The last row of the base matrix of a regular TBSC QC LDPC code in conventional form 11— begins with L-S entries (representing all-zero matrices), followed by S entries that are non-negative integers ranging from 0 to p-1. The next to last row above that is also has S non-negative entries and L-S entries that are equal to -1, but the positions of the non-negative entries is shifted to the left by G=L/J. In each row above, the positions of the non-negative entries are further shifted to the left by the same value. In the top rows, the positions of the non- negative entries wrap around to the right-hand side of the matrix. For example, the following is an example base matrix for a standard form regular TBSC QC LDPC code with parameter values p=3, J=5, L-10, S=6, W=3, G=2:
0 2 -1 -1 -1 -1 1 0 1 2
0 2 1 -1 -1 -1 -1 0 1
2 1 1 0 2 1 -1 -1 -1 -1
-1 -1 1 2 0 2 1 2 -1 -1
-1 -1 -1 -1 1 0 2 2 1 1
[0036]
Cycles in the Tanner graph of QC LDPC Codes
The LDPC code can described using the "Tanner graph," which is
a bi-partite graph including "variable" nodes representing the codeword bits, and "check" nodes representing the parity checks, where a variable node is connected to a check node by an edge if and only if the corresponding entry in the parity check matrix for the code is nonzero.
[0037]
Cycles in the Tanner graph of QC LDPC codes can be identified using their parity check matrices. Each check node in the Tanner graph of a code corresponds to a row in its parity check matrix, and each variable node corresponds to a column. A cycle is a path through nodes in the Tanner graph, alternating between check and variable nodes, which begins and ends at the same node. In terms of the parity check matrix of the code, a cycle can be visualized as a sequence of alternating vertical and horizontal moves through the matrix starting and ending on the same row of the matrix. A vertical move (along a column) corresponds to selecting a second edge connected to the same variable node that forms the next step in the cycle. A horizontal move (along a row) corresponds to selecting two edges connected to the same check node that form part of the path.
[0038]
For QC LDPC codes, cycles in the Tanner graph can be identified based on conditions on the base matrix, i.e., values of the elements/parameters of the base matrix. Thus, adjusting the non-negative parameters of the base matrix can be used to eliminate short cycles. The "girth" of the Tanner graph of an LDPC code is the length of its shortest cycle.
[0039]
Exemplar Embodiments
Figure 3 shows a non-limited example of one embodiment of the invention. In this embodiment, a skeleton base matrix (SBM) 325 of a tail-biting spatially- coupled code is determined 320 such that the weight of each column is four. The skeleton base matrix represents a family of codes that have a block-length 312 and a rate 314, and is used to determine the set of matrices 126. The block-length and the rate can be predetermined or determined in real time, e.g., randomly. An example 410 of a transpose of the skeleton base matrix 325 is shown in Figure 4, as described in more details below.
[0040]
Next, a girth-maximization method 330 is applied to the skeleton base matrix to produce the set of matrices 126. Various girth-maximization methods can be used by the embodiment. In one variation of this embodiment, a specific girth- maximization procedure is selected such that the column weights of each matrix 125 in the set 126 are preserved.
[0041]
In some embodiments, the selection 130 includes selecting 340, from the set of matrices, a preliminary matrix 345 having no pattern of fully connected six bits in a corresponding Tanner graph. This is because the matrix in the corresponding Tanner graph has a pattern of fully connected six bits includes a trapping set, and should not be selected as the matrix 135.
[0042]
If the preliminary matrix 340 does not have a pattern of fully connected six bits and nearly-fully connected six bits in the corresponding Tanner graph, the matrix represents the QC LDPC codes with no trapping sets and is selected as the matrix 135. However, if the preliminary matrix includes one or more sets of elements forming a pattern of nearly fully connected six bits in the corresponding Tanner graph, such matrix may or may not include the trapping set.
[0043]
Accordingly, in one embodiment of the invention, the selecting 130 includes testing 350, for each candidate set of elements in the preliminary matrix forming a pattern of nearly-fully connected six bits in the corresponding Tanner graph, whether the candidate set of elements is a trapping set. If no trapping sets are found 360, then the preliminary matrix is selected 362 as the matrix 135. Otherwise, the above steps are repeated 364 for the next preliminary matrix selected from the set 126.
[0044]
Skeleton Base Matrix The skeleton base matrix is determined for standard form regular TBSC QC LDPC code with column degree W=4 that matches the desired block-length N and rate R. Different choices of parameter values are possible, but there are certain constraints. In particular, N,p, and L are related by the equation N=pL, and R, J, and L is related by the equation R = 1 - J/L . The skeleton base matrix has
undetermined any of the non-negative entry values. The non-negative entries of the skeleton base matrix are denoted with a symbol * below.
[0045]
For example, suppose that we desired a code of length N=9600, with rate R=l/2. We could choose the parameter values p=800, J=6, L=12, S=8, W=4, G=2, and a skeleton base matrix B can be
Figure imgf000017_0001
[0046]
In this example, the columns of the skeleton base matrix are organized into pairs that are identical. More generally, the columns of this skeleton base matrix can be organized into groups of size G.
[0047]
For certain values of the block-length N and rate R, some embodiments use an irregular structure, where certain groups of columns have a different size than other groups of columns. For example, the following skeleton base matrix can be used for a code with rate R=7/13: * * _j _j _ _j * * * * * * *
* * * * _2 _j _ _ * * * * *
* * * * * * _j _ _j _j * * *
* * * * * * * * _j _j _j _2 _J
_ _2 * * * * * * * * _j _ _j
_2 _j _j _j * * * * * * * * *
(2)
[0048]
This base matrix is similar to that in Equation (1). The only difference is that the last group of two identical columns has been replaced with a group of three identical columns.
[0049]
Some embodiments use larger values of J and L, and correspondingly reduce the size of p. For larger values of J and L, it is easier to make irregular versions of the base matrix that improve the waterfall performance, as described below.
However, the resulting base matrices become very large, and it is easier to show the matrices by using the transposed base matrix B '. As a specific example, Figure 4 shows a skeleton transposed base matrix 410 determined for parameter values N=9600,R= 1/2, ^=240,7=20, L=40, S=8, W=4, G=2.
[0050]
Girth Maximization
Various girth-maximization methods can be used by the embodiments of the invention. In some embodiments, a specific girth-maximization method is selected such that the weights of each matrix 125 in the set 126 are preserved.
[0051]
Figure 7 shows an example of a girth-maximization method 700, which optimizes the girth of the QC LDPC code such that the weights of each matrix 125 in the set 126 are preserved. One input to the girth maximization procedure is a skeleton base matrix 325 that specifies a family of TBSC QC LDPC codes. Another input is a desired girth 112; e.g., eight. The desired output is a matrix 125 for a TBSC QC LDPC code of the desired girth that has the form specified by the skeleton base matrix, but where the unknown parameters in the skeleton base matrix are definite values. We initialize the method 700 with a code selected, e.g., randomly, from the ensemble of codes that have the desired skeleton base matrix structure structure. In other words, we initially select all the non-negative parameters in the base matrix at random from all the possible values of 0 to p-1.
[0052]
Another input to the method is a "cost function" associated with each type of cycle. The cost function used depends on the number of cycles in the current code that have length less than the desired girth. A weight vector 710 is used, such that shorter cycles are weighted to be more costly than longer cycles. For example, if girth 8 is desired, then we could assign a cost of 10 for each four-cycle, and a cost of 1 for each six-cycle. Because the procedure tries to minimize cost, the procedure first removes four-cycles, and then six-cycles.
[0053]
The girth maximization iteratively updates the current non-negative parameters in the base matrix. During each iteration, the single non-negative parameter is changed to the value that effects the greatest reduction in the cost function. In detail, a "cost matrix" is determined 730, which, for each non-negative parameter value, gives the cost of changing that parameter value to every other possible value from 0 to p-1. From the cost matrix, a "gain matrix" can be generated 740, which gives the improvement in cost for changing each possible non-negative parameter value from its current value to each possible other value.
[0054]
At each iteration, the method checks 750 whether there is a positive gain that improves the cost. If the gain is positive, then the single non-negative parameter value change that most improves the cost is selected and is used to update the base matrix 760 appropriately. Then, we re-determine the cost matrix 730 and iterate.
[0055]
The method 700 terminates when we can no longer change any single parameter value to a value that further reduces the cost (and thus the number of undesired cycles). Formally, this means that the maximum gain in the gain matrix is no longer positive 750. At that point, we check 770 whether the costs are zero in the current base matrix. If they are, then we have found a base matrix that does not have any short cycles; e.g., if girth eight is the goal, a cost of zero indicates that there are no 4-cycles or 6-cycles. Therefore, in that case we output the base matrix 780 representing the TBSC LDPC code of the desired girth 125.
[0056]
If we cannot any longer improve the cost, but the current cost function is positive, then the procedure has failed 790. For certain values of p and the desired girth g, the procedure cannot succeed; in particular if p is too small and g is too large. However for girth eight and large enough values of p, the procedure normally succeed, and can be used multiple times to generate a set of matrices 126 that conform to the structure specified by the skeleton base matrix and that has the desired girth.
[0057]
Figure 5 shows the transposed base matrix 510 obtained using the girth maximization procedure with the girth of eight and corresponding to the skeleton base matrix 410, with a parameter value oip=240. The procedure successfully found codes with the desired girth and structure.
[0058]
Testing Set of Candidate Elements A set of candidate elements of the matrix representing a TBSC QC LDPC code forms a trapping set candidate in the corresponding Tanner graph, i.e., the pattern of nearly-fully connected six bits. The set of candidate elements may form a trapping set, or not, i.e., may in fact not form a trapping set. Accordingly, various embodiments of the invention search for the set of candidate elements, and test each set to determine whether the set is a trapping set. In one embodiment, the testing process uses belief propagation (BP) decoder assuming a binary symmetric channel, where each bit in the trapping set candidate is initialized to the incorrect value, and all other bits in the graph are initialized to the correct value. If the BP decoder fails to decode successfully, then the trapping set candidate is a true trapping set, and the code is unacceptable.
[0059]
Figure 8 shows a block diagram of a method for searching and testing each set of candidate elements. The method searches 810 for the pattern of fully connected six bits and/or for the pattern of nearly fully connected six bits in each matrix in the set of matrices. For example, one embodiment determines candidate six bits forming multiple cycles 815 of length eight in a corresponding Tanner graph, and determines whether the candidate six bits form the pattern of fully connected six bits and/or the pattern of nearly fully connected six bits.
[0060]
For each set of candidate elements, a block is constructed wherein the correct values of the candidate bits in the Tanner graph of the code are changed 820 to be incorrect, while preserving correct values of all other bits in the code. The block is then decoded 830 using the BP decoder, and the result of decoding is checked 840 for correctness. If the decoder failed to decode the block, then the method finds 845 that the set of candidate elements forms a trapping set. Otherwise, the method finds 845 that the set of candidate elements does not form a trapping set.
[0061]
Modifying the TBSC QC LDPC Code
Codes with fully regular weights of the columns, e.g., weight equals four, may not optimize the waterfall performance. Usually, the waterfall performance is improved when some columns are changed to higher degrees. Accordingly, some embodiments of the invention increase a weight of at least one column of the matrix. The new increased value of the weight can be any value greater than four, and less than or equal to the maximum column weight. The increasing step can be applied during any stage of the method. For example, the increasing can be applied to the matrix 125 or to the matrix 135.
[0062]
The choice of which columns to change to higher degrees can be made using, e.g., a density evolution method. In one embodiment the code is tested on the binary erasure channel (BEC), and a threshold of the code for the BEC is
optimized using density evolution. The "threshold" for the BEC would be the maximum erasure probability such that the code will continue to decode
successfully, within the density evolution approximation.
[0063]
The weight of the higher weight columns can be determined in a variety of ways. Selecting full column weight (every element in the column of the base matrix is non-negative) may give the best threshold performance under density evolution, but it may be inconvenient for the practical construction of a decoder in hardware. Alternatively, one embodiment selects the largest weight compatible with hardware implementation.
[0064] Bits corresponding to higher weight columns have many inputs from unsatisfied parity checks, and therefore do not participate in any trapping sets. Therefore, these bits are ignored when searching for trapping sets.
[0065]
Figure 6 shows an example of the transposed base matrix 610 of such code. In this example, the density evolution threshold of the code with transposed base matrix 510 on the BEC is improved by converting two columns of the matrix from weight four to weight twenty. The exact values of the base matrix entries in the higher weight columns that are changed from -1 to a non-negative value are not always important. For example, the values can be random, or determined by a girth-maximization method.
[0066]
Optionally Delete Entries from the Base Matrix
Some embodiments improve the waterfall performance of the code by removing elements from the base matrix 135 by transforming some weight four columns into weight three columns. In some embodiments, the elements are removed from the base matrix to reduce the weight of at least one column to weight three. The removed elements can be selected using a density evolution method. Additionally or alternatively, the removed elements can be selected based on corresponding positions of the elements in trapping set patterns or candidate trapping set patterns.
[0067]
Typically, the conversion of the columns into weight three columns makes trapping sets more likely to occur. Therefore, embodiments normally limit the number of converted columns. Furthermore, elements of the base matrix are removed based on the likelihood that the removal can cause a true trapping set. This is possible because each base matrix entry corresponds to an edge between a check node and a bit node in the Tanner graph. One embodiment removes, if possible, base matrix entries that correspond to "internal edges" in trapping set candidates, rather than external edges.
[0068]
Figure 9 shows an example of a method to select the entries to be removed. At step 910 the method sets the number of entries to remove. A penalty value is assigned to each entry (i.e., each edge) in the base matrix with the initial values equal to, e.g., zero.
[0069]
During step 920, the penalty values are modified based on corresponding positions in of the elements in the trapping set pattern. If the entry is an internal edge for a trapping set candidate, its penalty value is decreased by one. If it is an external edge for a trapping set candidate, then the penalty value is increased by one. If the entry belongs to a trapping set that already has one external check removed, then set the penalty value of this entry to infinity.
[0070]
During step 930, a set of entries with penalty values below a threshold 935 is selected. During step 940, the entry in the set that maximizes a density evolution threshold 945 is removed. For example, the method selects a number of entries with the smallest penalty values and select the one that improves the density evolution threshold the most to remove. The abovementioned steps can be repeated to remove multiple entries. After the entries to remove are selected, one
embodiment tests 950 whether any true trapping sets are introduced by removing the entries.
[0071]
The QC LDPC code determined by embodiments of the invention can be used in both decoding and encoding procedure, such as by a system 1000 shown in Figure 10. The embodiments of the invention provide the method 100 for constructing a quasi-cyclic low-density parity-check (QC-LDPC) code with a high girth, which can be stored in a memory 1050. Such a code can then be used by an encoder 1020 to encode data, e.g., an information block 1001 of k symbols u[a] generated by a source 1010. The encoded data can be transmitted through a noisy channel 1030 as a code- word x[n] 1002 including N symbols. The channel can be a communications channel. The "channel" can also be storage media. In this case, the code-word is written to the media for later retrieval.
[0072]
It is possible for the channel to corrupt the code-word to a signal y[n] 1003. The signal is then passed to a decoder 1040, which attempts to output a
reconstruction z[a] 1004 of the information block u[a] 1002 using the QC-LDPC code 1050.
[0073]
The above-described embodiments of the present invention can be
implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software or a combination thereof. When
implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers. Such processors may be implemented as integrated circuits, with one or more processors in an integrated circuit component. Though, a processor may be implemented using circuitry in any suitable format.
[0074]
Further, a computer can be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, minicomputer, or a tablet computer. Such computers may be interconnected by one or more networks in any suitable form, including as a local area network or a wide area network, such as an enterprise network or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
[0075]
Also, the embodiments of the invention may be embodied as a method, of which an example has been provided. The steps performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which steps are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
[0076]
Use of ordinal terms such as "first," "second," in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
[Industrial Applicability]
[0077]
The method and system of this invention are applicable to many kinds of fields.

Claims

[CLAIMS]
[Claim 1]
A method for determining a quasi-cyclic (QC) low-density parity-check (LDPC) code, such that the QC LDPC code has no trapping sets, comprising the steps of:
acquiring a set of matrices representing a family of QC LDPC codes, wherein each QC LDPC code is a tail-biting spatially-coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four;
selecting, based on a trapping set pattern, a matrix from the set of matrices, such that the matrix represents the QC LDPC code with no trapping sets; and
storing the matrix into a memory, wherein the steps of the method are performed by a processor.
[Claim 2]
The method of claim 1, wherein the acquiring further comprises:
determining a skeleton base matrix of a tail-biting spatially-coupled code such that the weight of each column is four, and such that the skeleton base matrix represents a family of codes that have a predetermined block-length and a predetermined rate; and
applying to the skeleton base matrix a girth-maximization procedure to produce the set of matrices, wherein the girth-maximization procedure preserves the weights.
[Claim 3]
The method of claim 1, wherein the trapping set pattern is a pattern of six bits in a corresponding Tanner graph.
[Claim 4] The method of claim 1, wherein the trapping set pattern includes a pattern of six bits in a corresponding Tanner graph, wherein the six bits form first and second groups of three bits, and wherein every bit in the first group is connected to every bit in the second group by a parity check.
[Claim 5]
The method of claim 1, wherein the trapping set pattern includes a pattern of six bits in a Tanner graph of the matrix, wherein the six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group through a satisfied parity check, and wherein each of the six bits is connected to one unsatisfied parity check.
[Claim 6]
The method of claim 1, wherein the trapping set pattern includes a pattern of six bits in a Tanner graph of the matrix, wherein each of the six bits is connected to three or four bits through parity checks, wherein the six bits form two groups of three bits, including a first group and a second group, wherein a first bit and a second bit of the first group are connected to every bit in the second group, and wherein a third bit of the first group is connected to two bits in the second group.
[Claim 7]
The method of claim 1, wherein the selecting further comprises:
selecting, from the set of matrices, a preliminary matrix having in a corresponding Tanner graph no pattern of fully connected six bits, wherein the fully connected six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group;
testing, for each set of candidate elements in the preliminary matrix forming a pattern of nearly-fully connected six bits in the corresponding Tanner graph, whether the set of candidate elements includes a trapping set, wherein the nearly- fully connected six bits form two groups of three bits, including a first group and a second group, wherein a first bit and a second bit of the first group are connected to every bit in the second group, and wherein a third bit of the first group is connected to two bits in the second group; and
selecting the preliminary matrix as the matrix if the trapping set is not found.
[Claim 8]
The method of claim 7, wherein the testing comprises:
changing correct values of the candidate elements to be incorrect, while preserving correct values of other elements in the preliminary matrix;
decoding values of elements of the preliminary matrix using a belief propagation decoder; and
finding that the candidate elements include the trapping set if the decoder failed to decode the correct values of the candidate elements.
[Claim 9]
The method of claim 7, further comprising:
searching for the pattern of fully connected six bits and for the pattern of nearly-fully connected six bits in each matrix in the set of matrices.
[Claim 10]
The method of claim 9, wherein for each matrix the searching comprises: determining candidate six bits forming multiple cycles of length eight in a corresponding Tanner graph; and
determining whether the candidate six bits form the pattern of fully
connected six bits or the pattern of nearly-fully connected six bits.
[Claim 11]
The method of claim 1, further comprising:
increasing a weight of at least one column of the matrix.
[Claim 12]
The method of claim 11, wherein the increasing comprising: maximizing the weight of the at least one column.
[Claim 13]
The method of claim 11, wherein the columns whose weights are increased are selected using a density evolution method.
[Claim 14]
The method of claim 1, further comprising:
removing elements from the base matrix so as to reduce the weight of at least one column to weight three.
[Claim 15]
The method of claim 14, wherein the removed elements are selected using a density evolution method.
[Claim 16]
The method of claim 14, wherein the removed elements are selected based on corresponding positions in of the elements in the trapping set pattern.
[Claim 17]
The method of claim 14, further comprising:
initializing penalty values for at least some entries of the matrix;
modifying the penalty values based on corresponding positions in of the elements in the trapping set pattern, wherein a penalty value of an entry is increased if the entry corresponds to an external edge in the trapping set pattern, wherein the penalty value of the entry is decreased if the entry corresponds to an internal edge in the trapping set pattern, and wherein the penalty value of the entry is set to infinity if the entry corresponds to the trapping set pattern having one external check removed;
selecting a set of entries with penalty values below a threshold;
removing the entry in the set that maximizes a density evolution threshold; and testing for a presence of the trapping set in the matrix.
[Claim 18]
A system for encoding data based on a quasi-cyclic (QC) low-density parity- check (LDPC) code, comprising:
a source for providing the data;
a memory for storing a QC LDPC code represented by a parity check matrix, wherein the parity check matrix represents a tail-biting spatially-coupled (TBSC) QC LDPC code with no trapping sets; and
an encoder for encoding the data using the TBSC QC LDPC code to produce an encoded data, and for transmitting the encoded data over a channel.
[Claim 19]
The system of claim 18, wherein the TBSC QC LDPC code has a girth at least equal to eight, and a weight of a majority of columns in the matrix equal to four.
[Claim 20]
A method for determining a quasi-cyclic (QC) low-density parity-check (LDPC) code, comprising the steps of:
determining a skeleton base matrix of a tail-biting spatially-coupled code such that a weight of each column equals four;
applying to the skeleton base matrix a girth-maximization procedure to produce the set of matrices representing a family of QC LDPC codes, wherein each QC LDPC code is a tail-biting spatially-coupled code of girth not less than eight, and wherein each column of each matrix in the set has a weight not less than four; selecting, from the set of matrices, a preliminary matrix having in a
corresponding Tanner graph no pattern of fully connected six bits, wherein the fully connected six bits form two groups of three bits, wherein every bit in one group is connected to every bit in the other group; testing, for each set of candidate elements in the preliminary matrix forming a pattern of nearly-fully connected six bits in the corresponding Tanner graph, whether the set of candidate elements includes a trapping set, wherein the nearly- fully connected six bits form two groups of three bits, including a first group and a second group, wherein a first bit and a second bit of the first group is connected to every bit in the second group, and wherein a third bit of the first group is connected to two bits in the second group; and
finding the preliminary matrix as a matrix representing the QC LDPC code with no trapping sets, if the trapping set is not found; and otherwise
repeating the selecting, the testing, and the finding, wherein the steps of the method are performed by a processor.
PCT/JP2012/073766 2011-09-30 2012-09-11 Method for determining quasi-cyclic low-density parity-check code, and system for encoding data based on quasi-cyclic low-density parity-check code WO2013047258A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201280047910.4A CN103843252B (en) 2011-09-30 2012-09-11 The system for determining the method for quasi-cyclic low-density parity check codes and data encoding being carried out based on quasi-cyclic low-density parity check codes
JP2014506381A JP5752317B2 (en) 2011-09-30 2012-09-11 Method for obtaining quasi-cyclic low density parity check code and system for encoding data based on quasi-cyclic low density parity check code
EP12773409.3A EP2761759A1 (en) 2011-09-30 2012-09-11 Method for determining quasi-cyclic low-density parity-check code, and system for encoding data based on quasi-cyclic low-density parity-check code

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/251,180 US8595589B2 (en) 2011-09-30 2011-09-30 Quasi-cyclic low-density parity-check codes
US13/251,180 2011-09-30

Publications (1)

Publication Number Publication Date
WO2013047258A1 true WO2013047258A1 (en) 2013-04-04

Family

ID=47040767

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/073766 WO2013047258A1 (en) 2011-09-30 2012-09-11 Method for determining quasi-cyclic low-density parity-check code, and system for encoding data based on quasi-cyclic low-density parity-check code

Country Status (5)

Country Link
US (1) US8595589B2 (en)
EP (1) EP2761759A1 (en)
JP (1) JP5752317B2 (en)
CN (1) CN103843252B (en)
WO (1) WO2013047258A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018093286A1 (en) * 2016-11-21 2018-05-24 Huawei Technologies Co., Ltd. Generation of spatially-coupled quasi-cyclic ldpc codes
CN108768408A (en) * 2018-05-17 2018-11-06 西安空间无线电技术研究所 A kind of big girth II types quasi-cyclic LDPC code design method based on Sidon sequences
US10193570B2 (en) 2013-12-03 2019-01-29 Samsung Electronics Co., Ltd Method of and apparatus for generating spatially-coupled low-density parity-check code
RU2731883C1 (en) * 2017-06-27 2020-09-08 Телефонактиеболагет Лм Эрикссон (Пабл) Ldpc-shift coefficients for new radio communication standard
RU2731883C9 (en) * 2017-06-27 2022-08-08 Телефонактиеболагет Лм Эрикссон (Пабл) Ldpc-shift coefficients for new radio communication standard

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5696068B2 (en) * 2012-02-23 2015-04-08 株式会社東芝 Encoding device and communication device
US8996971B2 (en) * 2012-09-04 2015-03-31 Lsi Corporation LDPC decoder trapping set identification
US20150303943A1 (en) * 2014-04-18 2015-10-22 Lsi Corporation Systems and Methods for Puncture Based Data Protection
US9977713B2 (en) * 2015-03-20 2018-05-22 SK Hynix Inc. LDPC decoder, semiconductor memory system and operating method thereof
US9584158B2 (en) * 2015-07-24 2017-02-28 Tidal Systems, Inc. Unified H-encoder for a class of multi-rate LDPC codes
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
JP6798754B2 (en) 2016-07-20 2020-12-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Methods and equipment for generating basis matrices for low density parity check codes
KR101765014B1 (en) 2016-08-23 2017-08-14 경상대학교산학협력단 Twin Codes System
CN107888198B (en) 2016-09-30 2023-05-26 中兴通讯股份有限公司 Quasi-cyclic LDPC (low density parity check) coding and decoding method and device and LDPC coder and decoder
CN107959500B (en) * 2016-10-17 2021-10-22 上海数字电视国家工程研究中心有限公司 Construction method of LDPC encoder
WO2018084735A1 (en) 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
CN110089035B (en) * 2016-12-24 2021-01-29 华为技术有限公司 Storage controller, data processing chip and data processing method
US10340949B2 (en) 2017-02-06 2019-07-02 Qualcomm Incorporated Multiple low density parity check (LDPC) base graph design
US10312939B2 (en) 2017-06-10 2019-06-04 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code
CN110011755B (en) * 2018-01-05 2021-10-19 中兴通讯股份有限公司 LDPC coding method and device and data sending method and device
CN108880749B (en) * 2018-06-11 2020-11-13 广东工业大学 LDPC code communication method, system, equipment and computer storage medium
CN109639392B (en) * 2018-11-09 2020-03-27 清华大学 Construction method and system of space coupling LDPC code for broadcast channel transmission
CN111327330B (en) * 2018-12-14 2022-04-08 深圳市中兴微电子技术有限公司 Information processing method, information processing equipment and computer storage medium
CN109951189B (en) * 2019-03-27 2023-03-31 暨南大学 Quasi-cyclic structure multi-element LDPC code construction method based on prime number product
US11309915B1 (en) 2019-07-11 2022-04-19 Arrowhead Center, Inc. Efficient implementation of a threshold modified min-sum algorithm for low-density parity-check decoders
TWI748214B (en) * 2019-07-29 2021-12-01 慧榮科技股份有限公司 Flash memory controller, storage device and reading method thereof
TWI705667B (en) 2019-09-20 2020-09-21 慧榮科技股份有限公司 Method and apparatus for providing a ldpc code with error floor met requirement
US11265015B2 (en) * 2020-05-15 2022-03-01 SK Hynix Inc. Out-of-order processing for bit-flipping decoders in non-volatile memory devices
US11463114B2 (en) 2021-02-22 2022-10-04 Mitsubishi Electric Research Laboratories, Inc. Protograph quasi-cyclic polar codes and related low-density generator matrix family

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2169835B1 (en) * 2007-06-29 2016-02-10 Mitsubishi Electric Corporation Check matrix generating device, check matrix generating method, encoder, transmitter, decoder, and receiver
US8127209B1 (en) * 2007-07-30 2012-02-28 Marvell International Ltd. QC-LDPC decoder with list-syndrome decoding
US8103931B2 (en) * 2008-08-27 2012-01-24 Mitsubishi Electric Research Laboratories, Inc. Method for constructing large-girth quasi-cyclic low-density parity-check codes
CN101826878A (en) * 2010-04-26 2010-09-08 杨磊 QC-LDPC (Quasi-Cyclic Low Density Parity Check) code constructing method

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
MARCOS B S TAVARES ET AL: "Tail-Biting LDPC Convolutional Codes", INFORMATION THEORY, 2007. ISIT 2007. IEEE INTERNATIONAL SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 24 June 2007 (2007-06-24), pages 2341 - 2345, XP031441061, ISBN: 978-1-4244-1397-3 *
MITCHELL D G M ET AL: "Trapping set analysis of protograph-based LDPC convolutional codes", INFORMATION THEORY, 2009. ISIT 2009. IEEE INTERNATIONAL SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 28 June 2009 (2009-06-28), pages 561 - 565, XP031513409, ISBN: 978-1-4244-4312-3 *
SHRINIVAS KUDEKAR ET AL: "Threshold Saturation via Spatial Coupling: Why Convolutional LDPC Ensembles Perform So Well over the BEC", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE PRESS, USA, vol. 57, no. 2, 1 February 2011 (2011-02-01), pages 803 - 834, XP011343647, ISSN: 0018-9448, DOI: 10.1109/TIT.2010.2095072 *
TAVARES M B S ET AL: "LDPC convolutional codes based on braided convolutional codes", INFORMATION THEORY, 2008. ISIT 2008. IEEE INTERNATIONAL SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 6 July 2008 (2008-07-06), pages 1035 - 1039, XP031303066, ISBN: 978-1-4244-2256-2 *
VISHWAMBHAR RATHI ET AL: "Rate-equivocation optimal spatially coupled LDPC codes for the BEC wiretap channel", 2011 IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY PROCEEDINGS (ISIT 2011) : ST. PETERSBURG, RUSSIA, 31 JULY - 5 AUGUST 2011, IEEE, PISCATAWAY, NJ, 31 July 2011 (2011-07-31), pages 2393 - 2397, XP031971655, ISBN: 978-1-4577-0596-0, DOI: 10.1109/ISIT.2011.6033992 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10193570B2 (en) 2013-12-03 2019-01-29 Samsung Electronics Co., Ltd Method of and apparatus for generating spatially-coupled low-density parity-check code
WO2018093286A1 (en) * 2016-11-21 2018-05-24 Huawei Technologies Co., Ltd. Generation of spatially-coupled quasi-cyclic ldpc codes
RU2731883C1 (en) * 2017-06-27 2020-09-08 Телефонактиеболагет Лм Эрикссон (Пабл) Ldpc-shift coefficients for new radio communication standard
RU2731883C9 (en) * 2017-06-27 2022-08-08 Телефонактиеболагет Лм Эрикссон (Пабл) Ldpc-shift coefficients for new radio communication standard
US11515893B2 (en) 2017-06-27 2022-11-29 Telefonaktiebolaget Lm Ericsson (Publ) Shift values for quasi-cyclic LDPC codes
US11848685B2 (en) 2017-06-27 2023-12-19 Telefonaktiebolaget Lm Ericsson (Publ) Shift values for quasi-cyclic LDPC codes
CN108768408A (en) * 2018-05-17 2018-11-06 西安空间无线电技术研究所 A kind of big girth II types quasi-cyclic LDPC code design method based on Sidon sequences
CN108768408B (en) * 2018-05-17 2022-05-24 西安空间无线电技术研究所 Large girth II type quasi-cyclic LDPC code design method based on Sidon sequence

Also Published As

Publication number Publication date
JP2014522139A (en) 2014-08-28
CN103843252B (en) 2018-01-02
JP5752317B2 (en) 2015-07-22
EP2761759A1 (en) 2014-08-06
US8595589B2 (en) 2013-11-26
US20130086445A1 (en) 2013-04-04
CN103843252A (en) 2014-06-04

Similar Documents

Publication Publication Date Title
US8595589B2 (en) Quasi-cyclic low-density parity-check codes
US8499218B2 (en) System and method for determining quasi-cyclic low-density parity-check codes having high girth
JP5116735B2 (en) How to construct a code
Hu et al. Progressive edge-growth Tanner graphs
CN104868925B (en) Coding method, interpretation method, code device and the code translator of structured LDPC code
Chen et al. Two low-complexity reliability-based message-passing algorithms for decoding non-binary LDPC codes
US8473806B1 (en) Layered quasi-cyclic LDPC decoder with reduced-complexity circular shifter
CN107528597B (en) LDPC code post-processing decoding method based on CRC code
CN110024294B (en) Generation of spatially coupled quasi-cyclic LDPC codes
KR20090092892A (en) Method of performing decoding using LDPC code
JP4005084B2 (en) Parity check matrix generation method and parity check matrix generation apparatus
JP2002353946A (en) Method for evaluating error-correcting code for data block of finite size
Esfahanizadeh et al. Spatially coupled codes optimized for magnetic recording applications
Nguyen et al. Two-bit bit flipping algorithms for LDPC codes and collective error correction
Karimi et al. Construction of irregular protograph-based QC-LDPC codes with low error floor
Esfahanizadeh et al. A novel combinatorial framework to construct spatially-coupled codes: Minimum overlap partitioning
Zhang et al. Efficient algorithms to find all small error-prone substructures in LDPC codes
JP4832447B2 (en) Decoding apparatus and method using channel code
EP3652863B1 (en) Generalized low-density parity check codes (gldpc)
Laendner et al. CTH02-4: When Does One Redundant Parity-Check Equation Matter?
EP2195928B1 (en) Encoding method and device for tail-biting trellis ldpc codes
CN110719108A (en) QC-LDPC codeword extension method and system based on ring connectivity
Malema Low-density parity-check codes: construction and implementation.
Park Construction of Quasi-Cyclic LDPC Codes Using a Class of Balanced Incomplete Block Designs with Irregular Block Sizes.
Zhan et al. Quasi-cyclic LDPC codes based on D and Q matrices through progressive edge growth

Legal Events

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

Ref document number: 12773409

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014506381

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2012773409

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE