US8201047B2 - Decoding apparatus and communications apparatus - Google Patents
Decoding apparatus and communications apparatus Download PDFInfo
- Publication number
- US8201047B2 US8201047B2 US11/791,996 US79199605A US8201047B2 US 8201047 B2 US8201047 B2 US 8201047B2 US 79199605 A US79199605 A US 79199605A US 8201047 B2 US8201047 B2 US 8201047B2
- Authority
- US
- United States
- Prior art keywords
- processing unit
- algorithm
- unit
- row processing
- row
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active, expires
Links
- 238000004891 communication Methods 0.000 title description 53
- 238000012545 processing Methods 0.000 claims abstract description 1354
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 444
- 238000004364 calculation method Methods 0.000 claims abstract description 121
- 238000012937 correction Methods 0.000 claims description 170
- 238000000034 method Methods 0.000 description 220
- 239000011159 matrix material Substances 0.000 description 175
- 238000010586 diagram Methods 0.000 description 47
- 238000010276 construction Methods 0.000 description 42
- 238000010606 normalization Methods 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 16
- 238000007620 mathematical function Methods 0.000 description 12
- 230000015556 catabolic process Effects 0.000 description 9
- 125000004122 cyclic group Chemical group 0.000 description 9
- 238000006731 degradation reaction Methods 0.000 description 9
- 230000001419 dependent effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 239000000654 additive Substances 0.000 description 7
- 230000000996 additive effect Effects 0.000 description 7
- 230000003247 decreasing effect Effects 0.000 description 7
- 230000001788 irregular Effects 0.000 description 7
- 230000010363 phase shift Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
- H03M13/1188—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
- H03M13/112—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
- H03M13/3911—Correction factor, e.g. approximations of the exp(1+x) function
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/6583—Normalization other than scaling, e.g. by subtraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Definitions
- the present invention relates to an error correction technology for use in digital communications. More particularly, it relates to a decoding apparatus which decodes an encoded signal which is a low-density parity-check LDPC (Low-Density Parity Check) code or a turbo code, and a communications apparatus provided with this decoding apparatus.
- LDPC Low-Density Parity Check
- a Sum-Product algorithm and a Min-Sum algorithm are known as fundamental algorithms used for decoding an LDPC coded signal. According to each of these decoding algorithms, a decoding apparatus decodes a received signal by calculating a log-likelihood ratio LLR (Log Likelihood Ratio) as probable reliability information on the received signal while performing an iterative operation on the received signal (for example, refer to nonpatent reference 1).
- LLR Log Likelihood Ratio
- the Min-Sum algorithm can be implemented via only four types of arithmetic operations including an addition, a judgment of a minimum, a judgment of whether a number is positive or negative, and a multiplication of the signs of positive and negative numbers. For this reason, the calculation cost becomes small. However, the decoding performance degrades under the influence of the approximation.
- the Shuffled BP algorithm provides an advantage of making it possible to carry out transmission of the probability information efficiently, thereby speeding up the convergence.
- this Shuffled BP algorithm will be explained briefly.
- N(m) ⁇ n shows a set of column indices in which the nth column is removed from the set N(m)
- M(n) ⁇ m shows a set of row indices in which the mth row is removed from the set M(n).
- z m,n′ (i) is an LLR which is updated at the ith iteration
- ⁇ m,n (i) is an LLR at the ith iteration which is sent from a check node to a bit node.
- step 1 a column process of computing the following equations (4) and (5) under the condition shown by the above-mentioned equation (1) is carried out.
- z m,n (i) is an LLR at the ith iteration which is sent from the bit node to the check node.
- z n (i) is a posterior value at the ith iteration.
- step 2 a hard decision of the posterior value z n (i) is carried out, and a decoded sequence shown by the following equation (6) is created. Then, if a condition shown by the following equation (7) is satisfied, the sequence shifts to a process of step 3 which will be mentioned later, and, if neither of the these two conditions is satisfied, the number of iterations i is incremented, and the sequence returns to the process of step 2 .
- the decoded sequence according to the following equation (6) which is acquired in step 2 , is outputted as a decoded result.
- a case in which a calculation and an update of the probability information with row processing and column processing are performed on the received signal in batches of two or more predetermined bits, assuming 1 ⁇ N g ⁇ N is defined as the Group Shuffled BP algorithm.
- N g is a divisor of N.
- an LLR which is calculated with the Min-Sum algorithm is always larger than an LLR which is calculated with the Sum-Product algorithm
- an LLR which is calculated through row processing according to the Min-Sum algorithm is divided by a factor ⁇ (>1) which is called a normalization factor, and is then delivered.
- a factor ⁇ >1 which is called a normalization factor
- an LLR calculated through row processing based on the Min-Sum algorithm is subtracted from a factor ⁇ (>0) which is called an offset factor, and is then delivered.
- an algorithm of correcting for an LLR calculated through the row processing based on the Min-Sum algorithm according to the magnitude of the received signal (for example, refer to nonpatent reference 5).
- a table of a correction function is prepared as a correction term of the Min-Sum algorithm, and a precise correction is made by changing the correction term according to the magnitude of the received signal so that the decoding performance is improved.
- arithmetic operations e.g., an addition of a real number and an evaluation of a function
- a mathematical function such as an exponential function
- precise operations are performed according to the Log-MAP algorithm, an advantage of improving the decoding performance is provided.
- the Max-Log-MAP algorithm can be implemented via only four types of arithmetic operations including an addition, a judgment of a maximum, a judgment of whether a number is positive or negative, and a multiplication of the signs of positive and negative numbers.
- a logarithm computation for the sum of an exponential function which is carried out in the Log-MAP algorithm is approximated by a maximum of an exponent. For this reason, because the process containing the mathematical function can be eliminated, the calculation cost can be reduced. However, the decoding performance degrades under the influence of the approximation.
- a metric value calculated through a metric calculation based on the Max-Log-Map algorithm is defined as an LLR which is adjusted to a value which is much the same as that which is multiplied by a factor s and is calculated according to the MAP algorithm, and which is delivered.
- the increase in the calculation cost due to the multiplications is not so big, and the degradation in the decoding performance can be reduced as compared with the case of using the Log-MAP algorithm.
- the factor s only has to be calculated in advance using a simulation, and held by a turbo decoding unit.
- a problem with prior art decoding apparatus for decoding an LDPC encoded signal according to the Min-Sum algorithm is that the number of iterations must increase in order to maintain the decoding performance, and therefore a decoding delay also becomes large with this increase in the number of iterations. This tendency also appears in both the Normalized BP algorithm which uses an approximation update equation based on the Min-Sum algorithm as a fundamental update equation, and the Offset BP algorithm.
- the decoding performance of the Normalized BP algorithm and that of the Offset BP algorithm are greatly dependent upon the values of the factor ⁇ (normalization factor) and factor ⁇ (offset factor), respectively. For this reason, in the case of each of the Normalized BP algorithm and Offset BP algorithm, although it is necessary to calculate each of the factors ⁇ and ⁇ in advance, sufficient decoding performance cannot be achieved if the value of each of the factors ⁇ and ⁇ is not changed dependently upon the construction of codes and the communication path when actually implemented in a receiving apparatus or the like.
- a decoding operation is sequentially performed on a code in batches of one bit from the leading bit of the code, or a decoding operation is sequentially performed on the code in batches of two or more bits from the leading two or more bits of the code.
- a problem with the Shuffled BP algorithm and the Group Shuffled BP algorithm is therefore that it is impossible to provide an optimal sequence of operations for the code construction and the modulation method.
- Another problem with the technology for controlling the sequence of operations according to the magnitudes of received LLRs, as communication path information, calculated from the received information is that it is necessary to change the sequence of operations every time when LLRs are received.
- the decoding performance of the Max-Log-MAP algorithm for multiplying the value by the above-mentioned factor s depends upon the value of the factor s. For this reason, although it is necessary to calculate the factor s in advance, sufficient decoding performance cannot be achieved if the value of the factor s is not changed dependently upon the construction of codes and the communication path when actually implemented in a receiving apparatus or the like.
- the present invention is made in order to solve the above-mentioned problems, and it is therefore an object of the present invention to provide a decoding method of and a decoding apparatus for decoding an encoded signal by providing an efficient probability transmission algorithm for the Min-Sum algorithm, and the Normalized BP algorithm and the Group Shuffled BP algorithm which use a fundamental update equation based on the Min-Sum algorithm, thereby speeding up the convergence of operation results and reducing the number of times that iterative decoding is carried out, and a communications apparatus provided with the decoding apparatus.
- a decoding apparatus in accordance with the present invention includes a decoding means for performing a calculation and an update of probability information with row processing and column processing according to a “Min-Sum algorithm” on a received signal which is low-density parity-check (Low-density Parity-check: LDPC) coded in batches of 1 bit or a predetermined number of bits.
- a decoding means for performing a calculation and an update of probability information with row processing and column processing according to a “Min-Sum algorithm” on a received signal which is low-density parity-check (Low-density Parity-check: LDPC) coded in batches of 1 bit or a predetermined number of bits.
- Low-density Parity-check Low-density Parity-check
- the present invention offers an advantage of being able to decode the received signal with a smaller number of iterations, as compared with a decoding apparatus according to a prior art decoding algorithm for decoding an LDPC code, and also to reduce the calculation cost required for the decoding.
- the present invention offers another advantage of being able to reduce the degradation in the decoding performance without using a complicated mathematical function for a turbo-coded received signal, unlike the Map algorithm, at substantially the same calculation cost as that of the Max-Log-MAP algorithm, and without the decoding performance being dependent upon any factor, unlike the Max-Log-MAP algorithm with multiplication of the above-mentioned factor s.
- FIG. 1 is a block diagram showing the structure of an LDPC code decoding apparatus in accordance with embodiment 1 of the present invention
- FIG. 2 is the block diagram showing the structure of a row processing unit shown in FIG. 1 ;
- FIG. 3 is a flow chart showing the operation of the LDPC code decoding apparatus in accordance with the embodiment 1;
- FIG. 4 is a graph in which a relation between a bit error rate and an average of the number of times that decoding is iterated is plotted;
- FIG. 5 is a block diagram showing the structure of a row processing unit of an LDPC code decoding apparatus in accordance with embodiment 2 of the present invention
- FIG. 6 is a graph in which a relation between a bit error rate and an average of the number of times that decoding is iterated is plotted
- FIG. 7 is a block diagram showing the structure of a row processing unit of an LDPC code decoding apparatus in accordance with embodiment 3 of the present invention.
- FIG. 8 is a graph in which a relation between a bit error rate and an average of the number of times that decoding is iterated is plotted
- FIG. 9 is a block diagram showing the structure of an LDPC code decoding apparatus in accordance with embodiment 4 of the present invention.
- FIG. 10 is a block diagram showing the structure of an example of a row processing unit shown in FIG. 9 ;
- FIG. 10A is a block diagram showing the structure of another example of the row processing unit shown in FIG. 9 ;
- FIG. 11 is a flow chart showing the operation of the LDPC code decoding apparatus in accordance with embodiment 4.
- FIG. 12 is a graph in which a relation between a bit error rate and a signal-to-noise ratio (Eb/No) is plotted;
- FIG. 13 is a block diagram showing the structure of a row processing unit of an LDPC code decoding apparatus in accordance with embodiment 5 of the present invention.
- FIG. 14 is a graph in which a relation between a bit error rate and a signal-to-noise ratio (Eb/No) is plotted;
- FIG. 15 is a block diagram showing the structure of a row processing unit of an LDPC code decoding apparatus in accordance with embodiment 6 of the present invention.
- FIG. 16 is a graph in which a relation between a bit error rate and a signal-to-noise ratio (Eb/No) is plotted;
- FIG. 17 is a graph showing a distribution of received values in 4PAM Gray Mapping
- FIG. 18 is a block diagram showing the structure of a row processing unit of an LDPC code decoding apparatus in accordance with embodiment 10 of the present invention.
- FIG. 19 is a block diagram showing the structure of a row processing unit of an LDPC code decoding apparatus in accordance with embodiment 11 of the present invention.
- FIG. 20 is a block diagram showing the structure of an LDPC code decoding apparatus in accordance with embodiment 12 of the present invention.
- FIG. 21 is a diagram showing an example of the construction of an LDPC coded matrix
- FIG. 22 is a diagram showing an example of a group division of an LDPC code matrix in the LDPC code decoding apparatus in accordance with embodiment 12;
- FIG. 23 is a flow chart showing the operation of the LDPC code decoding apparatus in accordance with embodiment 12;
- FIG. 24 is a graph in which a relation between a bit error rate and an average of the number of times that decoding is iterated is plotted
- FIG. 25 is a block diagram showing the structure of a communications apparatus in accordance with embodiment 16 of the present invention.
- FIG. 26 is a diagram showing the construction of an LDPC code which the communications apparatus in accordance with embodiment 16 uses;
- FIG. 27 is a diagram showing an example of assignment of bits in a case of modulating an LDPC code with a modulation method of 4PAM type and transmitting or receiving it in the communications apparatus in accordance with embodiment 16;
- FIG. 28 is a flow chart showing the operation of the communications apparatus in accordance with embodiment 16.
- FIG. 29 is a block diagram showing the structure of an LDPC code decoding apparatus in accordance with embodiment 17 of the present invention.
- FIG. 30 is a block diagram for explaining an example of decoding operations performed by a row processing unit and a column processing unit shown in FIG. 29 ;
- FIG. 31 is a block diagram for explaining another example of the decoding operations performed by the row processing unit and column processing unit shown in FIG. 29 ;
- FIG. 32 is a schematic diagram of a quasi-cyclic code
- FIG. 33 is a block diagram for explaining decoding operations performed by a row processing unit and a column processing unit in accordance with embodiment 18 of the present invention.
- FIG. 34 is a block diagram showing the structure of a turbo code decoding apparatus in accordance with embodiment 19 of the present invention.
- FIG. 35 is a flow chart showing the operation of the turbo code decoding apparatus in accordance with embodiment 19;
- FIG. 36 is a diagram showing an example of the structure of a communications system of this embodiment including an LDPC decoding unit.
- FIG. 37 is a diagram showing an example of the structure of a mobile communications system.
- FIG. 1 is a block diagram showing the structure of an LDPC code decoding apparatus in accordance with embodiment 1 of the present invention.
- the LDPC code decoding apparatus 1 in accordance with this embodiment 1 is provided with a received LLR calculating unit 2 and a decoding core unit (a decoding means) 3 .
- the received LLR calculating unit 2 receives an LDPC (Low-Density Parity Check) encoded signal, calculates a log-likelihood ratio LLR (Log Likelihood Ratio) (referred to as a received LLR from here on), and outputs it to the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of decoding processing carried out by the row processing unit 5 and column processing unit 6 on the basis of the received LLR inputted from the received LLR calculating unit 2 .
- the row processing unit 5 carries out row processing.
- the column processing unit 6 carries out column processing.
- the control unit 7 controls the iteration of the decoding processing carried out by the row processing unit 5 and column processing unit 6 .
- the decoded result judgment unit 8 determines the decoded result from a hard decision of a posterior value, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct.
- the row processing unit 5 in accordance with this embodiment 1 performs an arithmetic operation according to the following equation (8), instead of arithmetic operations according to the above-mentioned equations (1) and (2), on the above-mentioned equation (1). That is, in the row processing of step 1 based on the above-mentioned Shuffled BP algorithm, the row processing unit 5 carries out an update operation according to an update equation for use in the Min-Sum algorithm. Symbols in the following equation are the same as those mentioned above.
- FIG. 2 is a block diagram showing the structure of the row processing unit shown in FIG. 1 .
- Each comparison unit 9 carries cut a comparison between the absolute values of two inputted values, and calculates a product of a small one of them and the signs ( ⁇ ) of the two values.
- the row processing unit 5 consists of a plurality of comparison units 9 which are cascaded. As shown in the figure, a comparison unit 9 located at a lower stage inputs, as one of two inputs thereof, a computed result of another comparison unit 9 which is located immediately above the former comparison unit. A process is carried out by each comparison unit 9 as follows.
- each comparison unit 9 When each comparison unit 9 inputs the absolute values of two values a and b, it outputs sign(a) ⁇ sign(b) ⁇
- the row processing unit 5 inputs the LLRs of bits on which it performs the row processing from the intermediate-result holding unit 4 , each of the comparison units 9 carries out a comparison between the absolute values of two inputted values, and calculates a product of a smaller one of the two values and the signs ( ⁇ ) of them, and the plurality of comparison units 9 then deliver the resultant value to the column processing unit 6 .
- the LDPC code decoding apparatus 1 in accordance with this embodiment 1 is based on the Shuffled BP algorithm of performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits, and uses the above-mentioned equation (8) which is an approximation update equation of the Min-Sum algorithm in each row processing without using the above-mentioned equations (2) and (3).
- the Min-Sum algorithm of performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits is implemented.
- FIG. 3 is a flow chart showing the operation of the LDPC code decoding apparatus in accordance with embodiment 1, and the operation of the LDPC code decoding apparatus will be explained with reference to this figure.
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and then calculates a received LLR from the received information (in step ST 2 ).
- a decoding operation at the ith iteration will be explained as an example.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the 1st to N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N g +1)th to 2N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6 , and the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N ⁇ N g )th to Nth columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of the posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines the decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 which are based on the above-mentioned equation (8) until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- FIG. 4 is a graph in which a relation between a bit error rate and an average of the number of iterations required for the parity check result to indicate O.K. at this bit error rate is plotted in each of an LDPC code decoding apparatus according to the prior art Min-Sum algorithm and the LDPC code decoding apparatus in accordance with the embodiment 1.
- a dashed line which connects between points shows the relation in accordance with the prior art Min-Sum algorithm
- a solid line which connects between points shows the relation in accordance with the algorithm of this embodiment 1.
- the LDPC code is a regular LDPC code, and has a code length of 8,000, a coding rate of 1 ⁇ 2, a column weight of 3, and a row weight of 6, the maximum number of iterations I max is 100 times.
- the communication path is an AWGN (Additive White Gaussian Noise) communication path
- the modulation method is a BPSK (Binary Phase Shift Keying) method.
- the column processing is performed on all the bits of the encoded signal.
- the LDPC code decoding apparatus 1 in accordance with this embodiment 1 performs a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits.
- the LDPC code decoding apparatus in accordance with this embodiment 1 performs a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits, and uses a simple update equation based on the Min-Sum algorithm for the row processing. Therefore, because the transmission of the probability information is carried out more efficiently as compared with the case of using the prior art Min-Sum algorithm, the rate of the convergence in the decoding operation can be improved and therefore the number of iterations can be reduced. Furthermore, although the LDPC code decoding apparatus in accordance with this embodiment uses the Min-Sum algorithm as a fundamental algorithm for the row processing, it does not need to use a mathematical function, unlike that using the prior art Shuffled BP algorithm. Therefore, the calculation cost can be reduced.
- an LDPC code decoding apparatus which implements a Min-Sum algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits.
- an LDPC code decoding apparatus in accordance with this embodiment 2 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, and also executes the Normalized BP algorithm when performing the row processing.
- the LDPC code decoding apparatus in accordance with this embodiment 2 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 1 shown in FIG. 1 , the structure and operation of a row processing unit 5 differ from those of the row processing unit 5 of embodiment 1 because it executes the Normalized BP algorithm.
- the row processing unit 5 in accordance with this embodiment 2 performs an arithmetic operation according to the following equation (9), instead of arithmetic operations according to the above-mentioned equations (2) and (3), on the above-mentioned equation (1). That is, in the Shuffled-BP-algorithm-based row process in step 1 of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, the row processing unit carries out an update operation according to the following equation (9) which is an update equation for use in the Normalized BP algorithm. Symbols in the following equation (9) are the same as those mentioned above.
- the constant ⁇ is a normalization factor.
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), as in the case of step 1 of the above-mentioned Shuffled BP algorithm, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- the LDPC code decoding apparatus 1 in accordance with this embodiment 1 is based on the Shuffled BP algorithm of performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits, and uses the above-mentioned equation (9) which is an approximation update equation based on the Normalized BP algorithm in each row processing without using the above-mentioned equations (2) and (3).
- the LDPC code decoding apparatus decodes an LDPC code at a calculation cost which is much the same as that of the Min-Sum algorithm, it implements a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits according to the Normalized BP algorithm which suppresses the degradation in the decoding performance.
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 2 is the same as that shown in the flow chart of FIG. 3 in above-mentioned embodiment 1. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 3 , and an operation different from that of above-mentioned embodiment 1 will also be explained.
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- a decoding operation at the ith iteration will be explained as an example.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the 1st to N g th columns of the check matrix H according to the above-mentioned equations (3) and (4), and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N g +1)th to 2N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6 , and the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N ⁇ N g )th to Nth columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of the posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines the decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 which are based on the above-mentioned equation (9) until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- FIG. 6 is a graph in which a relation between a bit error rate and an average of the number of iterations required for the parity check result to indicate O.K. at this bit error rate is plotted in each of an LDPC code decoding apparatus according to the prior art Normalized BP algorithm and the LDPC code decoding apparatus in accordance with the embodiment 2.
- a dashed line which connects between points shows the relation in accordance with the prior art Normalized BP algorithm
- a solid line which connects between points shows the relation in accordance with the algorithm of this embodiment 2.
- the LDPC code is a regular LDPC code, and has a code length of 8,000, a coding rate of 1 ⁇ 2, a column weight of 3, and a row weight of 6, the maximum number of iterations I max is 100 times.
- the communication path is an AWGN (Additive White Gaussian Noise) communication path
- the modulation method is a BPSK (Binary Phase Shift Keying) method.
- the factor ⁇ i.e., the normalization factor
- ⁇ 1.25.
- the column processing is performed on all the bits of the encoded signal.
- the LDPC code decoding apparatus in accordance with this embodiment 2 performs a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits.
- the LDPC code decoding apparatus in accordance with this embodiment 2 performs a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits, and uses a simple update equation based on the Normalized BP algorithm for the row processing. Therefore, because the transmission of the probability information is carried out more efficiently as compared with the case of using the prior art Normalized BP algorithm, the rate of the convergence in the decoding operation can be improved and therefore the number of iterations can be reduced. Furthermore, because the LDPC code decoding apparatus in accordance with this embodiment uses the Normalized BP algorithm as the fundamental algorithm, it does not need to use a mathematical function, unlike that using the prior art Shuffled BP algorithm. Therefore, the calculation cost can be reduced.
- An LDPC code decoding apparatus in accordance with this embodiment 3 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, and also executes the Offset BP in the row processing.
- the LDPC code decoding apparatus in accordance with this embodiment 3 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 1 shown in FIG. 1 , the structure and operation of a row processing unit 5 differ from those of the row processing unit 5 of embodiment 1 because it executes the Offset BP algorithm.
- the row processing unit 5 in accordance with this embodiment 2 performs an arithmetic operation according to the following equation (10) on the above-mentioned equation (1).
- the row processing unit carries out an update operation according to the following equation (10) which is an update equation for use in the Offset BP algorithm. Symbols in the following equation (10) are the same as those mentioned above.
- the constant ⁇ is an offset factor and MAX shows an arithmetic operation of selecting a larger one of the two input values.
- the fundamental structure of the LDPC code decoding apparatus in accordance with this embodiment 3 is the same as that of above-mentioned embodiment 1 shown in FIG. 1 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and carries out a decoding process of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to the Offset BP algorithm by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equation (10), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5), as in the case of performing step 1 of the above-mentioned Shuffled BP algorithm.
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), as in the case of step 1 of the above-mentioned Shuffled BP algorithm, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- FIG. 7 is a block diagram showing the structure of the row processing unit of the LDPC code decoding apparatus in accordance with embodiment 3.
- the row processing unit 5 in accordance with this embodiment consists of a plurality of comparison units 9 and a subtraction unit 11 .
- Each comparison unit 9 carries out a comparison between the absolute values of two inputted values, and calculates a product of a small one of them and the signs ( ⁇ ) of the two values, like that shown in FIG. 2 .
- the row processing unit 5 consists of a plurality of comparison units 9 which are cascaded. As shown in the figure, a comparison unit 9 located at a lower stage inputs, as one of two inputs thereof, a computed result of another comparison unit 9 which is located immediately above the former comparison unit. A process is carried out by each comparison unit 9 as follows.
- each comparison unit 9 When each comparison unit 9 inputs the absolute values of two values a and b, it outputs sign(a) ⁇ sign(b) ⁇
- the subtraction unit 11 calculates c ⁇ by subtracting a factor ⁇ (i.e., an offset factor) from an input value c, and outputs it to the column processing unit 6 . That is, the row processing unit 5 in accordance with this embodiment 3 inputs the LLRs of bits on which it performs the row processing from the intermediate-result holding unit 4 , each of the comparison units 9 carries out a comparison between the absolute values of two inputted values, and calculates a product of a smaller one of the two values and the signs ( ⁇ ) of them, and the subtraction unit 11 carries out a process of delivering the resultant value acquired by the plurality of comparison units 9 to the column processing unit 6 after subtracting the factor ⁇ from the value.
- a factor ⁇ i.e., an offset factor
- the LDPC code decoding apparatus in accordance with this embodiment 3 is based on the Shuffled BP algorithm of performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits, and uses the above-mentioned equation (10) which is an approximation update equation based on the Offset BP algorithm in each row processing without using the above-mentioned equations (2) and (3).
- the LDPC code decoding apparatus decodes an LDPC code at a calculation cost which is much the same as that of the Min-Sum algorithm, it implements a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits according to the Offset BP algorithm which suppresses the degradation in the decoding performance.
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 3 is the same as that shown in the flow chart of FIG. 3 in above-mentioned embodiment 1. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 3 , and an operation different from that of above-mentioned embodiment 1 will also be explained.
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- a decoding operation at the ith iteration will be explained as an example.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the 1st to N g th columns of the check matrix H according to the above-mentioned equations (3) and (4), and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N g +1)th to 2N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6 , and the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N ⁇ N g ) th to Nth columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of the posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines the decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 which are based on the above-mentioned equation (10) until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- FIG. 8 is a graph in which a relation between a bit error rate and an average of the number of iterations required for the parity check result to indicate O.K. at this bit error rate is plotted in each of an LDPC code decoding apparatus according to the prior art Offset BP algorithm and the LDPC code decoding apparatus in accordance with the embodiment 3.
- a dashed line which connects between points shows the relation in accordance with the prior art Offset BP algorithm
- a solid line which connects between points shows the relation in accordance with the algorithm of this embodiment 3.
- the LDPC code is a regular LDPC code, and has a code length of 8,000, a coding rate of 1 ⁇ 2, a column weight of 3, and a row weight of 6, the maximum number of iterations I max is 100 times.
- the communication path is an AWGN (Additive White Gaussian Noise) communication path
- the modulation method is a BPSK (Binary Phase Shift Keying) method.
- the factor ⁇ i.e., the offset factor
- the column processing is performed on all the bits of the encoded signal.
- the LDPC code decoding apparatus in accordance with this embodiment 3 performs a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits.
- the LDPC code decoding apparatus in accordance with this embodiment 3 performs a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits, and uses a simple update equation based on the Offset BP algorithm for the row processing. Therefore, because the transmission of the probability information is carried out more efficiently as compared with the case of using the prior art Offset BP algorithm, the rate of the convergence in the decoding operation can be improved and therefore the number of iterations can be reduced. Furthermore, because the LDPC code decoding apparatus in accordance with this embodiment uses the Offset BP algorithm as the fundamental algorithm, and does not need to use a mathematical function, unlike that using the prior art Shuffled BP algorithm. Therefore, the calculation cost can be reduced.
- An LDPC code decoding apparatus has, as a decoding algorithm, a correction-type Min-Sum algorithm of making a correction to the Min-Sum algorithm using a correction term which can be computed only with a subtraction operation and a bit-shift operation on received information.
- FIG. 9 is a block diagram showing the structure of the LDPC code decoding apparatus in accordance with embodiment 4 of the present invention.
- the LDPC code decoding apparatus 1 in accordance with this embodiment 4 is provided with a received LLR calculating unit 2 and a decoding core unit (a decoding means) 3 .
- the received LLR calculating unit 2 receives an LDPC (Low-Density Parity Check) encoded signal, calculates a log-likelihood ratio LLR of the encoded signal, and outputs it to the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of decoding processing carried out by the row processing unit 5 and column processing unit 6 on the basis of the received LLR inputted from the received LLR calculating unit 2 .
- the row processing unit 5 carries out row processing in accordance with the correction-type Min-Sum algorithm for making a correction to the Min-Sum algorithm using the above-mentioned correction term.
- the column processing unit 6 performs column processing on the processed result obtained by the row processing unit 5 .
- the control unit 7 controls the iteration of the decoding processing carried out by the row processing unit 5 and column processing unit 6 .
- the decoded result judgment unit 8 determines a decoded result from a hard decision of a posterior value, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct.
- step 1 which is a row processing executed at one iteration
- the row processing unit 5 in accordance with this embodiment 4 performs an arithmetic operation according to the following equation (12) on the following equation (11).
- Parameters in the following equation (12) are shown by the following equations (13) to (15), and symbols in these equations are the same as those as mentioned above.
- the correction term ⁇ for use in the Min-Sum algorithm is an approximation term which can be acquired from a series expansion of an update equation based on the Sum-Product algorithm, and can be computed only with the difference between the absolute values of two inputs, a division by 2, and a subtraction from a constant C.
- the constant C is ln(2) which is acquired with a rough calculation using the update equation based on the Sum-Product algorithm, and it is also possible to improve the decoding performance by setting an appropriate value, such as 0.9, to the constant C.
- the division by 2 can be implemented with a 1-bit bit shift operation in a system, such as hardware, in which numbers are expressed as binary numbers.
- step 2 the decoded result judgment unit 8 carries out a hard decision of the posterior value z n (i) , and creates a decoded sequence shown by the above-mentioned equation (6). Then, if the conditions shown by the above-mentioned equation (7) are satisfied, the decoded result judgment unit shifts to a process of step 3 which will be mentioned later, whereas when neither of these two conditions is satisfied, the decoded result judgment unit increments the number of iterations i and returns to the process of step 2 . In step 3 , the decoded result judgment unit 8 outputs the decoded sequence according to the above-mentioned equation (6) acquired in step 2 as a decoded result.
- FIG. 10 is a block diagram showing the structure of the row processing unit shown in FIG. 9 .
- Each correction operation unit 12 carries out a comparison between the absolute values of two inputted values, a calculation of the correction term, makes a correction on the basis of this correction term, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values.
- the row processing unit 5 consists of a plurality of correction operation units 12 which are cascaded. As shown in the figure, a correction operation unit 12 located at a lower stage inputs, as one of the two inputs thereof, a computed result of a correction operation unit 12 which is located immediately above the former correction operation unit.
- Each correction operation unit 12 carries out a process as follows.
- the row processing unit 5 inputs the LLRs of bits on which it performs the row processing from the intermediate-result holding unit 4 , each of the plurality of correction operation units 12 carries out a comparison between the absolute values of two inputted values, makes a correction, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values, and the plurality of correction operation units delivers the resultant value to the column processing unit 6 .
- the LDPC code decoding apparatus 1 in accordance with this embodiment 4 completes all the row processings on the encoded signal at an arbitrary iteration of the iterative decoding according to the correction-type Min-Sum algorithm of making a correction to the Min-Sum algorithm using the correction term which can be computed only with a subtraction operation and a bit shift operation on the received information, the LDPC code decoding apparatus 1 carries out the column processing to all the bits of the encoded signal.
- the correction is made during any of all the comparisons, though the amount of arithmetic operations can be reduced by reducing the number of times that the correction is carried out rather than the number of times that the comparison is carried out by making the correction only when a comparison between two minimum values is carried out by each comparison unit 9 , as shown in FIG. 10A .
- FIG. 11 is a flow chart showing the operation of the LDPC code decoding apparatus in accordance with embodiment 4, and the operation of the LDPC code decoding apparatus will be explained with reference to this figure.
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the row processing unit performs the row processing on each row having an element of 1 which is included in the 1st to N g th columns of the check matrix H according to the relation shown by the above-mentioned equation (11) and using the above-mentioned equation (12), and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 When the row processing unit 5 , in step 1 , completes the row processing, the column processing unit 6 performs the column processing on the check matrix H of the LDPC code to be decoded in the decoding operation at the ith iteration. To be more specific, the column processing unit 6 performs the column processing on each column which is included in the first to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (16), and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of the posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the process of step 1 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- FIG. 12 is a graph in which a relation between a bit error rate and a signal-to-noise ratio (Eb/No) at this bit error rate is plotted in each of an LDPC code decoding apparatus according to the prior art Sum-Product algorithm, an LDPC code decoding apparatus according to the prior art Min-Sum algorithm, and the LDPC code decoding apparatus in accordance with the embodiment 4.
- an alternate long and short dash line which connects between points shows the relation in accordance with the prior art Sum-Product algorithm
- a dashed line which connects between points shows the relation in accordance with the prior art Min-Sum algorithm
- a solid line which connects between points shows the relation in accordance with the algorithm of this embodiment 4.
- the LDPC code is a regular LDPC code, and has a code length of 8,000, a coding rate of 1 ⁇ 2, a column weight of 3, and a row weight of 6, the maximum number of iterations I max is 100 times.
- the communication path is an AWGN (Additive White Gaussian Noise) communication path
- the modulation method is a BPSK (Binary Phase Shift Keying) method.
- the LDPC code decoding apparatus 1 in accordance with this embodiment 4 completes all the row processings on the encoded signal according to the correction-type Min-Sum algorithm for making a correction using the correction term which can be computed only with a subtraction operation and a bit shift operation on the received information
- the LDPC code decoding apparatus 1 performs the column processing on all the bits of the encoded signal.
- the LDPC code decoding apparatus 1 in accordance with this embodiment 4 can remarkably improve its decoding performance with this correction, as compared with the case of using the prior art Min-Sum algorithm, and can achieve the same decoding performance as that using the prior art Sum-Product algorithm.
- the LDPC code decoding apparatus can further suppress the degradation in the decoding performance, as compared with the case of using the prior art Sum-Product algorithm, and can remarkably improve the decoding performance, as compared with the case of using the prior art Min-Sum algorithm.
- the LDPC code decoding apparatus calculates the correction term for making a correction to the Min-Sum algorithm from the received information, the LDPC code decoding apparatus does not need to prepare a table for holding the correction term, unlike that using the prior art correction-type Min-Sum algorithm, and does not need to prepare beforehand a factor which is optimized dependently upon the code construction, unlike that using the prior art Normalized BP algorithm or the Offset BP algorithm.
- the calculation of the correction term on the basis of the received information can be implemented only with a subtraction operation and a 1-bit-shift operation, and the LDPC code decoding apparatus 1 in accordance with embodiment 4 can be implemented via simple hardware.
- a decoding apparatus which implements a correction-type Min-Sum algorithm of making a correction using a correction term which can be computed only with a subtraction operation and a bit shift operation on received information is shown.
- a decoding apparatus in accordance with this embodiment 5 implements, as a decoding algorithm, a correction-type Min-Sum algorithm with division of carrying out column processing using a value which is obtained by dividing a row-processed result of the correction-type Min-Sum algorithm explained in above-mentioned embodiment 4 by a constant.
- the decoding apparatus in accordance with this embodiment 5 has fundamentally the same structure as that of the decoding apparatus in accordance with above-mentioned embodiment 4 shown in FIG. 9 , the structure and operation of a row processing unit 5 differ from those of the row processing unit 5 of above-mentioned embodiment 4 because it executes the correction-type Min-Sum algorithm with division.
- the row processing unit 5 in accordance with this embodiment 5 performs an arithmetic operation according to the following equation (17), instead of the arithmetic operation according to the above-mentioned equation (12) which is used in the row processing of above-mentioned embodiment 4, on the above-mentioned equation (1).
- parameters in the following equation (17) follow the above-mentioned equations (13) to (15).
- other processes are the same as those shown in above-mentioned embodiment 4, and symbols in the equation are the same as those as mentioned above.
- a correction term ⁇ for use in the Min-Sum algorithm is an approximation term which can be acquired from a series expansion of an update equation based on the Sum-Product algorithm, and can be computed only with the difference between the absolute values of two inputs, a division by 2, and a subtraction from a constant C.
- the constant C is ln(2) which is acquired with a rough calculation using the update equation based on the Sum-Product algorithm, and it is also possible to improve the decoding performance by setting an appropriate value to the constant C.
- the division by 2 can be implemented with a 1-bit bit shift operation in a system, such as hardware, in which numbers are expressed as binary numbers.
- the division constant ⁇ has the same advantage as the normalization factor in the Normalized BP algorithm, and has an advantage of improving the decoding performance by adjusting the magnitude of an LLR calculated through the row processing according to the correction-type Min-Sum algorithm in above-mentioned embodiment 4 to substantially the same value as the magnitude of an LLR calculated according to the Sum-Product algorithm.
- the division constant ⁇ in the correction-type Min-Sum algorithm with division of this embodiment is referred to as the normalization factor, as in the case of using the Normalized BP algorithm.
- the fundamental structure of the LDPC code decoding apparatus in accordance with this embodiment 5 is the same as that of above-mentioned embodiment 4 shown in FIG. 9 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and performs decoding with row processing and column processing according to the correction-type Min-Sum algorithm with division on a received signal by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equation (17), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) for the relation shown by the above-mentioned equation (16).
- the control unit 7 controls the iteration of the decoding processing carried out by the row processing unit 5 and column processing unit 6 .
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- FIG. 13 is a block diagram showing the structure of the row processing unit of the LDPC code decoding apparatus in accordance with embodiment 5.
- the row processing unit 5 in accordance with this embodiment consists of a plurality of correction operation units 12 and a dividing unit 13 .
- Each correction operation unit 12 carries out a comparison between the absolute values of two inputted values, a calculation of the correction term, makes a correction, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values, like that as shown in FIG. 10 .
- the row processing unit 5 consists of a plurality of correction operation units 12 which are cascaded.
- a correction operation unit 12 located at a lower stage inputs, as one of the two inputs thereof, a computed result of another correction operation unit 12 which is located immediately above the former correction operation unit.
- Each correction operation unit 12 carries out a process as follows.
- the dividing unit 13 divides the operation result of the above-mentioned plurality of correction operation units 12 by the constant ⁇ (i.e., the normalization factor). That is, the dividing unit 13 calculates c/ ⁇ from the input value c, and outputs it.
- ⁇ i.e., the normalization factor
- the plurality of correction operation units 12 input the LLRs of bits on which the row processing unit performs the row processing from the intermediate-result holding unit 4 , and each of them carries out a comparison between the absolute values of two inputted values, calculates a product of the corrected value and the signs ( ⁇ ) of the two values, and makes a correction with the correction term, and the dividing unit 13 divides the resultant value calculated by the plurality of correction operation units 12 by the constant ⁇ and then delivers the division result to the column processing unit 6 .
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 5 is the same as that shown in the flow chart of FIG. 11 in above-mentioned embodiment 4. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 11 , and an operation different from that of above-mentioned embodiment 4 will also be explained.
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the row processing unit performs the row processing on each row having an element of 1 which is included in the 1st to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (11) and using the above-mentioned equation (17), and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 When the row processing unit 5 , in step 1 , completes the row processing, the column processing unit 6 performs the column processing on the check matrix H of the LDPC code to be decoded in the decoding operation at the ith iteration. To be more specific, the column processing unit 6 performs the column processing on each column which is included in the 1st to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (16), and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the process of step 1 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- FIG. 14 is a graph in which a relation between a bit error rate and a signal-to-noise ratio (Eb/No) at this bit error rate is plotted in each of an LDPC code decoding apparatus according to the prior art Sum-Product algorithm, an LDPC code decoding apparatus according to the prior art Normalized BP algorithm, and the LDPC code decoding apparatus in accordance with this embodiment 5.
- a dashed line which connects between points shows the relation in accordance with the prior art Sum-Product algorithm
- an alternate long and short dash line which connects between points shows the relation in accordance with the prior art Normalized BP algorithm
- a solid line which connects between points shows the relation in accordance with the algorithm of this embodiment 5.
- the LDPC code is a regular LDPC code, and has a code length of 8,000, a coding rate of 1 ⁇ 2, a column weight of 3, and a row weight of 6, the maximum number of iterations I max is 100 times.
- the communication path is an AWGN (Additive White Gaussian Noise) communication path
- the modulation method is a BPSK (Binary Phase Shift Keying) method.
- the LDPC code decoding apparatus 1 in accordance with this embodiment 5 completes all the row processings on the encoded signal according to the correction-type Min-Sum algorithm with division of carrying out the column processing using the value which is obtained by dividing the row-processed result obtained according to the correction-type Min-Sum algorithm shown in above-mentioned embodiment 4 by the constant ⁇ , the LDPC code decoding apparatus 1 performs the column processing on all the bits of the encoded signal. As can be seen from FIG.
- the LDPC code decoding apparatus in accordance with this embodiment 5 can remarkably improve its decoding performance with this correction, as compared with the case of using the prior art Normalized BP algorithm, and can achieve much the same decoding performance as that using the prior art Sum-Product algorithm.
- the LDPC code decoding apparatus carries out the decoding processing according to the correction-type Min-Sum algorithm with division of carrying out the column processing using the value which is obtained by dividing the row-processed result obtained according to the correction-type Min-Sum algorithm of making a correction using the correction term which can be computed only with a subtraction operation and a bit shift operation on the received information
- the LDPC code decoding apparatus can remarkably improve the decoding performance as compared with the case of using the prior art Normalized BP algorithm, by not only adjusting the difference between the magnitudes of LLRs calculated according to the prior art Sum-Product algorithm using the factor ⁇ (i.e., the normalization factor), as in the case of using the prior art Normalized BP algorithm, and by also making a further correction to the correction-type Min-Sum algorithm shown in above-mentioned embodiment 4.
- ⁇ i.e., the normalization factor
- the LDPC code decoding apparatus calculates the correction term for the Min-Sum algorithm according to this embodiment 5 from the received information, the LDPC code decoding apparatus does not need to prepare a table for holding the correction term, unlike that using a prior art correction-type algorithm.
- the calculation of the correction term on the basis of the received information can be implemented only with a subtraction operation and a 1-bit-shift operation, and the LDPC code decoding apparatus 1 in accordance with embodiment 5 can be implemented via simple hardware.
- a decoding apparatus executes, as a decoding algorithm, a correction-type Min-Sum algorithm with subtraction of carrying out column processing using a value which is obtained by subtracting a constant from a result of row processing based on the correction-type Min-Sum algorithm explained in above-mentioned embodiment 4.
- the decoding apparatus in accordance with this embodiment 6 has fundamentally the same structure as that of the decoding apparatus in accordance with above-mentioned embodiment 4 shown in FIG. 9 , the structure and operation of a row processing unit 5 differ from those of the row processing unit 5 of above-mentioned embodiment 4 because it executes the correction-type Min-Sum algorithm with subtraction.
- the row processing unit 5 in accordance with this embodiment 6 performs an arithmetic operation according to the following equation (18), instead of the operation according to the above-mentioned equation (12) which is used in the row processing of above-mentioned embodiment 4, on the above-mentioned equation (11).
- parameters in the following equation (18) follow the above-mentioned equations (13) to (15).
- other processes are the same as those shown in above-mentioned embodiment 4, and symbols in the equation are the same as those as mentioned above.
- a correction term ⁇ for use in the Min-Sum algorithm is an approximation term which can be acquired from a series expansion of an update equation based on the Sum-Product algorithm, and can be computed only with the difference between the absolute values of two inputs, a division by 2, and a subtraction from a constant C.
- the constant C is ln(2) which is acquired with a rough calculation using the update equation based on the Sum-Product algorithm, and it is also possible to improve the decoding performance by setting an appropriate value to the constant C.
- the division by 2 can be implemented with a 1-bit bit shift operation in a system, such as hardware, in which numbers are expressed as binary numbers.
- the subtraction constant ⁇ has the same advantage as the offset factor in the Offset BP algorithm, and has an advantage of improving the decoding performance by adjusting the magnitude of an LLR calculated through the row processing based on the correction-type Min-Sum algorithm in above-mentioned embodiment 4 to substantially the same value as the magnitude of an LLR calculated according to the Sum-Product algorithm.
- the subtraction constant ⁇ in the correction-type Min-Sum algorithm with subtraction of this embodiment 6 is referred to as the offset factor, as in the case of the Offset BP algorithm.
- the fundamental structure of the LDPC code decoding apparatus in accordance with this embodiment 6 is the same as that of above-mentioned embodiment 4 shown in FIG. 9 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and performs decoding with row processing and column processing according to the correction-type Min-Sum algorithm with subtraction on a received signal by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equation (18), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) for the relation shown by the above-mentioned equation (16).
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- FIG. 15 is a block diagram showing the structure of the row processing unit of the LDPC code decoding apparatus in accordance with embodiment 6.
- the row processing unit 5 in accordance with this embodiment consists of a plurality of correction operation units 12 and a subtraction unit 14 .
- Each correction operation unit 12 carries out a comparison between the absolute values of two inputted values, a calculation of the correction term, makes a correction, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values, like that as shown in FIG. 10 .
- the row processing unit 5 consists of a plurality of correction operation units 12 which are cascaded.
- a correction operation unit 12 located at a lower stage inputs, as one of the two inputs thereof, a computed result of another correction operation unit 12 which is located immediately above the former correction operation unit.
- Each correction operation unit 12 carries out a process as follows.
- the subtraction unit 14 subtracts the constant ⁇ (i.e., the offset factor) from the operation result of the above-mentioned plurality of correction operation units 12 . That is, the subtraction unit 14 calculates (c ⁇ ) from the input value c, and outputs (c ⁇ ) if the calculation result is not negative and otherwise outputs 0.
- ⁇ i.e., the offset factor
- the plurality of correction operation units 12 input the LLRs of bits on which the row processing unit performs the row processing from the intermediate-result holding unit 4 , and each of the plurality of correction operation units carries out a comparison between the absolute values of two inputted values, calculates a product of the corrected value and the signs ( ⁇ ) of the two values, and makes a correction with the correction term, and the subtraction unit 14 subtracts the constant ⁇ from the resultant value calculated by the plurality of correction operation units 12 , and delivers (c ⁇ ) or 0 to the column processing unit 6 according to the subtraction result.
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 6 is the same as that shown in the flow chart of FIG. 11 in above-mentioned embodiment 4. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 11 , and an operation different from that of above-mentioned embodiment 4 will also be explained.
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the row processing unit performs the row processing on each row having an element of 1 which is included in the 1st to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (11) and using the above-mentioned equation (18), and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 When the row processing unit 5 , in step 1 , completes the row processing, the column processing unit 6 performs the column processing on the check matrix H of the LDPC code to be decoded in the decoding operation at the ith iteration. To be more specific, the column processing unit 6 performs the column processing on each column which is included in the 1st to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (16), and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the process of step 1 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- FIG. 16 is a graph in which a relation between a bit error rate and a signal-to-noise ratio (Eb/No) at this bit error rate is plotted in each of an LDPC code decoding apparatus according to the prior art Sum-Product algorithm, an LDPC code decoding apparatus according to the prior art Offset BP algorithm, and the LDPC code decoding apparatus in accordance with the embodiment 6.
- a dashed line which connects between points shows the relation in accordance with the prior art Sum-Product algorithm
- an alternate long and short dash line which connects between points shows the relation in accordance with the prior art Offset BP algorithm
- a solid line which connects between points shows the relation in accordance with the algorithm of this embodiment 6.
- the LDPC code is a regular LDPC code, and has a code length of 8,000, a coding rate of 1 ⁇ 2, a column weight of 3, and a row weight of 6, the maximum number of iterations I max is 100 times.
- the communication path is an AWGN (Additive White Gaussian Noise) communication path
- the modulation method is a BPSK (Binary Phase Shift Keying) method.
- the LDPC code decoding apparatus 1 in accordance with this embodiment 6 completes all the row processings on the encoded signal according to the correction-type Min-Sum algorithm with subtraction of carrying out the column processing using the value which is obtained by subtracting the constant ⁇ from the row-processed result obtained according to the correction-type Min-Sum algorithm shown in above-mentioned embodiment 4, the LDPC code decoding apparatus 1 performs the column processing on all the bits of the encoded signal. As can be seen from FIG.
- the LDPC code decoding apparatus in accordance with this embodiment 6 can remarkably improve its decoding performance with this correction, as compared with the case of using the prior art Offset BP algorithm, and can achieve much the same decoding performance as that using the prior art Sum-Product algorithm.
- the LDPC code decoding apparatus carries out the decoding processing according to the correction-type Min-Sum algorithm with subtraction of carrying out the column processing using the value which is obtained by subtracting the constant from the row-processed result obtained according to the correction-type Min-Sum algorithm for making a correction using the correction term which can be computed only with a subtraction operation and a bit shift operation on the received information
- the LDPC code decoding apparatus can remarkably improve the decoding performance as compared with the case of using the prior art Offset BP algorithm by not only adjusting the difference between the magnitudes of LLRs calculated according to the prior art Sum-Product algorithm using the factor ⁇ (i.e., the offset factor), as in the case of using the prior art Normalized BP algorithm, and by also making a further correction to the correction-type Min-Sum algorithm shown in above-mentioned embodiment 4.
- the LDPC code decoding apparatus calculates the correction term for the Min-Sum algorithm according to this embodiment 6 from the received information, the LDPC code decoding apparatus does not need to prepare a table for holding the correction term, unlike that using a prior art correction-type algorithm.
- the calculation of the correction term on the basis of the received information can be implemented only with a subtraction and a 1-bit-shift operation, and the LDPC code decoding apparatus 1 in accordance with embodiment 6 can be implemented via simple hardware.
- a decoding apparatus in accordance with this embodiment 7 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, and executes the correction-type Min-Sum algorithm explained in above-mentioned embodiment 4 in the row processing.
- a row processing unit 5 in accordance with this embodiment 7 performs an arithmetic operation according to the following equation (19), instead of the arithmetic operation according to the above-mentioned equation (12) which is used in the row processing of above-mentioned embodiment 4, on the above-mentioned equation (1).
- parameters in the following equation (19) follow the following equation (20) and the above-mentioned equations (13) to (15).
- other processes are the same as those shown in above-mentioned embodiment 4, and symbols in the equation are the same as those as mentioned above.
- a correction term ⁇ for use in the Min-Sum algorithm is an approximation term which can be acquired from a series expansion of an update equation based on the Sum-Product algorithm, and can be computed only with the difference between the absolute values of two inputs, a division by 2, and a subtraction from a constant C.
- the constant C is ln(2) which is acquired with a rough calculation using the update equation based on the Sum-Product algorithm, and it is also possible to improve the decoding performance by setting an appropriate value to the constant C.
- the division by 2 can be implemented with a 1-bit bit shift operation in a system, such as hardware, in which numbers are expressed as binary numbers.
- the fundamental structure of the LDPC code decoding apparatus in accordance with this embodiment 7 is the same as that of above-mentioned embodiment 4 shown in FIG. 9 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and performs decoding with row processing and column processing according to the correction-type Min-Sum algorithm on a received signal by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equation (19) for the relation shown by the above-mentioned equation (1)
- the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) for the relation shown by the above-mentioned equation (1).
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- the row processing unit 5 in accordance with this embodiment 7 has the same fundamental structure as that of that according to above-mentioned embodiment 4 as shown in FIG. 10 . That is, each correction operation unit 12 carries out a comparison between the absolute values of two inputted values, a calculation of the correction term, makes a correction on the basis of this correction term, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values.
- the row processing unit 5 consists of a plurality of correction operation units 12 which are cascaded, and a correction operation unit 12 located at a lower stage inputs, as one of the two inputs thereof, a computed result of another correction operation unit 12 which is located immediately above the former correction operation unit. Each correction operation unit 12 carries out a process as follows.
- the row processing unit 5 inputs the LLRs of bits on which it performs the row processing from the intermediate-result holding unit 4 , each of the plurality of correction operation units 12 carries out a comparison between the absolute values of two inputted values, makes a correction, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values, and the plurality of correction operation units the resultant value to the column processing unit 6 .
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 7 is the same as that shown in the flow chart of FIG. 3 in above-mentioned embodiment 1. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 3 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- a decoding operation at the ith iteration will be explained as an example.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the 1st to N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N g +1)th to 2N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6 , and the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N ⁇ N g )th to Nth columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 which are based on the above-mentioned equation (8) until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the LDPC code decoding apparatus in accordance with this embodiment 7 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, and carries out the row processing according to the correction-type Min-Sum algorithm shown in above-mentioned embodiment 4. Therefore, the transmission of the probability information can be carried out more efficiently, and the rate of the convergence in the decoding operation can be improved and therefore the number of iterations can be reduced.
- this embodiment uses, as the fundamental algorithm, the correction-type Min-Sum algorithm of making a correction from the received information on the basis of an approximation of the Sum-Product algorithm, the calculation cost can be further reduced and high decoding performance can be achieved as compared with the case of using the prior art Shuffled BP algorithm.
- An LDPC code decoding apparatus in accordance with this embodiment 8 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, and executes the correction-type Min-Sum algorithm with division as explained in above-mentioned embodiment 5 in the row processing.
- the row processing unit 5 in accordance with this embodiment 8 performs an arithmetic operation according to the following equation (21) on the above-mentioned equation (1). That is, in the Shuffled-BP-algorithm-based row process in step 1 of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, the row processing unit carries out an update operation according to the following equation (21) which is an update equation for use in the correction-type Min-Sum algorithm with division as shown in above-mentioned embodiment 5. Assume that parameters in the following equation (21) follow the following equation (20) and the above-mentioned equations (14) and (15). Furthermore, other processes are the same as those shown in above-mentioned embodiment 4, and symbols in the equation are the same as those as mentioned above.
- a correction term ⁇ for use in the Min-Sum algorithm in the above-mentioned equation (15) is an approximation term which can be acquired from a series expansion of an update equation based on the Sum-Product algorithm, and can be computed only with the difference between the absolute values of two inputs, a division by 2, and a subtraction from a constant C.
- the constant C is ln(2) which is acquired with a rough calculation using the update equation based on the Sum-Product algorithm, and it is also possible to improve the decoding performance by setting an appropriate value to the constant C.
- the division by 2 can be implemented with a 1-bit bit shift operation in a system, such as hardware, in which numbers are expressed as binary numbers.
- the division constant ⁇ offers the same advantage as provided by the normalization factor in the Normalized BP algorithm, and has an advantage of improving the decoding performance by adjusting the magnitude of an LLR calculated through the row processing based on the correction-type Min-Sum algorithm with division of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits to substantially the same value as the magnitude of an LLR calculated according to the Sum-Product algorithm.
- the fundamental structure of the LDPC code decoding apparatus in accordance with this embodiment 8 is the same as that of above-mentioned embodiment 4 shown in FIG. 9 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and carries out a decoding process of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to the correction-type Min-Sum algorithm with division by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing according to the relation shown by the above-mentioned equation (1) and using the above-mentioned equation (21), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5), as in the case of step 1 of the above-mentioned Shuffled BP algorithm.
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), as in the case of step 1 of the above-mentioned Shuffled BP algorithm, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- the row processing unit 5 in accordance with this embodiment 8 consists of a plurality of correction operation units 12 and a dividing unit 13 .
- Each correction operation unit 12 carries out a comparison between the absolute values of two inputted values, a calculation of the correction term, makes a correction on the basis of this correction term, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values.
- the row processing unit 5 consists of a plurality of correction operation units 12 which are cascaded, and a correction operation unit 12 located at a lower stage inputs, as one of the two inputs thereof, a computed result of another correction operation unit 12 which is located immediately above the former correction operation unit.
- Each correction operation unit 12 carries out a process as follows.
- the dividing unit 13 divides the operation result of the above-mentioned plurality of correction operation units 12 by the constant ⁇ (i.e., the normalization factor). That is, the dividing unit 13 calculates c/ ⁇ from the input value c, and outputs it.
- ⁇ i.e., the normalization factor
- the plurality of correction operation units 12 input the LLRS of bits on which the row processing unit performs the row processing from the intermediate-result holding unit 4 , each of them carries out a comparison between the absolute values of two inputted values, calculates a product of the corrected value and the signs ( ⁇ ) of the two values, and makes a correction on the basis of the correction term, and the dividing unit 13 divides the resultant value calculated by the plurality of correction operation units 12 by the constant ⁇ and delivers the division result to the column processing unit 6 .
- the LDPC code decoding apparatus in accordance with this embodiment 8 is based on the Shuffled BP algorithm of performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits, and uses the above-mentioned equation (21) in each row processing.
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 8 is the same as that shown in the flow chart of FIG. 3 in above-mentioned embodiment 1. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 3 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- a decoding operation at the ith iteration will be explained as an example.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the 1st to N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N g +1)th to 2N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6 , and the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N ⁇ N g )th to Nth columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of the posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 which are based on the above-mentioned equation (8) until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the LDPC code decoding apparatus in accordance with this embodiment 8 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, and carries out the row processing according to the correction-type Min-Sum algorithm with division shown in above-mentioned embodiment 5. Therefore, the transmission of the probability information can be carried out more efficiently, and the rate of the convergence in the decoding operation can be improved and therefore the number of iterations can be reduced.
- this embodiment uses, as the fundamental algorithm, the correction-type Min-Sum algorithm with division of making a correction to the received information according to an approximation of the Sum-Product algorithm, the calculation cost can be further reduced as compared with the case of using the prior art Shuffled BP algorithm and high decoding performance can be achieved.
- An LDPC code decoding apparatus in accordance with this embodiment 9 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, and executes the correction-type Min-Sum algorithm with subtraction as explained in above-mentioned embodiment 6 in the row processing.
- the LDPC code decoding apparatus in accordance with this embodiment 9 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 4 shown in FIG. 9 , the structure and operation of a row processing unit 5 differ from those of the row processing unit 5 of embodiment 4 because it executes the correction-type Min-Sum algorithm with subtraction.
- the row processing unit 5 in accordance with this embodiment 9 performs an arithmetic operation according to the following equation (22) on the above-mentioned equation (1). That is, in the Shuffled-BP-algorithm-based row process in step 1 of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, the row processing unit carries out an update operation according to the following equation (22) which is an update equation for use in the correction-type Min-Sum algorithm with subtraction as shown in above-mentioned embodiment 6. Assume that parameters in the following equation (22) follow the following equation (20) and the above-mentioned equations (14) and (15). Furthermore, other processes are the same as those shown in above-mentioned embodiment 4, and symbols in the equation are the same as those as mentioned above.
- a correction term ⁇ for use in the Min-Sum algorithm in the above-mentioned equation (15) is an approximation term which can be acquired from a series expansion of an update equation based on the Sum-Product algorithm, and can be computed only with the difference between the absolute values of two inputs, a division by 2, and a subtraction from a constant C.
- the constant C is ln(2) which is acquired with a rough calculation using the update equation based on the Sum-Product algorithm, and it is also possible to improve the decoding performance by setting an appropriate value to the constant C.
- the division by 2 can be implemented with a 1-bit bit shift operation in a system, such as hardware, in which numbers are expressed as binary numbers.
- the subtraction constant ⁇ offers the same advantage as provided by the offset factor ⁇ in the Offset BP algorithm, and has an advantage of improving the decoding performance by adjusting the magnitude of an LLR calculated through the row processing based on the correction-type Min-Sum algorithm with subtraction of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits to substantially the same value as the magnitude of an LLR calculated according to the Sum-Product algorithm.
- the fundamental structure of the LDPC code decoding apparatus in accordance with this embodiment 9 is the same as that of above-mentioned embodiment 4 shown in FIG. 9 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and carries out a decoding process of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to the correction-type Min-Sum algorithm with subtraction by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing according to the relation shown by the above-mentioned equation (1) and using the above-mentioned equation (22), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5), as in the case of step 1 of the above-mentioned Shuffled BP algorithm.
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), as in the case of step 1 of the above-mentioned Shuffled BP algorithm, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- the row processing unit 5 in accordance with this embodiment 9 consists of a plurality of correction operation units 12 and a subtraction unit 14 .
- Each correction operation unit 12 carries out a comparison between the absolute values of two inputted values, a calculation of the correction term, makes a correction on the basis of this correction term, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values.
- the row processing unit 5 consists of a plurality of correction operation units 12 which are cascaded, and a correction operation unit 12 located at a lower stage inputs, as one of the two inputs thereof, a computed result of another correction operation unit 12 which is located immediately above the former correction operation unit.
- Each correction operation unit 12 carries out a process as follows.
- the row processing unit 5 inputs the LLRs of bits on which it performs the row processing from the intermediate-result holding unit 4 , each of the plurality of correction operation units 12 carries out a comparison between the absolute values of two inputted values, makes a correction, and calculates a product of the corrected value and the signs ( ⁇ ) of the two values, and the plurality of correction operation units deliver the resultant value to the column processing unit 6 .
- the subtraction unit 14 divides the operation result of the above-mentioned plurality of correction operation units 12 by the constant ⁇ (i.e., the offset factor). That is, the subtraction unit 14 calculates (c ⁇ ) from the input value c, and outputs it.
- ⁇ i.e., the offset factor
- the plurality of correction operation units 12 input the LLRs of bits on which the row processing unit performs the row processing from the intermediate-result holding unit 4 , each of them carries out a comparison between the absolute values of two inputted values, calculates a product of the corrected value and the signs ( ⁇ ) of the two values, and makes a correction using the correction term, and the subtraction unit 14 subtracts the constant ⁇ from the resultant value calculated by the plurality of correction operation units 12 and delivers the subtraction result to the column processing unit 6 .
- the LDPC code decoding apparatus in accordance with this embodiment 9 is based on the Shuffled BP algorithm of performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bits, and uses the above-mentioned equation (22) in each row processing.
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 9 is the same as that shown in the flow chart of FIG. 3 in above-mentioned embodiment 1. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 3 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the 1st to N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N g +1)th to 2N g th columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6 , and the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 similarly performs the column processing on each column having an element of 1 which is included in the (N ⁇ N g )th to Nth columns of the check matrix H, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit makes them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 which are based on the above-mentioned equation (8) until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the LDPC code decoding apparatus in accordance with this embodiment 9 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits, and carries out the row processing according to the correction-type Min-Sum algorithm with subtraction shown in above-mentioned embodiment 6. Therefore, the transmission of the probability information can be carried out more efficiently, and the rate of the convergence in the decoding operation can be improved and therefore the number of iterations can be reduced.
- this embodiment uses, as the fundamental algorithm, the correction-type Min-Sum algorithm with subtraction of making a correction on the received information according to an approximation of the Sum-Product algorithm, the calculation cost can be further reduced as compared with the case of using the prior art Shuffled BP algorithm and high decoding performance can be achieved.
- a decoding apparatus decodes a received signal according to a decoding algorithm which does not have a fixed factor ⁇ (i.e., a normalization factor) for all rows of a check matrix, but has a factor ⁇ m (i.e., a normalization factor) which is determined for each row.
- ⁇ i.e., a normalization factor
- This embodiment 10 can be applied to all decoding algorithms each of which has a factor ⁇ (i.e., a normalization factor), including a general Normalized BP algorithm, the correction-type Min-Sum algorithm with division as shown in above-mentioned embodiment 5, and another decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to either of those algorithms.
- ⁇ i.e., a normalization factor
- an LDPC code decoding apparatus which performs column processing on all the bits of an encoded signal after completing all row processings on the encoded signal at an arbitrary iteration of the iterative decoding, as in the case of using the prior art Min-Sum algorithm, and which applies a factor ⁇ m (i.e., a normalization factor) determined for each row to the Normalized BP algorithm will be mentioned as an example.
- ⁇ m i.e., a normalization factor
- the LDPC code decoding apparatus in accordance with this embodiment 10 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 4 shown in FIG. 9 , the structure and operation of a row processing unit 5 differ from those of the row processing unit 5 of embodiment 4 because it executes the Normalized BP algorithm using a factor ⁇ m (i.e., a normalization factor) for each row.
- the row processing unit 5 in accordance with this embodiment 10 performs an arithmetic operation according to the following equation (23), instead of the arithmetic operation according to the above-mentioned equation (12) which is used in the row processing of above-mentioned embodiment 4, on the above-mentioned equation (11).
- Parameters in the following equation (23) are the same as those shown in the above-mentioned embodiment 4, and symbols in the equation are the same as those as mentioned above.
- the factor ⁇ m shows the normalization factor in the mth row of the matrix.
- FIG. 17 is a graph showing a distribution of received values in a case in which the modulation method is of 4PAM Gray Mapping type.
- MSB Mobile Bit Bit
- LSB Least Significant Bit
- ⁇ m shown by a ratio between an average of results of the row processing according to the Sum-Product algorithm and an average of results of the row processing according to the Min-Sum algorithm is dependent upon the error rate of bits having 1 in each row.
- the factor ⁇ m is dependent upon the number of bits having 1 in each row which are MSBs, and the number of bits having 1 in each row which are LSBs.
- a value which corresponds to each row is prepared beforehand as ⁇ m .
- the modulation method of 4PAM type is mentioned as an example, the same goes for a multi-level modulation method which causes a difference in the bit error rate among the bits of the received signal.
- ⁇ m which is the ratio between an average of results of the row processing according to the Sum-Product algorithm and an average of results of the row processing according to the Min-Sum algorithm is dependent upon the row weight. Therefore, in accordance with this embodiment, a value which corresponds to the row weight of each row is prepared as ⁇ m .
- ⁇ m is calculated in advance using either a simulation or a density evolution method.
- the fundamental structure of the LDPC code decoding apparatus in accordance with this embodiment 10 is the same as that of above-mentioned embodiment 4 shown in FIG. 9 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and carries out a decoding process of performing row processing and column processing on a received signal according to the Normalized BP algorithm using a factor ⁇ m (i.e., a normalization factor) determined for each row by means of the decoding core unit 3 .
- a factor ⁇ m i.e., a normalization factor
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equation (23), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) for the relation shown by the above-mentioned equation (16).
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- FIG. 18 is a block diagram showing the structure of the row processing unit of the LDPC code decoding apparatus in accordance with embodiment 10.
- the row processing unit 5 in accordance with this embodiment consists of a plurality of comparison units 9 , a dividing unit 10 a , and a division constant selecting unit 15 .
- Each comparison unit 9 carries out a comparison between the absolute values of two inputted values, and calculates a product of a small one of them and the signs ( ⁇ ) of the two values, like that as shown in FIG. 2 .
- the row processing unit 5 consists of a plurality of comparison units 9 which are cascaded. As shown in the figure, a comparison unit 9 located at a lower stage inputs, as one of two inputs thereof, a computed result of another comparison unit 9 which is located immediately above the former comparison unit. A process is carried out by each comparison unit 9 as follows.
- each comparison unit 9 When each comparison unit 9 inputs the absolute values of two values a and b, it outputs sign(a) ⁇ sign(b) ⁇
- the dividing unit 10 a divides the result of the operations of the above-mentioned plurality of comparison units 9 by the constant ⁇ m (i.e., the normalization factor) from the division constant selecting unit 15 . That is, the dividing unit 10 a calculates c/ ⁇ m from the input value c and outputs it.
- ⁇ m i.e., the normalization factor
- the plurality of comparison units 9 input the LLRs of bits on which the row processing unit performs the row processing from the intermediate-result holding unit 4 , each of the plurality of comparison units carries out a comparison between the absolute values of two inputted values, and calculates a product of a smaller one of the two values and the signs ( ⁇ ) of them, and the dividing unit 10 a divides the resultant value calculated by the plurality of comparison units 9 by the constant ⁇ m , and then delivers the division result to the column processing unit 6 .
- the division constant selecting unit 15 stores values of ⁇ m for each row beforehand, receives information on the communication path and the code construction from a control unit 7 , inputs the number m of a row to be processed which is included in this information, determines ⁇ m for each row, and delivers it to the dividing unit 10 a.
- the row processing unit 5 input the LLRs of bits on which the row processing unit performs the row processing from the intermediate-result holding unit 4 , each of the comparison units 9 carries out a comparison between the absolute values of two inputted values, and calculates a product of a smaller one of the two values and the signs ( ⁇ ) of them, and the dividing unit 10 a divides the value calculated by the plurality of comparison units 9 by the constant ⁇ m selected by the division constant selecting unit 15 , and then delivers the division result to the column processing unit 6 .
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 10 is the same as that shown in the flow chart of FIG. 11 in above-mentioned embodiment 4. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 11 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the division constant selecting unit 15 determines ⁇ m for each row on the basis of this information, and delivers it to the dividing unit 10 a.
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the row processing unit performs the row processing on each row having an element of 1 which is included in the 1st to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (11) and using the above-mentioned equation (23), and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 When the row processing unit 5 , in step 1 , completes the row processing, the column processing unit 6 performs the column processing on the check matrix H of the LDPC code to be decoded in the decoding operation at the ith iteration. To be more specific, the column processing unit 6 performs the column processing on each column which is included in the first to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (16), and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of step 1 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the decoding apparatus sets up a normalization factor based on the Normalized BP algorithm for each row according to the modulation method and the code construction, in a case in which, for example, the input code is multi-level modulated or is an irregular LDPC code, the decoding apparatus can make the probability information propagated approach that acquired according to the Sum-Product algorithm, and can further improve the decoding performance, as compared with the case of using the prior art Normalized BP algorithm.
- the LDPC code decoding apparatus which performs column processing on all the bits of the encoded signal after completing all row processings on the encoded signal at an arbitrary iteration of the iterative decoding, and which applies a factor ⁇ m (i.e., a normalization factor) determined for each row to the Normalized BP algorithm is mentioned above as an example.
- a factor ⁇ m i.e., a normalization factor
- the LDPC code decoding apparatus can be so constructed as to apply a factor ⁇ m which is determined for each row to another decoding algorithm, like the correction-type Min-Sum algorithm with division as shown in above-mentioned embodiment 5, or another decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to either of those algorithms.
- another decoding algorithm like the correction-type Min-Sum algorithm with division as shown in above-mentioned embodiment 5, or another decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to either of those algorithms.
- a decoding apparatus decodes a received signal according to a decoding algorithm which does not have a fixed factor ⁇ (i.e., an offset factor) for any of all rows of a check matrix, but has a factor ⁇ m (i.e., an offset factor) which is determined for each row.
- ⁇ i.e., an offset factor
- This embodiment 11 can be applied to all decoding algorithms each of which has a factor ⁇ (i.e., an offset factor), including a general Offset BP algorithm, the correction-type Min-Sum algorithm with subtraction as shown in above-mentioned embodiment 6, and another decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to either of those algorithms.
- ⁇ i.e., an offset factor
- an LDPC code decoding apparatus which performs column processing on all the bits of an encoded signal after completing all row processings on the encoded signal at an arbitrary iteration of the iterative decoding, as in the case of using the prior art Min-Sum algorithm, and which applies a factor ⁇ m (i.e., an offset factor) determined for each row to the Offset BP algorithm will be mentioned as an example.
- the LDPC code decoding apparatus in accordance with this embodiment 11 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 4 shown in FIG. 9 , the structure and operation of a row processing unit 5 differ from those of the row processing unit 5 of embodiment 4 because it executes the Offset BP algorithm using a factor ⁇ m (i.e., an offset factor) for each row.
- the row processing unit 5 in accordance with this embodiment 11 performs an arithmetic operation according to the following equation (24), instead of the arithmetic operation according to the above-mentioned equation (12) which is used in the row processing of above-mentioned embodiment 4, on the above-mentioned equation (11).
- Parameters in the following equation (24) are the same as those shown in the above-mentioned embodiment 4, and symbols in the equation are the same as those as mentioned above.
- the factor ⁇ m shows the offset factor in the mth row of the matrix.
- the received values have a distribution as shown in FIG. 17 , as mentioned above, and there is a difference is in the bit error rate between MSB and LSB.
- ⁇ m shown by a ratio between an average of results of the row processing according to the Sum-Product algorithm and an average of results of the row processing according to the Min-Sum algorithm is dependent upon the error rate of bits having 1 in each row.
- the factor ⁇ m is dependent upon the number of bits having 1 in each row which are MSBs, and the number of bits having 1 in each row which are LSBs.
- a value which corresponds to each row is prepared beforehand as ⁇ m .
- the modulation method of 4PAM type is mentioned as an example, the same goes for a multi-level modulation method which causes a difference in the bit error rate among the bits of the received signal.
- ⁇ m which is the ratio between an average of results of the row processing according to the Sum-Product algorithm and an average of results of the row processing according to the Min-Sum algorithm is dependent upon the row weight. Therefore, in accordance with this embodiment, a value which corresponds to the row weight of each row is prepared as ⁇ m .
- ⁇ m is calculated in advance using either a simulation or a density evolution method.
- the fundamental structure of the LDPC code decoding apparatus in accordance with this embodiment 11 is the same as that of above-mentioned embodiment 4 shown in FIG. 9 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and carries out a decoding process of performing row processing and column processing on a received signal according to the Offset BP algorithm using a factor ⁇ m (i.e., an offset factor) determined for each row by means of the decoding core unit 3 .
- a factor ⁇ m i.e., an offset factor
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equation (24), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) for the relation shown by the above-mentioned equation (16).
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- FIG. 19 is a block diagram showing the structure of the row processing unit of the LDPC code decoding apparatus in accordance with embodiment 11.
- the row processing unit 5 in accordance with this embodiment consists of a plurality of comparison units 9 , a subtraction unit 11 a , and a subtraction constant selecting unit 16 .
- Each comparison unit 9 carries out a comparison between the absolute values of two inputted values, and calculates a product of a small one of them and the signs ( ⁇ ) of the two values, like that as shown in FIG. 2 .
- the row processing unit 5 consists of a plurality of comparison units 9 which are cascaded. As shown in the figure, a comparison unit 9 located at a lower stage inputs, as one of two inputs thereof, a computed result of another comparison unit 9 which is located immediately above the former comparison unit. A process is carried out by each comparison unit 9 as follows.
- each comparison unit 9 When each comparison unit 9 inputs the absolute values of two values a and b, it outputs sign(a) ⁇ sign(b) ⁇
- the subtraction unit 11 a subtracts the constant ⁇ m (i.e., the offset factor) from the subtraction constant selecting unit 16 from the result of the operations by the above-mentioned plurality of comparison units 9 . That is, the subtraction unit 11 a calculates c ⁇ m from the input value c, and outputs it.
- ⁇ m i.e., the offset factor
- the plurality of comparison units 9 input the LLRs of bits on which the row processing unit performs the row processing from the intermediate-result holding unit 4 , each of the comparison units carries out a comparison between the absolute values of two inputted values, and calculates a product of a smaller one of the two values and the signs ( ⁇ ) of them, and the subtraction unit 11 a subtracts the constant ⁇ m from the resultant value calculated by the plurality of comparison units 9 , and then delivers the subtraction result to the column processing unit 6 .
- the subtraction constant selecting unit 16 stores values of ⁇ m for each row beforehand, receives information on the communication path and the code construction from the control unit 7 , inputs the number m of a row to be processed which is included in this information, determines ⁇ m for the row, and delivers it to the subtraction unit 11 a.
- the row processing unit 5 input the LLRs of bits on which the row processing unit performs the row processing from the intermediate-result holding unit 4 , each of the plurality of comparison units 9 carries out a comparison between the absolute values of two inputted values, and calculates a product of a smaller one of the two values and the signs ( ⁇ ) of them, and the subtraction unit 11 a subtracts the constant ⁇ m selected by the subtraction constant selecting unit 16 from the resultant value calculated by the plurality of comparison units 9 , and then delivers the subtraction result to the column processing unit 6 .
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 11 is the same as that shown in the flow chart of FIG. 11 in above-mentioned embodiment 4. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 11 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the subtraction constant selecting unit 16 determines ⁇ m for each row on the basis of this information, and delivers it to the subtraction unit 11 a.
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the row processing unit performs the row processing on each row having an element of 1 which is included in the 1st to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (11) and using the above-mentioned equation (24), and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 When the row processing unit 5 , in step 1 , completes the row processing, the column processing unit 6 performs the column processing on the check matrix H of the LDPC code to be decoded in the decoding operation at the ith iteration. To be more specific, the column processing unit 6 performs the column processing on each column which is included in the 1st to Nth columns of the check matrix H according to the relation shown by the above-mentioned equation (16), and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the process of step 1 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the decoding apparatus sets up an offset factor based on the Offset BP algorithm for each row according to the modulation method and the code construction, in a case in which, for example, the input code is multi-level modulated or is an irregular LDPC code, the decoding apparatus can make the probability information propagated approach that acquired according to the Sum-Product algorithm, and can further improve the decoding performance as compared with the case of using the prior art Offset BP algorithm.
- the LDPC code decoding apparatus which performs column processing on all the bits of the encoded signal after completing all row processings on the encoded signal at an arbitrary iteration of the iterative decoding, and which applies a factor ⁇ m (i.e., an offset factor) determined for each row to the Offset BP algorithm is mentioned above as an example.
- the LDPC code decoding apparatus can be so constructed as to apply a factor ⁇ m which is determined for each row to another decoding algorithm, like the correction-type Min-Sum algorithm with subtraction as shown in above-mentioned embodiment 6, or another decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to either of those algorithms.
- another decoding algorithm like the correction-type Min-Sum algorithm with subtraction as shown in above-mentioned embodiment 6, or another decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits according to either of those algorithms.
- FIG. 20 is a block diagram showing the structure of an LDPC code decoding apparatus in accordance with embodiment 12 of the present invention.
- the LDPC code decoding apparatus 1 in accordance with this embodiment 12 is provided with a received LLR calculating unit 2 and a decoding core unit 3 , like that according to above-mentioned embodiment 1 shown in FIG. 1 .
- the LDPC code decoding apparatus in accordance with this embodiment differs from that according to above-mentioned embodiment 1 in that it has a column-to-be-operated-on control unit 17 .
- the column-to-be-operated-on control unit 17 determines columns on which a row processing unit 5 and a column processing unit 6 perform arithmetic operations on the basis of a group division, and controls decoding processing which is based on the group division.
- the LDPC code decoding apparatus in accordance with the embodiment 12 performs a calculation and an update of probability information with row processing and column processing on a received signal in batches of two or more predetermined bits, as in the case of using the prior art Group Shuffled BP algorithm, and divides the received code into some groups each of which is a combination of two or more bits on the basis of the construction of the code.
- the reason why a decoding algorithm of carrying out a calculation and an update of probability information with row processing and column processing in batches of 1 bit brings the decoding to completion with a smaller number of iterations than with that in the case of using another algorithm of not carrying out a calculation and an update of probability information with row processing and column processing in batches of 1 bit is because the calculated probability information is immediately updated, and the propagation of the probability information is efficiently carried out by using the updated probability information for the next decoding operation with the same number of iterations.
- the decoding apparatus in accordance with this embodiment divides the received signal into some groups each of which is a combination of two or more bits so that columns included in each identical group do not have 1 in the same row according to a decoding algorithm of carrying out a calculation and an update of probability information with row processing and column processing on the received signal in batches of two or more bits, like the Group Shuffled BP algorithm.
- the decoding apparatus can carry out the propagation of the probability information more efficiently and can also reduce the number of iterations, as compared with a case in which columns included in each same group have 1 in the same row.
- FIG. 21 is a figure showing the structure of an example of an LDPC coded matrix.
- elements in an upper-right portion in the matrix which is enclosed by a triangle are all zero.
- FIG. 22 is a diagram showing an example of the group division of the LDPC code matrix in the LDPC code decoding apparatus in accordance with embodiment 12.
- the coded matrix can be used in common with a decoded matrix, and there are many practical advantages.
- the decoding apparatus When carrying out a group division of such a matrix coded with an LDPC code, and then carrying out a calculation and an update of probability information with row processing and column processing on the received signal in batches of two or more bits, the decoding apparatus carries out the group division so that the parity bit portion of the matrix does not run in a line, as shown in FIG. 22 .
- the decoding apparatus carries out the group division of the LDPC matrix for every other row so that the parity bit portion of the matrix does not run in a line.
- Reference symbols A, B, C, D, E, and F shown in the figure denote groups 1 , 2 , 3 , 4 , 5 , and 6 which are the first to sixth groups, respectively.
- the LDPC code decoding apparatus in accordance with this embodiment 12 executes the Group Shuffled BP algorithm of carrying out a group division of the LDPC coded matrix on the basis of the code construction, as shown in FIG. 22 .
- the Group Shuffled BP algorithm will be explained briefly.
- N(m) ⁇ n shows a set of column indices in which the nth column is removed from the set N(m)
- M(n) ⁇ m shows a set of row indices in which the mth row is removed from the set M(n).
- z m,n′ (i) is an LLR which is updated at the ith iteration
- ⁇ m,n (i) is an LLR at the ith iteration which is sent from a check node to a bit node.
- step 1 a column process of computing the above-mentioned equations (4) and (5) under the condition shown by the above-mentioned equation (25) is carried out.
- z m,n (i) is an LLR at the ith iteration, which is sent from the bit node to the check node.
- z n (i) is a posterior value at the ith iteration.
- a decoded result judgment unit carries out a hard decision of the posterior value z n (i) and creates a decoded sequence shown by the above-mentioned equation (6). Then, if the conditions shown by the above-mentioned equation (7) are satisfied, the decoded result judgment unit shifts to a process of step 3 which will be mentioned later, whereas when neither of these two conditions is satisfied, the decoded result judgment unit increments the number of iterations i and returns to the process of step 2 .
- the decoded result judgment unit outputs the decoded sequence according to the above-mentioned equation (6) acquired in step 2 as a decoded result.
- GR(g) shows a combination of columns which construct the gth group.
- GR(g) is shown concretely as follows.
- the LDPC code decoding apparatus in accordance with this embodiment 12 has the same fundamental structure of as that of above-mentioned embodiment 1 shown in FIG. 1 , with the exception that it has the column-to-be-operated-on control unit 17 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and carries out decoding of an LDPC code according to the Group Shuffled BP algorithm of carrying out a group division for every bit by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , the row processing unit 5 , the column processing unit 6 , a control unit 7 , the decoded result judgment unit 8 , and the column-to-be-operated-on control unit 17 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equations (2) and (3) under the condition shown by the above-mentioned equation (25), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) under the condition shown by the above-mentioned equation (25).
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), as in the case of step 1 of the above-mentioned Group Shuffled BP algorithm, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- the column-to-be-operated-on control unit 17 carries out the group division of the LDPC coded matrix, and controls the columns on which the row processing unit 5 and column processing unit 6 perform arithmetic operations.
- FIG. 23 is a flow chart showing the operation of the LDPC code decoding apparatus in accordance with embodiment 12, and a decoding operation using the coded matrix as shown in FIG. 22 will be explained, as an example, with reference to FIG. 23 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the column-to-be-operated-on control unit 17 delivers the numbers of all columns included in group 1 to which the symbol A is attached in the figure to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 1 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 1 , and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 then delivers the numbers of all columns included in group 2 to which the symbol B is attached in the figure to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 2 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 2 , and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the numbers of all columns included in group g to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group g, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group g, and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the numbers of all columns included in group 6 to which the symbol F is attached in the figure to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 2 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 6 , and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the process of step 1 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- FIG. 24 is a graph in which a relation between a bit error rate and an average of the number of iterations required for the parity check result to indicate O.K. at this bit error rate is plotted in each of a case in which the LDPC code decoding apparatus in accordance with embodiment 12 decodes the received signal by carrying out a group division of the coded matrix on the basis of the code construction, as mentioned above, and a case in which a group division of the coded matrix is carried out and the received signal is decoded according to the prior art Group Shuffled BP algorithm.
- a dashed line which connects between points shows the relation in accordance with the prior art Group Shuffled BP algorithm
- a solid line which connects between points shows the relation in accordance with the algorithm of this embodiment 12.
- the LDPC code is an irregular LDPC code having an upper right triangular area with all its elements 0 , and has a code length of 64,800, a coding rate of 1 ⁇ 2, a column weight of 7, and a row weight of 8, and the maximum number of iterations I max is 20 times.
- the communication path is an AWGN (Additive White Gaussian Noise) communication path
- the modulation method is a QPSK (Quadrature Phase Shift Keying) method.
- the decoding apparatus in accordance with embodiment 12 carries out the decoding processing according to the above-mentioned Group Shuffled BP algorithm of carrying a group division of the LDPC matrix for every row on the basis of the code construction.
- the LDPC matrix is divided into some groups from the first bit of the head of the LDPC matrix in batches of a predetermined number of bits, as usual.
- the decoding processing in accordance with this embodiment 12 can reduce the number of iterations of decoding required for the parity check to indicate O.K. remarkably, as compared with the case of using the prior art Group Shuffled BP algorithm. This is an example of comparison with the prior art Group Shuffled BP algorithm.
- This embodiment 12 can also be applied to a decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of a predetermined number of bits, like the prior art Shuffled BP algorithm, so as to reduce the number of iterations similarly.
- the decoding apparatus when decoding an LDPC code having 1s in adjacent columns according to the decoding algorithm of carrying out a group division of the LDPC coded matrix, and performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of a predetermined number of bits, like the Group Shuffled BP algorithm, the decoding apparatus according to this embodiment 12 carries out the decoding processing by carrying out the group division of the LDPC coded matrix for every row on the basis of the construction of the LDPC code and performing the row processing on each row having 1 in each column included in each group, and also performing the column processing on each column included in the group.
- the decoding apparatus does not divide any adjacent columns into the same group, it can carry out the propagation of the probability information efficiently. As a result, as shown in FIG. 24 , the number of iterations can be reduced, as compared with the prior art Group Shuffled BP algorithm of carrying out a group division from the leading bit of the LDPC coded matrix.
- the LDPC code decoding apparatus which carries out a group division of an LDPC coded matrix for every row on the basis of the construction of an LDPC code is shown.
- An LDPC code decoding apparatus in accordance with this embodiment 13 carries out a group division of a target for decoding processing on the basis of a modulation method of a received signal.
- the LDPC code decoding apparatus in accordance with this embodiment 13 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 12 shown in FIG. 20 , and carries out a group division of the received signal on the basis of the modulation method by means of a column-to-be-operated-on control unit 17 and performs the decoding processing on the received signal for each group of the received signal by means of a row processing unit 5 and a column processing unit 6 .
- the group division according to this embodiment 13 is carried out in the same way as that according to above-mentioned embodiment 12. That is, when performing the decoding processing by carrying out a group division and then performing a calculation and an update of probability information with row processing and column processing on the received signal, as in the case of using the Group Shuffled BP algorithm, the decoding apparatus in accordance with this embodiment 13 divides the coded matrix into groups 1 to 6 for every row, as shown in FIG. 22 explained in above-mentioned embodiment 12, on the basis of the modulation method of the received signal.
- the error rate differs for each bit of the received signal.
- the MSBs of the received signal have a low bit error rate
- the LSBs of the received signal have a high bit error rate.
- the decoding of the MSBs can be completed with a smaller number of iterations as compared with the decoding of the LSBs.
- the decoding apparatus in accordance with this embodiment 13 is so constructed as to divide the received signal into groups each including only MSBs and groups each including only LSBs, and to perform an arithmetic operation on the groups each including only MSBs first and, after that, perform an arithmetic operation on the groups each including only LSBs in a case of the modulation method of 4PAM type shown in FIG. 17 .
- the group division is carried out as in the case of using the prior art Group Shuffled BP algorithm.
- This process of carrying out a group division of a target for the decoding processing on the basis of the modulation method according to this embodiment can also be applied to another decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of a predetermined number of bits.
- the modulation method of 4PAM type as shown in FIG. 17 is mentioned as an example. Also in a case of a multi-level modulation method which causes a difference in the bit error rate among the bits of the received signal, a group division of a target for the decoding processing can be similarly carried out according to the difference in the bit error rate.
- N(m) ⁇ n shows a set of column indices in which the nth column is removed from the set N(m)
- M(n) ⁇ m shows a set of row indices in which the mth row is removed from the set M(n).
- z m,n′ (i) is an LLR which is updated at the ith iteration
- ⁇ m,n (i) is an LLR at the ith iteration which is sent from a check node to a bit node.
- step 1 a column process of computing the above-mentioned equations (4) and (5) under the condition shown by the above-mentioned equation (25) is carried out.
- z m,n (i) is an LLR at the ith iteration, which is sent from the bit node to the check node.
- z n (i) is a posterior value at the ith iteration.
- a decoded result judgment unit carries out a hard decision of the posterior value z n (i) and creates a decoded sequence shown by the above-mentioned equation (6). Then, if the conditions shown by the above-mentioned equation (7) are satisfied, the decoded result judgment unit shifts to a process of step 3 which will be mentioned later, whereas when neither of these two conditions is satisfied, the decoded result judgment unit increments the number of iterations i and returns to the process of step 2 .
- the decoded result judgment unit outputs the decoded sequence according to the above-mentioned equation (6) acquired in step 2 as a decoded result.
- GR(g) shows a combination of columns which construct the gth group.
- GR(g) is shown concretely as follows.
- group 1 to which a symbol A is attached, group 3 to which a symbol C is attached, and group 5 to which a symbol E is attached are groups including only MSBs, and group 2 to which a symbol B is attached, group 4 to which a symbol D is attached, and group 6 to which a symbol F is attached are groups including only LSBs.
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 13 is the same as that shown in the flow chart of FIG. 3 in above-mentioned embodiment 1. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 23 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the column-to-be-operated-on control unit 17 delivers the numbers of all columns included in group 1 including only MSBs to which the symbol A is attached in FIG. 22 to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 1 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 1 , and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 then delivers the numbers of all columns included in group 3 including only MSBs to which the symbol C is attached in FIG. 22 to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 3 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 3 , and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the numbers of all columns included in group 5 including only MSBs to which the symbol E is attached to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 5 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 5 , and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the numbers of all columns included in group 2 including only LSBs to which the symbol B is attached in FIG. 22 to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 2 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 2 , and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 then delivers the numbers of all columns included in group 4 including only LSBs to which the symbol D is attached in FIG. 22 to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 4 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 4 , and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the numbers of all columns included in group 6 including only LSBs to which the symbol F corresponding to group G is attached to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in a column included in group 6 , and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on each column included in group 6 , and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the decoding apparatus when decoding the received signal, which is modulated with the modulation method of 4PAM type and transmitted thereto and received thereby, according to the Group Shuffled BP algorithm, divides the received signal into groups each including only MSBs and groups each including only LSBs and performs an arithmetic operation on the groups each including only MSBs having a low bit error rate first. Therefore, by performing the decoding processing on LSBs having a high bit error rate after receiving high-reliability probability information associated with MSBs, the decoding apparatus according to this embodiment can perform the decoding operation on LSBs more efficiently and can carry out the decoding processing with a smaller number of iterations, as compared with prior art decoding apparatus.
- An LDPC code decoding apparatus in accordance with this embodiment 14 controls the sequence of decoding operations on the basis of the construction of an input code when performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bit.
- the LDPC code decoding apparatus in accordance with this embodiment 14 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 12 shown in FIG. 20 , it differs from that of above-mentioned embodiment 12 in that a column-to-be-operated-on control unit 17 makes a row processing unit 5 and a column processing unit 6 perform decoding processing while controlling the sequence of decoding operations on the basis of the code construction.
- the decoding apparatus sequentially selects a column O( 1 ) having the largest column weight, a column O( 2 ) having the second largest column weight, a column O( 3 ) having the third largest column weight, and so on in order of decreasing column weight, and carries out the decoding processing according to the Shuffled BP algorithm.
- the Shuffled BP algorithm with ranking is carried out as follows.
- N(m) ⁇ n shows a set of column indices in which the nth column is removed from the set N(m)
- M(n) ⁇ m shows a set of row indices in which the mth row is removed from the set M(n).
- z m,n′ (i) is an LLR which is updated at the ith iteration
- ⁇ m,n (i) is an LLR at the ith iteration which is sent from a check node to a bit node.
- step 1 a column process of computing the above-mentioned equations (4) and (5) under the condition shown by the above-mentioned equation (25) is carried out.
- z m,n (i) is an LLR at the ith iteration, which is sent from the bit node to the check node.
- z n (i) is a posterior value at the ith iteration.
- a decoded result judgment unit carries out a hard decision of the posterior value z n (i) and creates a decoded sequence shown by the above-mentioned equation (6). Then, if the conditions shown by the above-mentioned equation (7) are satisfied, the decoded result judgment unit shifts to a process of step 3 which will be mentioned later, whereas when neither of these two conditions is satisfied, the decoded result judgment unit increments the number of iterations i and returns to the process of step 2 .
- the decoded result judgment unit outputs the decoded sequence according to the above-mentioned equation (6) acquired in step 2 as a decoded result. Note that each symbol follows the above-mentioned equations. Furthermore, O(g) shows the column which is ranked in the gth place.
- the LDPC code decoding apparatus in accordance with this embodiment 14 has the same fundamental structure of as that of above-mentioned embodiment 1 shown in FIG. 1 , with the exception that it has the column-to-be-operated-on control unit 17 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and carries out decoding of an LDPC code according to the Shuffled BP algorithm of controlling the sequence of decoding operations on the basis of the code construction by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , the row processing unit 5 , the column processing unit 6 , a control unit 7 , the decoded result judgment unit 8 , and the column-to-be-operated-on control unit 17 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equations (2) and (3) under the condition shown by the above-mentioned equation (26), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) under the condition shown by the above-mentioned equation (25).
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), as in the case of step 1 of the above-mentioned Shuffled BP algorithm, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- the column-to-be-operated-on control unit 17 carries out control of the sequence of decoding operations on columns of the LDPC coded matrix in order of decreasing column weight, as mentioned above, and makes the row processing unit 5 and column processing unit 6 carry out the decoding operation.
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 14 is the same as that shown in the flow chart of FIG. 23 in above-mentioned embodiment 12. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 23 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the column-to-be-operated-on control unit 17 delivers the number of a column having the largest column weight on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the first time to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in the column specified by the column-to-be-operated-on control unit 17 , on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the first time, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the column, on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the first time, and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the number of a column having the second largest column weight on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the second time to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in the column specified by the column-to-be-operated-on control unit 17 , on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the second time, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the column, on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the second time, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6
- the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the number of a column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the gth time to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in the column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the gth time, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the gth time, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the LDPC code decoding apparatus in accordance with this embodiment 14 controls the sequence of decoding operations on the basis of the construction of an input code when performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bit. Therefore, the LDPC code decoding apparatus makes it possible for the probability information computed previously to propagate quickly, and therefore can reduce the number of iterations. Furthermore, because the LDPC code decoding apparatus in accordance with this embodiment controls the sequence of decoding operations on the basis of the construction of an input code, it does not need to rank the code information whenever it receives the code information.
- An LDPC code decoding apparatus in accordance with this embodiment 15 controls the sequence of decoding operations on the basis of the modulation method of a received signal when performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bit.
- the LDPC code decoding apparatus in accordance with this embodiment 15 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 12 shown in FIG. 20 , it differs from that of above-mentioned embodiment 12 in that a column-to-be-operated-on control unit 17 makes a row processing unit 5 and a column processing unit 6 perform decoding processing while controlling the sequence of decoding operations on the basis of the modulation method of the received signal.
- the error rate differs for each bit of the received signal.
- the MSBs of the received signal have a low bit error rate
- the LSBs of the received signal have a high bit error rate when modulation signal points are assigned sequentially to the code from the leading bit of the code.
- the LDPC code decoding apparatus makes it possible for probability information having high reliability to propagate to the decoding of LSBs at any time by decoding the received signal sequentially from MSBs.
- the LDPC code decoding apparatus in accordance with this embodiment 15 has the same fundamental structure of as that of above-mentioned embodiment 1 shown in FIG. 1 , with the exception that it has the column-to-be-operated-on control unit 17 . That is, the LDPC code decoding apparatus is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , and carries out decoding of an LDPC code according to the Shuffled BP algorithm of controlling the sequence of decoding operations on the basis of the modulation method of the received signal by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , the row processing unit 5 , the column processing unit 6 , a control unit 7 , a decoded result judgment unit 8 , and the column-to-be-operated-on control unit 17 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equations (2) and (3) under the condition shown by the above-mentioned equation (26), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) under the condition shown by the above-mentioned equation (25).
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), as in the case of step 1 of the above-mentioned Shuffled BP algorithm, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- the column-to-be-operated-on control unit 17 carries out control of the sequence of decoding operations on columns of the LDPC coded matrix on the basis of the modulation method of the received signal, as mentioned above, so as to select all columns which correspond to bits having a low bit error, and then select columns which correspond to bits having a high bit error, and makes the row processing unit 5 and column processing unit 6 carry out the decoding operation.
- a flow of the fundamental operation of the LDPC code decoding apparatus in accordance with this embodiment 15 is the same as that shown in the flow chart of FIG. 23 in above-mentioned embodiment 12. Therefore, the operation of the LDPC code decoding apparatus will be explained with reference to FIG. 23 .
- the received LLR calculating unit 2 inputs received information (in step ST 1 ), and calculates a received LLR from this received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the column-to-be-operated-on control unit 17 delivers the number of a leading column which is specified thereby on the basis of the modulation method and which corresponds to MSB of the received signal, as a column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the first time, to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in the column specified by the column-to-be-operated-on control unit 17 , on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the first time, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the first time, and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the number of a column which is specified thereby on the basis of the modulation method and which corresponds to the next MSB of the received signal, as a column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the second time, to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in the column specified by the column-to-be-operated-on control unit 17 , on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the second time, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the second time, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6 , and the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the number of a leading column which is specified thereby on the basis of the modulation method and which corresponds to LSB of the received signal, as a column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the first time after the completion of the arithmetic operations on the columns corresponding to MSBs, to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in the column which corresponds to the LSB on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the first time, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the column and makes the intermediate-result holding unit 4 hold the processed result.
- the column-to-be-operated-on control unit 17 delivers the number of the next column which is specified thereby on the basis of the modulation method and which corresponds to LSB of the received signal, as a column on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the second time, to the row processing unit 5 and column processing unit 6 .
- the row processing unit 5 performs the row processing on each row which has 1 in the column which corresponds to the LSB on which the row processing unit 5 and column processing unit 6 perform arithmetic operations for the second time, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the column and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6
- the column processing unit 6 makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the LDPC code decoding apparatus in accordance with this embodiment 15 controls the sequence of decoding operations on the basis of the modulation method of the received signal when performing a calculation and an update of probability information with row processing and column processing on the received signal in batches of one 1 bit or two or more predetermined bit.
- the decoding apparatus according to this embodiment performs arithmetic operations on MSBs of the received signals first after ranking them above LSBs. Therefore, the LDPC code decoding apparatus makes it possible for high-reliability probability information to propagate to LSBs and for the decoding of LSBs to advance quickly, and therefore can reduce the number of iterations.
- the modulation method of 4PAM type is shown as an example.
- a multi-level modulation method which causes a difference in the bit error rate can be used.
- all the bits of the received signal can be ranked similarly in order of increasing error rate and decreasing reliability.
- FIG. 25 is a block diagram showing the structure of a communications apparatus in accordance with embodiment 16 of the present invention.
- the communications apparatus 18 in accordance with this embodiment 16 is provided with a receiving/decoding apparatus (i.e., a receiving/decoding unit) 19 and a coding/transmitting apparatus (i.e., a coding/transmitting unit) 20 .
- the receiving/decoding apparatus 19 is provided with a demodulating unit 21 for receiving and demodulating an LDPC coded signal transmitted by the coding/transmitting apparatus 20 in addition to the fundamental structure shown in FIG. 1 .
- the coding/transmitting apparatus 20 is provided with a coding unit 22 and a modulating unit 23 .
- the coding unit 22 inputs information which the coding/transmitting apparatus should transmit, and encodes an LDPC code.
- the modulating unit 23 inputs coded data from the coding unit 22 , modulates the coded data, and transmits it to the receiving/decoding apparatus 19 as a modulation signal.
- an encoded signal is transmitted and received between the receiving/decoding apparatus 19 and the coding/transmitting apparatus 20 with modulation signal points adapted to the code construction of the LDPC code being assigned to check bits, and a calculation and an update of probability information with row processing and column processing is performed on the received signal in batches of one 1 bit or two or more predetermined bit according to the control of the sequence of decoding operations on the basis of the construction of the input code according to a decoding algorithm like the Shuffled BP algorithm.
- FIG. 26 is a diagram showing the structure of an LDPC code which the communications apparatus in accordance with embodiment 16 uses.
- the LDPC code is a check matrix with 8 rows and 16 columns, and has an upper right triangular area with all its elements 0 and a symmetrical structure in which check bits on opposite sides of the main diagonal have the same value.
- FIG. 27 is a diagram showing an example of assignment of bits in a case of modulating an LDPC code with a modulation method of 4PAM type and transmitting or receiving it in the communications apparatus in accordance with embodiment 16.
- FIG. 26 is a diagram showing the structure of an LDPC code which the communications apparatus in accordance with embodiment 16 uses.
- the LDPC code is a check matrix with 8 rows and 16 columns, and has an upper right triangular area with all its elements 0 and a symmetrical structure in which check bits on opposite sides of the main diagonal have the same value.
- FIG. 27 is a diagram showing an example of assignment of bits in a case of modulating an LDPC
- the reason why the Shuffled BP algorithm makes it possible to bring the decoding to completion with a smaller number of iterations than the Sum-Product algorithm is because the transmission of probability information which is calculated and delivered during the decoding processing is carried out more efficiently than in the case of using the Sum-Product algorithm.
- an LDPC code as shown in FIG. 26 , having an upper right triangular area with all its elements 0 and check bits having a symmetrical structure is modulated with a modulation method of 4PAM type and is transmitted and received
- LSBs having a high error rate are assigned to the check bits, and transmitted and received, as shown in FIG. 27 .
- the decoding side decodes the received code according to the Shuffled BP algorithm, and decodes the LSBs which are the check bits at the beginning of the decoding processing.
- the decoding of the LSBs is sequentially carried out from the heads of the LSBs which are the check bits.
- the row processing in the decoding of the LDPC code is carried out using information on columns other than the target columns in the same way that the row processing shown in above-mentioned embodiment 15 is carried out. For this reason, when performing an arithmetic operation on the n 1 th column which is the head of the LSBs, the decoding apparatus can perform the arithmetic operation using only high-reliability information which MSBs have.
- the decoding apparatus can perform an arithmetic operation on the (n 1 +1)th column using only information which MSBs have and information on the n 1 th row on which an arithmetic operation has been performed, the decoding apparatus performs the arithmetic operation on the (n 1 +1)th always using only the high-reliability information.
- the decoding apparatus ranks the columns of the check matrix in such a manner that it assigns O( 1 ) to the n 1 th column (LSB), O( 2 ) to the (n 1 +1)th column (LSB), and O(N ⁇ n 1 ) to the Nth column (LSB), sequentially selects the columns, and sequentially performs the decoding processing on the selected columns according to the Shuffled BP algorithm.
- the decoding apparatus performs an arithmetic operation on the 1st to (n 1 ⁇ 1)th columns corresponding to bits except LSBs.
- the communications apparatus 18 in accordance with embodiment 16 is provided with the coding/transmitting apparatus 20 and receiving/decoding apparatus 21 .
- the coding/transmitting apparatus 20 is provided with a coding unit 22 for coding an LDPC code, and a modulating unit 23 for assigning modulation signal points which are adapted to the code construction to the check bits.
- the receiving/decoding apparatus 19 of the communications apparatus 18 in accordance with embodiment 16 is provided with a demodulating unit 21 for demodulating a modulated signal, a received LLR calculating unit 2 for calculating a received LLR from received information, and a decoding core unit 3 .
- the decoding core unit 3 decodes the LDPC code according to the Shuffled BP algorithm of carrying out the control of the sequence of decoding operations on the basis of the code construction.
- the decoding core unit 3 is provided with an intermediate-result holding unit 4 , a row processing unit 5 , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the row processing unit 5 and column processing unit 6 , as previously explained in above-mentioned embodiment 1.
- the row processing unit 5 carries out row processing using the above-mentioned equations (2) and (3) under the condition shown by the above-mentioned equation (26), and the column processing unit 6 carries out column processing using the above-mentioned equations (4) and (5) under the condition shown by the above-mentioned equation (25).
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), as in the case of step 1 of the above-mentioned Shuffled BP algorithm, and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- FIG. 28 is a flow chart showing the operation of the communications apparatus in accordance with embodiment 16, and the operation of the communications apparatus will be explained with reference to this figure.
- the coding unit 22 of the coding/transmitting apparatus 20 carries out LDPC coding using both a generator matrix which is calculated on the basis of the check matrix H of the LDPC code and the inputted information so as to create coded data (in step ST 2 A).
- the modulating unit 23 carries out a 4PAM modulation of the inputted coded data according to the bit assignment performed on the LDPC code as shown in FIG. 27 , and transmits the modulated data to the receiving/decoding apparatus 19 (in step ST 3 A).
- the demodulating unit 21 of the receiving/decoding apparatus 19 demodulates the received signal from the coding/transmitting apparatus 20 (in step ST 1 - 1 ), and outputs received information which is the demodulated result to the received LLR calculating unit 2 .
- the received LLR calculating unit 2 calculates a received LLR from the received information (in step ST 2 ).
- the last decoding time i.e., a maximum number of iterations I max
- a decoding operation at the ith iteration will be explained as an example.
- the column processing unit 6 performs the column processing on the n 1 th column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 performs the row processing on the 2nd and 3rd rows, and delivers the processed results to the column processing unit 6 .
- the column processing unit 6 then performs the column processing on the (n 1 +1)th column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 delivers the processed result to the column processing unit 6 . Furthermore, every time when the column processing unit 6 performs the column processing on the (n 1 +2)th or subsequent column of the check matrix one after another, the column processing unit 6 makes the intermediate-result holding unit 14 hold the processed result.
- the row processing unit 5 performs the row processing on the (M ⁇ 1)th and Mth rows of the check matrix, and delivers the processed results to the column processing unit 6 .
- the column processing unit 6 then performs the column processing on the (N ⁇ 1)th column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the row processing unit 5 performs the row processing on the Mth row of the check matrix, and delivers the processed result to the column processing unit 6 .
- the column processing unit 6 then performs the column processing on the Nth column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the column processing unit 6 performs an arithmetic operation on each of columns corresponding to bits except LSBs. For example, when the 1st column to which a bit except LSB is assigned is the target on which an arithmetic operation is to be performed, the row processing unit 5 performs the row processing on each row which has 1 in the 1st column of the check matrix, and delivers the processed result to the column processing unit 6 .
- the column processing unit similarly performs the column processing on the 1st column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing unit 5 and column processing unit 6 to repeat the processes of steps 1 and 2 until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing unit 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the communications apparatus when multi-level-modulating data with an LDPC code having a check matrix having an upper right triangular area with all its elements 0 and check bits having a symmetrical structure, and transmitting and receiving the coded data, the communications apparatus according to this embodiment 16 transmits and receives the coded data by assigning modulation signal points which are adapted to the code construction to the check bits and performs arithmetic operations on the LSBs of the received signal first after ranking them above MSBs when decoding the received signal according to the Shuffled BP algorithm. Therefore, the communications apparatus makes it possible for high-reliability probability information to propagate to LSBs and for the decoding of LSBs to advance quickly, and therefore can reduce the number of iterations.
- the modulation method of 4PAM type is shown as an example.
- another multi-level modulation method which causes a difference in the bit error rate can be used.
- LSBs having a high error rate can be sequentially decoded first prior to any other bits.
- a decoding apparatus is so constructed as to parallelize decoding operations when carrying out decoding processing according to an algorithm, like the Shuffled BP algorithm, of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one 1 bit or two or more predetermined bits.
- an algorithm like the Shuffled BP algorithm
- FIG. 29 is a block diagram showing the structure of the LDPC code decoding apparatus in accordance with embodiment 17 of the present invention.
- the LDPC code decoding apparatus 1 in accordance with embodiment 17 is provided with a received LLR calculating unit 2 and a decoding core unit 3 , like those according to the above-mentioned embodiments.
- the decoding core unit 3 in accordance with this embodiment 17 includes a plurality of row processing units 5 - 1 to 5 - w which carry put row processing in parallel according to the magnitude of a row weight, and a column processing unit 6 which carries out column processing according to processed results from those row processing units, in addition to a decoded intermediate-result holding unit 4 , a control unit 7 , and a decoded result judgment unit 8 .
- the row processing is performed on each row which has 1 in a selected column, and the column processing is then performed on the column.
- the LDPC code decoding apparatus 1 in accordance with embodiment 17 performs in parallel arithmetic operations during the row processing and the column processing when carrying out the decoding processing according to the Shuffled BP algorithm.
- the received LLR calculating unit 2 inputs received information, and calculates a received LLR from this received information.
- an iterative decoding process of step 1 including the row processing according to the above-mentioned equations (2) and (3) by means of the plurality of row processing units 5 - 1 to 5 - w , and the column processing according to the above-mentioned equations (4) and (5) by means of the column processing unit 6 , and a decision process of step 2 according to the above-mentioned equation (7) by means of the decoded result judgment unit 8 are repeatedly carried out.
- a decoding operation at the ith iteration will be explained as an example.
- FIG. 30 is a block diagram for explaining decoding operations performed by the plurality of row processing units and column processing unit shown in FIG. 29 . A flow of the decoding operations will be explained with reference to this figure.
- the column processing unit 6 performs the column processing on the 1st column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the plurality of row processing units 5 - 1 to 5 - w perform in parallel the row operations on w rows each of which has 1 in the 2nd column of the check matrix, and deliver the processed results to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the 2nd column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the plurality of row processing units 5 - 1 to 5 - w perform in parallel the row operations on w rows each of which has 1 in the 3rd column of the check matrix, and deliver the processed results to the column processing unit 6 .
- the plurality of row processing units 5 - 1 to 5 - w perform in parallel the row operations on w rows each of which has 1 in the 4th or subsequent column of the check matrix one after another, and deliver the processed results to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the 3rd or subsequent column of the check matrix one after another, and makes the intermediate-result holding unit 4 hold the processed result.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing units 5 and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing units 5 and column processing unit 6 to repeat the processes of steps 1 and 2 which are based on the above-mentioned equation (8) until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing units 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- FIG. 31 is a block diagram for explaining another example of the decoding operations performed by the row processing units and column processing unit shown in FIG. 29 .
- the general Shuffled BP algorithm because adjacent columns of the LDPC code matrix do not almost have is, there is no large influence on the probability transmission.
- 1s are adjacent to each other in the check bit portion, as in the case of the LDPC code matrix of FIG. 21 shown in above-mentioned embodiment 12, only the row processing parallelized has only to be carried out, as shown in FIG. 31 .
- a decoding operation at the ith iteration will be explained concretely as an example.
- the column processing unit 6 performs the column processing on the 1st column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the plurality of row processing units 5 - 1 to 5 - w perform in parallel the row operations on w rows each of which has 1 in the 2nd column of the check matrix, and deliver the processed results to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the 2nd column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the plurality of row processing units 5 - 1 to 5 - w perform in parallel the row operations on w rows each of which has 1 in the 3rd column of the check matrix, and deliver the processed results to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the 3rd column of the check matrix, and makes the intermediate-result holding unit 4 hold the processed result.
- the plurality of row processing units 5 - 1 to 5 - w perform in parallel the row operations on w rows each of which has 1 in the 4th or subsequent column of the check matrix one after another, and deliver the processed results to the column processing unit 6 .
- the column processing unit 6 performs the column processing on the 4th or subsequent column of the check matrix one after another, and makes the intermediate-result holding unit 4 hold the processed result.
- the decoding apparatus according to this embodiment 17 is provided with the plurality of row processing units 5 - 1 to 5 - w , and column processing unit 6 which carry out in parallel the decoding operations according to the Shuffled BP algorithm, the processing time required for the decoding operations can be reduced and therefore the delay which is caused by the decoding processing can be reduced.
- a decoding apparatus in accordance with this embodiment 18 performs decoding operations in parallel on the basis of the code construction of LDPC codes having cyclic construction when decoding LDPC codes having cyclic construction according to a decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one bit or a predetermined number of bits, like the Shuffled BP algorithm.
- the LDPC code decoding apparatus in accordance with this embodiment 18 has fundamentally the same structure as that of the LDPC code decoding apparatus in accordance with above-mentioned embodiment 17 shown in FIG. 29 , a plurality of row processing units carry out different processes because the LDPC code decoding apparatus in accordance with this embodiment performs the decoding operations in parallel on the basis of the code construction of LDPC codes having cyclic construction.
- a structure of carrying out the decoding operations in parallel using the feature of the code construction of quasi-cyclic codes according to the Shuffled BP algorithm will be explained concretely as an example.
- a quasi-cyclic code consists of a combination of a fundamental matrix I( 0 ) which is a unit matrix, and matrices I( 1 ), I( 2 ), I( 3 ), . . . , and I(k) which are cyclic permutations of the fundamental matrix.
- N(m) means a set of the indices of columns in each of which 1 appears in the mth row of the check matrix H
- M(n) means a set of the indices of rows in each of which 1 appears in the nth row of the check matrix H.
- the unit matrix has a size of (p ⁇ p).
- the quasi-cyclic code has the following features.
- the decoding apparatus can carry out the column processing in parallel when n is equal to or larger than 1 and equal to or smaller than p from the viewpoint of feature 1, but does not retrieve the same column to carry out the row processing in parallel when m is equal to or larger than 1 and equal to or smaller than p from the viewpoint of feature 2. Therefore, in a case in which the decoding apparatus is implemented via hardware, there is provided an advantage of not accessing the same memory.
- the LDPC code decoding apparatus in accordance with this embodiment 18 is provided with a received LLR calculating unit 2 which calculates a received LLR from received information and a decoding core unit 3 , as mentioned above, and carries out the decoding operations in parallel using the features of the code construction of quasi-cyclic codes by means of the decoding core unit 3 .
- the decoding core unit 3 is provided with a intermediate-result holding unit 4 , a plurality of row processing units 5 - 1 to 5 - p , a column processing unit 6 , a control unit 7 , and a decoded result judgment unit 8 .
- the intermediate-result holding unit 4 holds intermediate results of the decoding processing carried out by the plurality of row processing units 5 - 1 to 5 - p and column processing unit 6 , as previously explained in above-mentioned embodiment 17.
- the plurality of row processing units 5 - 1 to 5 - p are disposed for p rows which correspond to all the rows of the unit matrix of a quasi-cyclic code as shown in FIG. 32 . That is, the plurality of row processing units are disposed in parallel so as to match the size of the fundamental matrix having cyclic construction.
- the column processing unit 6 carries out the column processing.
- the control unit 7 performs control of decoding iterations, such as a setup of a maximum number of iterations.
- the decoded result judgment unit 8 calculates a decoded sequence which is a decoded result from a hard decision of a posterior value calculated by the column processing unit 6 using the above-mentioned equation (6), and performs a parity check on the decoded result so as to judge whether or not the decoded result is correct from the condition shown by the above-mentioned equation (7).
- the received LLR calculating unit 2 when the received LLR calculating unit 2 inputs received information, it calculates a received LLR from this received information.
- step 1 including the row processing by means of the plurality of row processing units 5 - 1 to 5 - p , and the column process by means of the column processing unit 6 , and a decision process of step 2 according to the above-mentioned equation (7) by means of the decoded result judgment unit 8 are repeatedly carried out.
- a decoding operation at the ith iteration will be explained as an example.
- FIG. 33 is a block diagram for explaining the decoding operations carried out by the row processing units and the column processing unit in accordance with embodiment 18. A flow of the decoding operations will be explained with reference to this figure.
- the column processing unit 6 performs in parallel the column processing on the 1st to pth columns by using, for example, the above-mentioned equations (4) and (5), and makes the intermediate-result holding unit 4 hold the processed results.
- the plurality of row processing units 5 - 1 to 5 - p perform in parallel the row processing on the 1st to pth rows in each of the pth to 2pth columns of the check matrix, perform in parallel the row processing on the pth to 2pth rows in each of the pth to 2pth columns in the check matrix, perform in parallel the row processing on the 2pth to 3pth rows in each of the pth to 2pth columns of the check matrix, and then delivers the processed results to the column processing unit 6 .
- the decoding apparatus changes n in the above-mentioned equation (27) from p to 2p and performs arithmetic operations using the above-mentioned equations (2) and (3) under the condition shown by the above-mentioned equation (27).
- the column processing unit 6 performs in parallel the column processing on the pth to 2pth columns by using, for example, the above-mentioned equations (4) and (5), and makes the intermediate-result holding unit 4 hold the processed results.
- the plurality of row processing units 5 - 1 to 5 - p perform in parallel the row processing on the 1st to pth rows in each of the 2pth to 3pth columns of the check matrix, perform in parallel the row processing on the pth to 2pth rows in each of the 2pth to 3pth columns in the check matrix, perform in parallel the row processing on the 2pth to 3pth rows in each of the 2pth to 3pth columns of the check matrix, and then delivers the processed results to the column processing unit 6 .
- the decoding apparatus changes n in the above-mentioned equation (27) from 2p to 3 p and performs arithmetic operations using the above-mentioned equations (2) and (3) under the condition shown by the above-mentioned equation (27).
- the column processing unit 6 performs in parallel the column processing on the 2pth to 3pth columns by using, for example, the above-mentioned equations (4) and (5), and makes the intermediate-result holding unit 4 hold the processed results.
- the plurality of row processing units 5 - 1 to 5 - p perform in parallel the row processing on the 1st to pth rows in each of the 3pth to 4pth columns of the check matrix, perform in parallel the row processing on the pth to 2pth rows in each of the 3pth to 4pth columns in the check matrix, perform in parallel the row processing on the 2pth to 3pth rows in each of the 3pth to 4pth columns of the check matrix, and then delivers the processed results to the column processing unit 6 .
- the decoding apparatus changes n in the above-mentioned equation (27) from 3p to 4 p and performs arithmetic operations using the above-mentioned equations (2) and (3) under the condition shown by the above-mentioned equation (27).
- the column processing unit 6 performs in parallel the column processing on the 3pth to 4pth columns by using, for example, the above-mentioned equations (4) and (5), and makes the intermediate-result holding unit 4 hold the processed results.
- the row processing is separately carried out for the 1st to pth rows, the pth to 2pth rows, and the 2pth to 3pth rows using feature 2 of quasi-cyclic codes, as previously mentioned.
- the row processing can be carried out in parallel for all of the 1st to 3pth rows.
- step 2 the decoded result judgment unit 8 carries out a hard decision of a posterior value z n (i) which is calculated by the column processing unit 6 at the ith iteration, determines a decoded result, and performs a parity check on the decoded result.
- the control unit 7 increments the number of iterations i by one, and then makes the row processing unit 5 and column processing unit 6 carry out the process of step 1 .
- the control unit make them shift to a process of step 3 which will be mentioned later.
- control unit 7 controls the row processing units 5 and column processing unit 6 to repeat the processes of steps 1 and 2 which are based on the above-mentioned equation (8) until the result of the parity check indicates O.K. or the number of iterations reaches its maximum I max which is set up, as shown in the above-mentioned equation (7).
- the control unit 7 in step 3 (in step ST 5 ), makes the row processing units 5 and column processing unit 6 end their decoding processings, and the decoded result judgment unit 8 outputs a decoded sequence as shown by the above-mentioned equation (6) as a decoded result.
- the decoding apparatus when decoding an LDPC code having cyclic construction, like a quasi-cyclic code, according to the Shuffled BP algorithm, the decoding apparatus according to this embodiment 18 uses the features of the cyclic construction. Therefore, the decoding apparatus can parallelize the row processing and the column processing, and therefore the processing time required for the decoding operations can be reduced and the delay which is caused by the decoding processing can be reduced.
- the Shuffled BP algorithm is explained as an example.
- this embodiment can be applied to another decoding algorithm of performing a calculation and an update of probability information with row processing and column processing on a received signal in batches of one bit or a predetermined number of bits.
- quasi-cyclic codes are mentioned as an example of LDPC codes having cyclic construction, though this embodiment can be similarly applied to LDPC codes having other cyclic construction.
- a decoding apparatus has, as a decoding algorithm, a correction-type Max-Log-MAP algorithm of making a correction to a Max-Log-MAP algorithm using a correction term which can be computed only with a subtraction operation and a bit-shift operation on received information.
- FIG. 34 is a block diagram showing the structure of the turbo code decoding apparatus in accordance with embodiment 19 of the present invention.
- the turbo code decoding apparatus 24 in accordance with this embodiment 19 is provided with a received value holding unit 25 and a turbo decoding processing unit 26 .
- a received value holding unit 25 In a case of turbo codes, an information bit sequence di and a parity bit sequence p 1 i of the information bit sequence, and a parity bit sequence p 2 i of the information bit sequence interleaved are transmitted as encoded information.
- the received value holding unit 25 separately hold the received values R i , P 1 i and P 2 i of the information bit sequences therein, and outputs them to the turbo decoding processing unit 26 .
- the turbo decoding processing unit 26 is provided with an intermediate-result holding unit 27 , a metric calculating unit 28 , an interleave processing unit 29 , and an iteration control unit 30 .
- the intermediate result holding unit 27 holds intermediate results of decoding processing carried out by the metric calculating unit 28 on the basis of the received values inputted from the received value holding unit 25 .
- the metric calculating unit 28 carries out a calculation of a metric value according to the correction-type Max-Log-MAP algorithm of making a correction using the above-mentioned correction term, and outputs a decoded result.
- the interleave processing unit 29 carries out interleave processing according to the turbo coding.
- the iteration control unit 30 controls the iteration of the decoding processing carried out by the metric calculating unit 28 and interleave processing unit 29 .
- the metric calculating unit carries out a calculation and an update of the metric value by correcting for a maximum value as follows:
- the correction term ⁇ for use in the Max-Log-MAP algorithm is an approximation term which can be acquired from a series expansion of an update equation based on the Log-MAP algorithm, and can be computed only with the difference between the absolute values of two inputs, a division by 2, and a subtraction from a constant C.
- the constant C is ln(2) which is acquired with a rough calculation using the update equation based on the Log-MAP algorithm, and it is also possible to improve the decoding performance by setting an appropriate value to the constant C.
- the division by 2 can be implemented with a 1-bit bit shift operation in a system, such as hardware, in which numbers are expressed as binary numbers.
- the interleave processing unit 29 provides information required for carrying out a process of interleaving a turbo code to be decoded to the metric calculating unit 28 , and the iteration control unit 30 controls the number of iterations and switches between a mode in which the interleave processing unit carries out the interleaving process and a mode in which the interleave processing unit does not carry out the interleaving process.
- FIG. 35 is a flow chart showing the operation of the turbo code decoding apparatus in accordance with embodiment 19, and the operation of the turbo code decoding apparatus will be explained with reference to this figure.
- the received value holding unit 25 separately holds, as received information, the received values R i , P 1 i and P 2 i therein (in step ST 1 ).
- step 1 by means of the metric calculating unit and interleave processing unit is carried out repeatedly.
- a decoding operation at the ith iteration will be explained as an example.
- the metric calculating unit 5 performs a metric calculation on the received values without interleaving when performing the decoding operation at the ith iteration on the turbo code to be decoded.
- the metric calculating unit performs a metric calculation on the received values R i and P 1 i according to the Max-Log-MAP algorithm of making a correction using the above-mentioned equation (29), and makes the intermediate-result holding unit 27 hold the processed results.
- the metric calculating unit increments i sequentially to search through the contents of the received value holding unit from the head.
- the metric calculating unit 5 performs a metric calculation on the received values with interleaving when performing the decoding operation at the ith iteration on the turbo code to be decoded.
- the metric calculating unit performs a metric calculation on the received value P 2 i and the interleaved received value R i according to the Max-Log-MAP algorithm of making a correction using the above-mentioned equation (29), and makes the intermediate-result holding unit 27 hold the processed results.
- the metric calculating unit receives information on a number i from the interleave processing unit to retrieve the received value from the receiving value holding unit 25 .
- the iteration control unit 30 controls the metric calculating unit and interleave processing unit to repeat steps 1 and 2 until the number of iterations reaches its maximum I max which is set up thereby.
- the iteration control unit 30 terminates the decoding processing carried out by the metric calculating unit 28 and interleave processing unit 29 , and then makes the metric calculating unit output the decoded result.
- the decoding apparatus carries out the decoding processing according to the correction-type Max-Log-MAP algorithm of making a correction to a Max-Log-MAP algorithm using a correction term which can be computed only with a subtraction operation and a bit-shift operation on received information. Therefore, the degradation in the decoding performance can be reduced and the decoding performance can be remarkably improved, as compared with the case of using the prior art Log-MAP algorithm.
- the calculation of the correction term on the basis of the received information can be implemented only with a subtraction operation and a 1-bit-shift operation, and the turbo code decoding apparatus 1 in accordance with embodiment 19 can be implemented via simple hardware.
- the LDPC decoding processing in accordance with the present invention can be applied to communication equipment, such as a mobile communications apparatus (a terminal and a base station), a wireless LAN, an optical communications system, a satellite communications system, and a quantum encryption apparatus.
- the system is so constructed as to include an LDPC coding unit 31 , a modulator 32 , a communication path 33 , a demodulating unit 34 , and an LDPC decoding unit 35 .
- This system includes, as the LDPC decoding unit 35 thereof, includes a decoding unit shown in either of above-mentioned embodiments 1 to 19, and carries out an error correction.
- FIG. 37 is a diagram showing the structure of an example in which the decoding processing in accordance with the present invention is applied to a mobile communications system provided with a mobile terminal 36 and a base station 37 which communicates with this mobile terminal 36 .
- the mobile terminal 36 is provided with an LDPC coding unit 31 , a modulating unit 32 , a demodulating unit 34 , an LDPC decoding unit 35 , and an antenna 42 .
- the base station 37 is provided with an LDPC decoding unit 43 , a demodulating unit 44 , a modulating unit 45 , an LDPC coding unit 46 , and an antenna 47 .
- an LPDC decoding apparatus having a structure according to either of above-mentioned embodiments 1 to 19 is used.
- the LDPC coding unit 37 encodes the data and the mobile terminal sends out the coded data onto a radio channel via the modulating unit 38 and antenna 41 thereof.
- the base station 37 receives the signal containing an error which has occurred in the radio channel via the antenna 47 and demodulating unit 44 thereof, and then corrects for the received data demodulated using the LDPC decoding unit 43 .
- the base station 37 transmits various coded data to the mobile terminal 36 by carrying out the same processing as mentioned above, and the mobile terminal 36 receives and decodes the various data.
- the base station 37 When transmitting coded data to the mobile terminal 36 , the base station 37 encodes data using the LDPC coding unit 46 , and sends out the coded data onto a radio channel via the modulating unit 45 and antenna 47 thereof.
- the mobile terminal 36 receives the signal containing an error which has occurred in the radio channel via the antenna 42 and demodulating unit 34 thereof, and then corrects for the received data demodulated using the LDPC decoding unit 35 .
- the mobile communications system according to this embodiment 20 carries out the decoding processing shown in either of above-mentioned embodiments 1 to 19 . Therefore, the present embodiment offers the same advantages as shown in either of above-mentioned embodiments 1 to 19 in the decoding processing carried out by each of the mobile terminal 36 and base station 37 .
- the decoding method in accordance with the present invention is useful as a decoding technology for use in digital communications, and is suitable particularly for a communications apparatus which adopts an LDPC coding method as a coding method.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004350168 | 2004-12-02 | ||
JP2004-350168 | 2004-12-02 | ||
PCT/JP2005/022104 WO2006059688A1 (fr) | 2004-12-02 | 2005-12-01 | Dispositif de décodage et dispositif de communication |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080246639A1 US20080246639A1 (en) | 2008-10-09 |
US8201047B2 true US8201047B2 (en) | 2012-06-12 |
Family
ID=36565121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/791,996 Active 2029-10-10 US8201047B2 (en) | 2004-12-02 | 2005-12-01 | Decoding apparatus and communications apparatus |
Country Status (6)
Country | Link |
---|---|
US (1) | US8201047B2 (fr) |
EP (1) | EP1819056B1 (fr) |
JP (1) | JP4777261B2 (fr) |
KR (1) | KR100924189B1 (fr) |
CN (1) | CN101069356A (fr) |
WO (1) | WO2006059688A1 (fr) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100251059A1 (en) * | 2007-07-04 | 2010-09-30 | Nxp B.V. | Shuffled ldpc decoding |
US20110214037A1 (en) * | 2009-09-25 | 2011-09-01 | Shutai Okamura | Coding device, decoding device, coding method, decoding method, and communication system |
US20110289382A1 (en) * | 2010-05-18 | 2011-11-24 | National Taiwan University | Programmable LDPC code decoder and decoding method thereof |
US20140053042A1 (en) * | 2009-03-17 | 2014-02-20 | Broadcom Corporation | Communication device employing binary product coding with selective additional Cyclic Redundancy Check (CRC) therein |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4492352B2 (ja) * | 2005-01-05 | 2010-06-30 | 日本電気株式会社 | 復号装置及びその方法並びにプログラム |
US7562279B2 (en) * | 2005-05-20 | 2009-07-14 | Mitsubishi Electric Research Laboratories, Inc. | 2D-normalized min-sum decoding for ECC codes |
JP4526451B2 (ja) * | 2005-06-30 | 2010-08-18 | ルネサスエレクトロニクス株式会社 | 復号装置と方法並びにプログラム |
CN101248583B (zh) | 2005-07-13 | 2012-04-18 | 三菱电机株式会社 | 通信装置以及解码方法 |
KR100804793B1 (ko) * | 2005-10-07 | 2008-02-20 | 삼성전자주식회사 | 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법 |
US7647548B2 (en) * | 2006-07-31 | 2010-01-12 | Agere Systems Inc. | Methods and apparatus for low-density parity check decoding using hardware-sharing and serial sum-product architecture |
US7644339B2 (en) | 2006-10-02 | 2010-01-05 | Broadcom Corporation | Overlapping sub-matrix based LDPC (low density parity check) decoder |
US8418023B2 (en) * | 2007-05-01 | 2013-04-09 | The Texas A&M University System | Low density parity check decoder for irregular LDPC codes |
JP4823176B2 (ja) | 2007-08-31 | 2011-11-24 | パナソニック株式会社 | 復号方法及び復号装置 |
JP4487212B2 (ja) | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、送受信システム、受信装置および方法、並びにプログラム |
JP4487213B2 (ja) | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、並びにプログラム |
KR101077552B1 (ko) | 2007-12-14 | 2011-10-28 | 한국전자통신연구원 | 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법 |
KR20090065411A (ko) * | 2007-12-17 | 2009-06-22 | 한국전자통신연구원 | 그룹 단위 복호화를 위한 전처리 장치 및 그 방법 |
WO2009078653A2 (fr) * | 2007-12-17 | 2009-06-25 | Electronics And Telecommunications Research Institute | Appareil et procédé de prétraitement de décodage par groupement |
US8627165B2 (en) * | 2008-03-24 | 2014-01-07 | Micron Technology, Inc. | Bitwise operations and apparatus in a multi-level system |
US8572332B2 (en) * | 2008-03-28 | 2013-10-29 | Qualcomm Incorporated | De-interleaving mechanism involving a multi-banked LLR buffer |
KR101526317B1 (ko) | 2008-05-09 | 2015-06-11 | 삼성전자주식회사 | 계층적 디코딩 장치 |
US20100169735A1 (en) * | 2008-12-31 | 2010-07-01 | Texas Instruments Incorporated | Low density parity check code row update instruction |
JP4545217B1 (ja) | 2009-04-03 | 2010-09-15 | 三菱電機株式会社 | 復号装置および復号方法 |
JP5489552B2 (ja) * | 2009-06-19 | 2014-05-14 | 三菱電機株式会社 | 復号方法及び復号装置 |
JP5434454B2 (ja) * | 2009-10-08 | 2014-03-05 | 富士通株式会社 | 復号化装置 |
US11336303B2 (en) | 2010-06-04 | 2022-05-17 | Micron Technology, Inc. | Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory |
US8615703B2 (en) | 2010-06-04 | 2013-12-24 | Micron Technology, Inc. | Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory |
US9131238B2 (en) * | 2010-06-18 | 2015-09-08 | The Trustees Of Princeton University | System and method for lossy source-channel coding at the application layer |
CN101917248A (zh) * | 2010-07-20 | 2010-12-15 | 北京全路通信信号研究设计院 | 一种列控报文处理方法、装置和*** |
JP5365601B2 (ja) * | 2010-09-30 | 2013-12-11 | 株式会社Jvcケンウッド | 復号装置および復号方法 |
JP5310701B2 (ja) * | 2010-10-29 | 2013-10-09 | 株式会社Jvcケンウッド | 復号装置および復号方法 |
JP5790029B2 (ja) * | 2011-03-01 | 2015-10-07 | ソニー株式会社 | 復号装置、復号方法、およびプログラム |
JP5631846B2 (ja) * | 2011-11-01 | 2014-11-26 | 株式会社東芝 | 半導体メモリ装置および復号方法 |
JP5772622B2 (ja) * | 2012-01-20 | 2015-09-02 | 株式会社Jvcケンウッド | 復号装置および復号方法 |
US9621187B2 (en) * | 2012-03-28 | 2017-04-11 | Intel Corporation | Processing elementary check nodes of an iterative decoder |
US8885766B2 (en) * | 2012-09-11 | 2014-11-11 | Inphi Corporation | Optical communication interface utilizing N-dimensional double square quadrature amplitude modulation |
CN105814799B (zh) * | 2013-12-09 | 2019-03-01 | 三菱电机株式会社 | 纠错解码装置 |
TWI583141B (zh) * | 2016-05-12 | 2017-05-11 | 國立清華大學 | 低密度奇偶檢查碼的解碼方法與解碼器 |
CN106059596B (zh) * | 2016-06-24 | 2019-05-14 | 中山大学 | 以二元bch码为成份码的分组马尔可夫叠加编码方法及其译码方法 |
CN106330203B (zh) * | 2016-08-26 | 2019-12-31 | 晶晨半导体(上海)股份有限公司 | 一种ldpc的解码方法 |
US10419027B2 (en) * | 2016-10-13 | 2019-09-17 | Qualcomm Incorporated | Adjusted min-sum decoder |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003204272A (ja) | 2002-01-08 | 2003-07-18 | Sony Corp | 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法 |
US6633856B2 (en) | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
WO2004010588A1 (fr) | 2002-07-19 | 2004-01-29 | Samsung Electronics Co., Ltd. | Appareil et procede pour reduire le taux d'erreurs sur les bits et les taux d'erreurs sur les trames par decodage turbo dans un systeme de communication numerique |
US20040109507A1 (en) * | 2002-12-06 | 2004-06-10 | Ido Kanter | Sequential decoding of parity check codes |
JP2004274186A (ja) | 2003-03-05 | 2004-09-30 | Sony Corp | 誤り訂正符号の復号評価方法及び装置 |
US6829308B2 (en) | 2002-07-03 | 2004-12-07 | Hughes Electronics Corporation | Satellite communication system utilizing low density parity check codes |
US20080109698A1 (en) * | 2006-07-25 | 2008-05-08 | Legend Silicon | Hybrid min-sum decoding apparatus with low bit resolution for ldpc code |
-
2005
- 2005-12-01 CN CNA2005800412570A patent/CN101069356A/zh active Pending
- 2005-12-01 EP EP05811268.1A patent/EP1819056B1/fr active Active
- 2005-12-01 JP JP2006548007A patent/JP4777261B2/ja active Active
- 2005-12-01 WO PCT/JP2005/022104 patent/WO2006059688A1/fr active Application Filing
- 2005-12-01 KR KR1020077012100A patent/KR100924189B1/ko active IP Right Grant
- 2005-12-01 US US11/791,996 patent/US8201047B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633856B2 (en) | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
JP2003204272A (ja) | 2002-01-08 | 2003-07-18 | Sony Corp | 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法 |
US6829308B2 (en) | 2002-07-03 | 2004-12-07 | Hughes Electronics Corporation | Satellite communication system utilizing low density parity check codes |
WO2004010588A1 (fr) | 2002-07-19 | 2004-01-29 | Samsung Electronics Co., Ltd. | Appareil et procede pour reduire le taux d'erreurs sur les bits et les taux d'erreurs sur les trames par decodage turbo dans un systeme de communication numerique |
JP2005532766A (ja) | 2002-07-19 | 2005-10-27 | サムスン エレクトロニクス カンパニー リミテッド | ディジタル通信システムにおけるターボ復号を利用したビットエラー率及びフレームエラー率を減少させる装置及び方法 |
US20040109507A1 (en) * | 2002-12-06 | 2004-06-10 | Ido Kanter | Sequential decoding of parity check codes |
JP2004274186A (ja) | 2003-03-05 | 2004-09-30 | Sony Corp | 誤り訂正符号の復号評価方法及び装置 |
US20080109698A1 (en) * | 2006-07-25 | 2008-05-08 | Legend Silicon | Hybrid min-sum decoding apparatus with low bit resolution for ldpc code |
Non-Patent Citations (15)
Title |
---|
Achilleas Anastasopoulos, A comparison between the sum-product and the min-sum iterative detection algorithm based desity evolution, Global Telecommunications Conference, 2001. GLOBECOM'01, IEEE, vol. 2, Nov. 25, 2001, pp. 1021 to 1025. |
Farhad Zarkeshvari Amir H. Banihashemi, On Implementation of Min-Sum algorithm for Decoding Low-Density Parity-Check (LDPC) Codes, Global Telecommunications Conference, 2002. GLOBECOM'02, IEEE, Nov. 17, 2002, pp. 1349 to 1353. |
Guilloud, "Architecture générique de décodeur de codes LDPC," , These présentée pour obtenir le grade de docteur de I'Ecole nationale supérieure des télécommunications, Jul. 2, 2004, pp. 1-166, XP-002370625. |
Hagiwara, Haruo, "Foundation of turbo code", Triceps, Oct. 7, 1999. pp. 37 to 46. |
Hu, Xiao-Yu et al., "Efficient Implementations of the Sum-Product Algorithm for Decoding LDPC Codes", IBM Research, Zurich Research Laboratory, Ruschlikon, Switzerland. |
J. Chen et al.. "Reduced-Complexity Decoding of LDPC Codes". Dept. Electrical Engineering, Univ. Hawaii at Manoa, Honolulu, U.S.A. & IBM Research, Zurich Research Laboratory, Ruschlikon, Switzerland. |
Jinghu Chen & Marc P. C. Fossorier, Density Evolution for BP-Based Decoding Algorithms of LDPC Codes and Their Quantized Versions, Global Telecommunications Conference, 2002. GLOBECOM'02. IEEE, vol. 2, Nov. 17, 2002, pp. 1378 to 1382. |
Jinghu Chen and Marc P. C. Fossorier "Density Evolution for Two Improved BP-Based Decoding Algorithms of LDPC Codes", IEEE Communication Letters, vol. 6, No. 5, May 2002. |
Juntan Zhang & Marc Fossorier, Shuffled Belief Propagation Decoding, Signals, Systems and Computers, 2002. Conference Record of the Thrity-Conference on, vol. 1, Nov. 3, 2002, pp. 8 to 15. |
Lechner et al., "Implementation of an LDPC Decoder on a Vector Signal Processor," RPOC., The 38th Asilomar Conference on Signals, Systems and Computers, vol. 7, Nov. 7, 2004, pp. 549-553. |
Marc P. C. Fossorier & Miodrag Mihaljevic & Hideki Imai, Reduced Complexity Interative Decoding of Low-Density Parity Check Codes Based on Belief Propagation, IEEE Transactions on Communications, vol. 47, Issue 5, May 1999, pp. 673 to 680. |
Rui Sakai, Ayumu Matsumoto, Hideo Yoshida, "LDPC Fugo no Kan'i Fugoho to noso Risanka Mitsudo Hattenho- delta-min Fugoho to noso Risanka Mitsudo Hattenho ni yoru Tokusei Hyoka-", The Institute of Electronics, Information and Communication Engineers Gijutsu Kenkyu Hokoku (RCS2005-42), vol. 105, No. 196, Jul. 21, 2005, pp. 13 to 18. |
Rui Sakai, Ayumu Matsumoto, Hideo Yoshida, "LDPC Fugo no Kan'i Fugoho to noso Risanka Mitsudo Hattenho- δ-min Fugoho to noso Risanka Mitsudo Hattenho ni yoru Tokusei Hyoka-", The Institute of Electronics, Information and Communication Engineers Gijutsu Kenkyu Hokoku (RCS2005-42), vol. 105, No. 196, Jul. 21, 2005, pp. 13 to 18. |
Tadashi Wadayama, "Low-Density Parity-Check Code, and Decoding Method LDPC (Low Density Parity Check) code/Sum-Product Decoding Method", Triceps, Jun. 5, 2002, pp. 76 to 99. |
Vogt, J. et al., "Improving the max-log-MAP turbo decoder", Electronics Letters, vol. 36, No. 23, pp. 1937 to 1939. |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100251059A1 (en) * | 2007-07-04 | 2010-09-30 | Nxp B.V. | Shuffled ldpc decoding |
US8489962B2 (en) * | 2007-07-04 | 2013-07-16 | St-Ericsson Sa | Shuffled LDPC decoding |
US20140053042A1 (en) * | 2009-03-17 | 2014-02-20 | Broadcom Corporation | Communication device employing binary product coding with selective additional Cyclic Redundancy Check (CRC) therein |
US20110214037A1 (en) * | 2009-09-25 | 2011-09-01 | Shutai Okamura | Coding device, decoding device, coding method, decoding method, and communication system |
US8683302B2 (en) * | 2009-09-25 | 2014-03-25 | Panasonic Corporation | Coding device, decoding device, coding method, decoding method, and communication system |
US20110289382A1 (en) * | 2010-05-18 | 2011-11-24 | National Taiwan University | Programmable LDPC code decoder and decoding method thereof |
US8296622B2 (en) * | 2010-05-18 | 2012-10-23 | National Taiwan University | Programmable LDPC code decoder and decoding method thereof |
Also Published As
Publication number | Publication date |
---|---|
CN101069356A (zh) | 2007-11-07 |
JPWO2006059688A1 (ja) | 2008-06-05 |
JP4777261B2 (ja) | 2011-09-21 |
KR100924189B1 (ko) | 2009-10-29 |
KR20070073949A (ko) | 2007-07-10 |
EP1819056B1 (fr) | 2013-07-17 |
EP1819056A4 (fr) | 2009-03-04 |
WO2006059688A1 (fr) | 2006-06-08 |
EP1819056A1 (fr) | 2007-08-15 |
US20080246639A1 (en) | 2008-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8201047B2 (en) | Decoding apparatus and communications apparatus | |
US8132080B2 (en) | Communication apparatus and decoding method | |
EP1626505B1 (fr) | Dispositif et méthode pour le codage et décodage de code de contrôle de parité de faible densité (LDPC) de bloc | |
USRE44421E1 (en) | Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof | |
US7747929B2 (en) | Apparatus and method for coding/decoding block low density parity check code with variable block length | |
US7814393B2 (en) | Apparatus and method for coding/decoding block low density parity check code with variable block length | |
US7526717B2 (en) | Apparatus and method for coding and decoding semi-systematic block low density parity check codes | |
US8010869B2 (en) | Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords | |
US8321745B2 (en) | Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes | |
US8020062B2 (en) | Apparatus and method of encoding/decoding block low density parity check codes in a communication system | |
US20030104788A1 (en) | Decoding architecture for low density parity check codes | |
KR100804793B1 (ko) | 저밀도 패러티 검사 복호기에서의 검사 노드 갱신 방법 | |
US20060036925A1 (en) | Apparatus and method for coding/decoding block low density parity check code with variable block length | |
US20040243917A1 (en) | Apparatus and method for decoding a low density parity check code in a communication system | |
US20070113148A1 (en) | Decoding apparatus and method in a communication system using low density parity check codes | |
US20100325514A1 (en) | Decoding method and decoding device | |
EP2472725A1 (fr) | Procédé et appareil de codage et de décodage d'un canal dans un système de communication utilisant un code en bloc linéaire | |
US8046657B2 (en) | Decoding method and apparatus | |
US6381727B1 (en) | Apparatus and method for receiving data with bit insertion | |
KR20090012189A (ko) | Ldpc 부호의 성능 개선을 위한 스케일링 기반의 개선된min-sum 반복복호알고리즘을 이용한 복호 장치 및그 방법 | |
Vigneswari et al. | Improving the Performance of Layered Iterative minsum Approximation Message Passing Decoding Algorithm for 5G NR LDPC Codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MITSUBISHI ELECTRIC CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SAKAI, RUI;MATSUMOTO, WATARU;MIYATA, YOSHIKUNI;AND OTHERS;REEL/FRAME:019414/0074 Effective date: 20070521 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |