EP1909395A1 - Communication apparatus and decoding method - Google Patents

Communication apparatus and decoding method Download PDF

Info

Publication number
EP1909395A1
EP1909395A1 EP06768155A EP06768155A EP1909395A1 EP 1909395 A1 EP1909395 A1 EP 1909395A1 EP 06768155 A EP06768155 A EP 06768155A EP 06768155 A EP06768155 A EP 06768155A EP 1909395 A1 EP1909395 A1 EP 1909395A1
Authority
EP
European Patent Office
Prior art keywords
row
column
processing
llr
value
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.)
Granted
Application number
EP06768155A
Other languages
German (de)
French (fr)
Other versions
EP1909395B1 (en
EP1909395A4 (en
Inventor
Wataru c/o Mitsubishi Electric Corp. MATSUMOTO
Rui c/o Mitsubishi Electric Corporation SAKAI
Hideo c/o Mitsubishi Electric Corporation YOSHIDA
Yoshikuni Mitsubishi Electric Corp. MIYATA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of EP1909395A1 publication Critical patent/EP1909395A1/en
Publication of EP1909395A4 publication Critical patent/EP1909395A4/en
Application granted granted Critical
Publication of EP1909395B1 publication Critical patent/EP1909395B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-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/1122Soft-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 storing only the first and second minimum values per check node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-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/112Soft-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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Definitions

  • the present invention relates to an error correction technology in digital communication, and, particularly to a communication apparatus at a receiving side and a decoding method for decoding an LDPC (Low-Density Parity Check)-encoded signal.
  • LDPC Low-Density Parity Check
  • the decoding is performed while repeatedly calculating a likelihood ratio (LLR) as probabilistic reliability information of a reception signal (see Nonpatent Document 1).
  • LLR likelihood ratio
  • the "Sum-Product algorithm” has high decoding performance, but has high calculation cost for packaging such as the need for holding a table, because a calculation using a mathematical function is required. At least a memory that stores intermediate values by only the number of "1" contained in a binary check matrix of "0" and "1” is necessary.
  • the "Min-Sum algorithm” does not require a mathematical function, and has small calculation cost, but decoding performance is degraded.
  • BPSK Binary Phase Shift Keying
  • AWGN channel Additive White Gaussian Noise Channel
  • a predetermined digital demodulation corresponding to the above BPSK modulation is performed to the modulation signal received via the above channel. Further, iterative decoding by the "Sum-Product algorithm” is executed to a logarithmic likelihood ratio (LLR) obtained from the demodulation result, and a hard decision result is finally output.
  • LLR logarithmic likelihood ratio
  • LLR: ⁇ mn (1) at the first repetition (repetition first-time LLR: ⁇ mn (1) of a bit n to be sent from the check node m to the bit node n is updated for each m and n by the following Equation (3):
  • N(m) is a set of column numbers having "1" of a m-th row
  • n' is N(m) other than n
  • (l-1) is LLR from the (l-1)-thbit node to the check node other than an n-th column.
  • a repetition first-time LLR: ⁇ mn (1) of a bit n to be sent from the bit node n to the check node m is updated for each m and n by the following Equation (4):
  • a repetition first-time posterior value ⁇ n (1) of a bit n for a hard decision is updated for each n by the following Equation (5) :
  • M(n) is a set of row numbers having "1" of an n-th column
  • m' is M(n) other than m
  • ⁇ m'n (1) is LLR from the first check node to the bit node other than an m-th row.
  • Nonpatent Document 1 Low-Density Parity-Check Codes and Its Decoding Algorithm, LDPC (Low Density Parity Check) code/sum-product decoding algorithm, Tadashi Wadayama, Triceps.
  • LDPC Low Density Parity Check
  • the present invention has been achieved to solve the above problems in the conventional technology and it is an object of the present invention to provide a communication apparatus and a decoding method, capable of reducing calculations and a memory capacity required in decoding of an LPDC encoded codeword.
  • the invention also has an object of providing a communication apparatus and a decoding method, capable of achieving a reduction in the quantization size and a reduction in the number of repetitions.
  • the column processing unit performs decoding while updating the
  • an absolute value of an LLR for row processing is reduced to a minimum k value in a row unit by a cyclic structure. Therefore, there is an effect that the memory capacity required to store the absolute values can be substantially reduced. Further, according to the present invention, probability propagation can be performed more efficiently than that performed by the conventional "Min-Sum algorithm". Therefore, the number of repetitions of decoding can be substantially reduced. As a result, the calculations in decoding can be substantially reduced.
  • the present invention can be applied to decoding at a terminal and a base station, in wireless communication through, for example, a portable telephone.
  • the present invention can also be applied to decoding in satellite communication, an HDD, optical communication, a wireless LAN, a quantum code, and the like.
  • Fig. 1 is a configuration example of the communication system including an LDPC encoder and an LDPC decoder.
  • a communication apparatus at the transmission side includes an LDPC encoder 1 and a modulator 2
  • a communication apparatus at the receiving side includes a demodulator 4 and an LDPC decoder 5.
  • the LDPC encoder 1 within the transmitting device generates a generation matrix G of K rows ⁇ N columns according to a known method (K: an information length, N: a codeword length).
  • the LDPC encoder 1 receives a message (m 1 , m 2 , ..., m K ) of the information length K, and generates a codeword C, using this message and the above generated matrix G, as represented by the following Equation (6):
  • C m 1 , m 2 , ... , m k ⁇
  • G c 1 ⁇ c 2 ... c N
  • a parity check matrix for the LDPC is H (M rows ⁇ N columns)
  • H (c 1 , c 2 , ..., c N ) T 0 .
  • a predetermined modulation system such as BPSK, multivalue PSK, multivalue QAM, etc.
  • the LDPC decoder 5 performs decoding according to the decoding algorithm of the present embodiment, described later, using a logarithmic likelihood ratio (LLR) obtained from the demodulation result, and outputs a hard decision value (corresponding to the original message m 1 , m 2 , ..., m K ) as a decoding result.
  • LLR logarithmic likelihood ratio
  • Min-Sum algorithm is explained as the conventional decoding algorithm that is the basis of the decoding algorithm.
  • the initialization step similar to that of the "Sum-Product algorithm” described above is first performed.
  • the row processing step of the "Min-Sum algorithm” is performed.
  • the column processing step and the stop regulation similar to those of the "Sum-Product algorithm” described above are performed to calculate and update probability information.
  • Fig. 2 is a configuration example of a row processing unit that performs a row processing step of the "Min-Sum algorithm" in an LDPC decoder.
  • the comparator 112 of the minimum-value selecting unit 101 includes a plurality of comparators of two inputs (a, b). Each comparator receives LLR for comparison from the above memory unit 111 and a former-stage comparator (the first-stage comparator receives LLR from only the memory unit 111), and when "
  • the LLR calculating unit 103 multiplies the above minimum value with the multiplication result of the above sign, and delivers the LLR: ⁇ mn (1) as the multiplication result, to the column processing unit.
  • Fig. 3 is a configuration example of the column processing unit that performs a column processing step of the "Min-Sum algorithm" in an LDPC decoder.
  • This column processing unit retains the LLR: ⁇ m'n (1) of a column weight of the parity check matrix H, and adds each LLR, thereby outputting the repetition first-time posterior value ⁇ n (1) .
  • Equation (7) The row processing of the above "Min-Sum algorithm” can be generalized by the following Equation (7).
  • the repetition first-time LLR: ⁇ mn (1) of the bit n from the check node m to the bit node n is updated for each of m and n by the following Equation (7):
  • Row processing is performed first time in the iterative decoding calculation (repetition first-time decoding calculation) (step S4: the first iterative decoding to the last iterative decoding).
  • the decoding algorithm according to the present embodiment explained below achieves a further reduction in required memory capacity and calculations, and is the improved algorithm of the "Min-Sum algorithm” as the approximated decoding method of the "Sum-Product algorithm", for example.
  • a configuration of the LDPC decoder 5 constituting the receiving device according to the present invention, and a decoding method (decoding algorithm) performed by the LDPC decoder 5, are explained in detail below with reference to the drawings.
  • Fig. 5-1 depicts a configuration of the LDPC decoder 5 according to the present embodiment.
  • This LDPC decoder 5 includes a reception-LLR calculating unit 11 that calculates the reception LLR from the reception information, and the decoding core unit 12 that performs decoding according to the present embodiment.
  • the decoding core unit 12 includes an intermediate-result retaining unit 21 configured by a memory which stores therein an intermediate result (intermediate value) of decoding, a row processing unit 22 that performs row processing according to the present embodiment, a column processing unit 23 that performs column processing according to the present embodiment, a decoding-result determining unit 24 that performs a hard decision on a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according to the present embodiment, and a controller 25 that performs a repetition control of decoding.
  • an intermediate-result retaining unit 21 configured by a memory which stores therein an intermediate result (intermediate value) of decoding
  • a row processing unit 22 that performs row processing according to the present embodiment
  • a column processing unit 23 that performs column processing according to the present embodiment
  • a decoding-result determining unit 24 that performs a hard decision on a posterior value in the column processing and an error determination of a parity check result
  • the decoding algorithm according to the present embodiment is a method of cyclically updating only the absolute value of the LLR of the minimum k value. Because this algorithm is the method of decoding using an approximate minimum value instead of an accurately minimum value, this method is hereinafter called the "Cyclic approximated min algorithm”.
  • the minimum k value represents "from the minimum value to the k-th value in the ascending order.
  • the LLR of the minimum k value of the m-th row at the initial time is set as ⁇ mn(i) (0) , and a reception LLR: ⁇ n is input to obtain B mn (i) as in the following Equation (8).
  • sgn( ⁇ n ) is input to obtain S m as in the following Equation (8):
  • B mn(i) is an absolute value of the LLR: ⁇ mn(i) of the minimum k value of the m-th row
  • n(i) is a column number of the minimum i-th LLR in B mn(i)
  • S m is a product of signs (+ or -) of the LLR: ⁇ mn of the m-th row.
  • a starting column of the row processing is arbitrary.
  • decoding is performed again cyclically from the first column.
  • the repetition first-time LLR: ⁇ mn (1) of the bit n to be sent from the check node m to the bit node n is updated for 1 ⁇ n ⁇ N and for each m by the following Equation (9) :
  • n a column number that satisfies "n' ⁇ n” takes the product of signs of the LLR: ⁇ mn' (1) updated in the first-time column processing
  • n'>n a column number that satisfies "n'>n” takes the product of signs of the LLR: ⁇ mn' (l-1) updated by the (1-1)-th time column processing.
  • a result of multiplying these results by the minimum LLR:min[ ⁇ mn' ] in the minimum k value of the m-th row is set as the updated LLR: ⁇ mn (1) of the column number n.
  • the term of multiplying the product of the signs of ⁇ mn' (1) by the product of the signs of ⁇ mn' (l-1) is substituted by the term of multiplying S m updated at the (1-1)-th time by the sign of ⁇ mn' updated at the (l-1)-th time.
  • the repetition first-time LLR: ⁇ mn (1) of the bit n to be sent from the bit node n to the check node m is updated for each m and n by the following Equation (10):
  • ⁇ mn 1 ⁇ n + ⁇ m ⁇ ⁇ M n ⁇ m ⁇ m ⁇ n 1
  • S m S m ⁇ ⁇ sgn ⁇ mn 1
  • n i arg ⁇ min n ⁇ ⁇ N k m ⁇ n 1 , n 2 , ... , n ⁇ i - 1 ⁇ n i B mn ⁇ ⁇ m 1
  • B mn i min n ⁇ ⁇ N k m ⁇ n 1 , n 2 , ... , n ⁇ i - 1 ⁇ n i B mn ⁇ ⁇ m 1 , ⁇ i ⁇ 1 ⁇ k
  • Equation (10) prescribes the sort process (minimum k value) of B mn(1) .
  • the repetition first-time posterior value ⁇ n (1) of the bit n is updated by the following Equation (11);
  • Fig. 6 is a configuration example of the row processing unit 22 that performs row processing according to the "Cyclic approximated min algorithm".
  • the row processing unit 22 includes a minimum-value selecting unit 31, a sign calculating unit 32, and an LLR calculating unit 33.
  • a Min1LLR minimum LLR of the m-th row
  • B mn(1) a Min2LLR (second minimum LLR of the m-th row)
  • S m and the "sign of the LLR: ⁇ mn of the m-th row and n-th column of the (1-1)-th time” are also the values retained in the intermediate-result retaining unit 21.
  • the minimum-value selecting unit 31 selects the Min2LLR(B mn(2) ) when the column number n to be row-processed coincides with the column number n (1) of the Min1LLR(B mn(1) ), and selects the Min1LLR(B mn(1) ) in other cases, and outputs the selected result.
  • the sign calculating unit 32 multiplies the "S m updated by the (1-1)-th time column processing" by the "sign of the LLR: ⁇ mn of the m-th row and n-th column of the (1-1)-th time", and outputs S m ' as a result of the multiplication. In this case, S m ' is retained in the intermediate-result retaining unit 21.
  • the LLR calculating unit 33 multiplies the minimum LLR obtained from the minimum-value selecting unit 31 by the multiplication result S m ' of the sign (+ or -) obtained from the sign calculating unit 32, thereby calculating LLR: ⁇ mn (1) . Based on this, according to the "Min-Sum algorithm", the memory that has been necessary by the row weight portion can be reduced to the k value portion.
  • Fig. 7-1 is a configuration example of the column processing unit 23 that performs column processing according to the "Cyclic approximated min algorithm".
  • This column processing unit 23 includes an ⁇ adding unit 41, a ⁇ adding unit 42, a minimum-k-value comparing unit 43, and a sign calculating unit 44.
  • LLR of a column weight portion, ⁇ mn , ⁇ n , S m ', Min1LLR, Min2LLR, Min3LLR (the third-minimum LLR of the m-th row) are the values retained in the intermediate-result retaining unit 21.
  • the ⁇ adding unit 41 adds all LLR: ⁇ m'n (1) other than those of the m-th row LLR updated in the first-time row processing. Further, the ⁇ adding unit 42 adds the reception LLR: ⁇ n to the result of the addition by the ⁇ adding unit 41, and outputs ⁇ mn (1) .
  • FFFF maximum value
  • a comparison process excluding the column to be processed can be performed, and at least the Min3LLR can be necessarily updated by the column processing.
  • is compared with each of the Min1LLR, Min2LLR, Min3LLR.
  • ⁇ Min3LLR the LLR of the minimum 3 value is updated.
  • the sign of ⁇ mn (1) output by the ⁇ adding unit 42 is retained in the intermediate-result retaining unit 21, as the "sign of the LLR: ⁇ mn (1) of the m-th row and n-th column of the first time".
  • the sign calculating unit 44 multiplies S m ' updated in the first-time row processing, by the sign of the above ⁇ mn (1) , and updates S m retained in the intermediate-result retaining unit 21, using a result of this multiplication.
  • is first compared with the Min2LLR as the center value of B mn(i) , and thereafter, comparison is performed in a tree shape as shown in Fig. 7-1 .
  • the same process as described above can also be achieved with the configuration shown in Fig. 7-2 .
  • the ⁇ adding unit 41 performs only the addition of all the LLR of the column weight portion, and thereafter, the ⁇ adding unit 42 adds ⁇ n , outputs a result of the addition to the decoding-result determining unit 24, and subtracts ⁇ mn as the LLR of the m-th row.
  • the configuration of the LDPC encoder becomes as shown in Fig. 5-2 .
  • the reception-LLR calculating unit 11 calculates the reception LLR from the reception information (steps S11, S12), and sets a result of the calculation to the intermediate-result retaining unit 21, as an initial value (step S13).
  • the decoding core unit 12 performs the first-time (first-time to the last-time) iterative decoding calculation (step S14). Specifically, as the first-time iterative decoding, the row processing unit 22 performs the row processing (using the reception LLR) to the row having "1" in the first column, and delivers a result of the calculation to the column processing unit 23. Thereafter, the column processing unit 23 performs the column processing of the first column, and retains (updates) B mn (i) and S m , as a result of the calculation, in the intermediate-result retaining unit 21.
  • Fig. 10 depicts a column number notation according to the present embodiment.
  • a column number n is expressed as the column number itself (absolute column number) of the parity check matrix.
  • the row weight is eight, the memory size can be reduced to three bits which can express 0 to 7. When the row weight is 16, the memory size can be reduced to four bits which can express 0 to 15.
  • the LDPC decoding is performed to minimize the absolute value
  • Fig. 11 and Fig. 12 depict results of a comparison simulation between the "Cyclic approximated min algorithm" and the "Min-Sum algorithm”.
  • An LDPC code has a maximum row weight of 8 in the irregular EG code.
  • the number of decoding iterations is fixed to 100 times, and the number of minimum values stored in the "Cyclic approximated min algorithm” is changed to 3, 4, 5, and the performance is compared with that of the "Cyclic approximated min algorithm”.
  • CyclicXmin is the "Cyclic approximated min algorithm” holding the minimum X value
  • Min-Sum is the "Min-Sum algorithm”.
  • Fig. 12 depicts a result of comparing the average number of repetitions required until decoding succeeds, in the "Cyclic approximated min algorithm” and the “Min-Sum algorithm”.
  • CyclicXmin is the “Cyclic approximated min algorithm” holding the minimum X value
  • Min-Sum is the "Min-Sum algorithm”.
  • the LLR to be row processed has one value
  • the k number can be any number equal to or higher than two values.
  • the present embodiment explains, by way of example and without limitation, that the row processing and the column processing are performed one time alternately, and the updating of the probability information (LLR) by the row processing and the column processing is cyclically performed each one bit.
  • the column processing can be performed by a plurality of times. That is, calculation and updating of probability information (LLR) by the row processing and the column processing can be performed cyclically for a plurality of bits each time.
  • LDPC decoding can be applied when the calculation and updating of the probability information (LLR) by the row processing and column processing are performed for each one bit or a predetermined plurality of bits. For example, the number of repetitions can be reduced by parallelizing calculations.
  • the "Cyclic approximated min algorithm” is executed using what is called “Overlapped" B mn c and S m , by arranging such that the B mn(i) and S m of the intermediate-result retaining unit are one set regardless of the number of parallelization, and parallelized all processing units update the same B mn c and S m .
  • the decoding algorithm according to the present embodiment is hereinafter called the "Overlapped cyclic approximated min algorithm”.
  • B mn(i) c is an absolute value of the LLR: ⁇ mn(i) of the minimum k value of the m-th row and is used in common in the parallel processing, and n(i) is a column number of the minimum i-th LLR in B mn(i) c .
  • a starting column of each row processing is arbitrary.
  • decoding is performed again cyclically from the first column.
  • G row processing units allocated to the G columns, into which the column is divided for each column number: N G perform the row processing in parallel.
  • the G row processing units execute the parallel processing, and perform the same operation as that of the "Cyclic approximated min algorithm", except that all the processing units use the same B mn c .
  • the repetition first-time LLR: ⁇ mn (1) of the bit n to be sent from the bit node n to the check node m is updated for 0 ⁇ g ⁇ G-1, g ⁇ N G +1 ⁇ n ⁇ (g+1) ⁇ N G , and for each m by the following Equation (14). That is, in the present embodiment, after the row processing is performed in parallel as described above, for respective columns are performed in parallel the column processing represented by the following Equation (14):
  • ⁇ mn 1 ⁇ n + ⁇ m ⁇ ⁇ M n ⁇ m ⁇ m ⁇ n 1
  • S m S m ⁇ ⁇ sgn ⁇ mn 1
  • n i arg ⁇ min n ⁇ ⁇ N k m ⁇ n 1 , n 2 , ... , n ⁇ i - 1 ⁇ n i B mn ⁇ C ⁇ m 1
  • B mn i C min n ⁇ ⁇ N k m ⁇ n 1 , n 2 , ... , n ⁇ i - 1 ⁇ n i B mn ⁇ C ⁇ m 1 , ⁇ i ⁇ 1 ⁇ k
  • the stop regulation is the same as that of the "Cyclic approximated min algorithm" described above.
  • LDPC decoder 5 Described below is a configuration and operation of the LDPC decoder 5 according to the second embodiment that achieves the above "Overlapped cyclic approximated min algorithm”.
  • Fig. 13 is a configuration example of the LDPC decoder 5 according to the present embodiment.
  • the LDPC decoder 5 includes the reception-LLR calculating unit 11 that calculates the reception LLR from the reception information, and a decoding core unit 12a that performs decoding of the present embodiment.
  • the decoding core unit 12a includes an intermediate-result retaining unit 21a including a memory which stores therein an intermediate result (intermediate value) of decoding, row processing units 22-1 to 22-G that perform row processing (parallel processing) according to the present embodiment, column processing units 23-1 to 23-G that perform column processing (parallel processing) of the present embodiment, the decoding-result determining unit 24 that performs a hard decision of a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according to the present embodiment, and a controller 25a that performs a repetition control of decoding.
  • an intermediate-result retaining unit 21a including a memory which stores therein an intermediate result (intermediate value) of decoding
  • row processing units 22-1 to 22-G that perform row processing (parallel processing) according to the present embodiment
  • column processing units 23-1 to 23-G that perform column processing (parallel processing) of the present embodiment
  • the LDPC decoder 5 of the present embodiment uses in common B mn c and S m retained by the intermediate-result retaining unit 21a following Equations (12), (13), and (14), when respective row processing units and respective column processing units perform processing in parallel, thereby updating B mn c and S m , respectively.
  • B mn c and S m are rapidly updated according to the parallel number, which substantially reduces the number of decoding iterations.
  • the row processing and the column processing are performed in parallel using the "Cyclic approximated min algorithm” described above. Further, the intermediate-result retaining unit that retains the minimum k value updated in each column processing performed in parallel is shared, and the minimum k value is updated in each column processing performed in parallel. With this arrangement, the number of decoding iterations can be substantially reduced as compared with the decrease according to the "Min-Sum algorithm" and the first embodiment described above.
  • Fig. 14 depicts a performance comparison regarding the number of repetitions. Specifically, the repetition performance of the "Overlapped cyclic approximated min algorithm” is compared with the repetition performance of the "Cyclic approximated min algorithm", and the “Min-Sum algorithm”, respectively when the parallel number is 2, in the state that the number of decoding iterations is fixed.
  • the repetition performance of the "Overlapped cyclic approximated min algorithm” is compared with the repetition performance of the "Cyclic approximated min algorithm”, and the “Min-Sum algorithm”, respectively when the parallel number is 2, in the state that the number of decoding iterations is fixed.
  • a receiving device and a decoding method according to a third embodiment are explained below.
  • the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Cyclic approximated min algorithm" according to the first embodiment or the “Overlapped cyclic approximated min algorithm” according to the second embodiment are cyclically applied to the "Normalized BP-based algorithm” as the known decoding algorithm using the "Min-Sum algorithm".
  • the row processing of the above “Normalized BP-based algorithm” can be generalized by the following Equation (16).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (16), where A is a constant called a normalization factor.
  • the repetition first-time LLR obtained by the “Min-Sum algorithm” is corrected by the normalization factor A.
  • a starting column of the row processing is arbitrary.
  • decoding is performed again cyclically from the first column.
  • the row processing of the decoding algorithm according to the present embodiment using the "Cyclic approximated min algorithm” can be generalized by the following Equation (17).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (17). That is, the repetition first-time LLR obtained by the "Cyclic approximated min algorithm” is corrected by the normalization factor A in the following Equation (17):
  • the row processing of the decoding algorithm according to the present embodiment using the "Overlapped cyclic approximated min algorithm” can be generalized by the following Equation (18).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 0 ⁇ g ⁇ G-1, g ⁇ N G +1 ⁇ n ⁇ (g+1) ⁇ N G , and for each m by the following Equation (18). That is, the repetition first-time LLR obtained by the "Overlapped cyclic approximated min algorithm” is corrected by the normalization factor A in the following Equation (18):
  • Fig. 15 is a configuration example of row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment.
  • the row processing unit includes a minimum-value selecting unit 31a. Configurations similar to those explained with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated.
  • the minimum value selecting unit 31a according to the present embodiment corrects the minimum value (Min1LLR or Min2LLR) of the LLR read from the intermediate-result retaining unit 21 (or 21a), using the normalization factor A, for example. Specifically, the minimum value selecting unit 31a performs the normalization by dividing the LLR minimum value by A.
  • the "Cyclic approximated min algorithm” or the “Overlapped cyclic approximated min algorithm” is applied to the "Normalized BP-based algorithm” having the better performance than that of the "Min-Sum algorithm”.
  • the "Sum-Product algorithm” can be achieved, regardless of the circuit amount substantially equivalent to that of the "Min-Sum algorithm”.
  • the "Cyclic approximated min algorithm” or the “Overlapped cyclic approximated min algorithm” is applied to the "Normalized BP-based algorithm”.
  • the "Cyclic approximated min algorithm” or the “Overlapped cyclic approximated min algorithm” can also be applied to the known “Offset BP-based algorithm” or other algorithm. In this case also, effects similar to those described above can be obtained.
  • a receiving device and a decoding method according to a fourth embodiment are explained below.
  • the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Cyclic approximated min algorithm” according to the first embodiment or the “Overlapped cyclic approximated min algorithm” according to the second embodiment are cyclically applied to the " ⁇ min algorithm” as the known decoding algorithm having superior correction performance of LLR: ⁇ mn to that of the "Normalized BP-based algorithm” or the "Offset BP-based algorithm”.
  • the row processing of the above " ⁇ min algorithm” can be generalized by the following Equation (19).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (19).
  • ⁇ mn (1) is calculated by calculating ⁇ from the absolute value:
  • n i ⁇ n ⁇ ⁇ N m ⁇ n sgn ⁇ ⁇ mn ⁇ i - 1 ⁇ ⁇ n ⁇ ⁇ N m ⁇ n ⁇ ⁇ m , n ⁇ i - 1 ⁇ n ⁇ A I n ⁇ I 1 ⁇ ⁇ ⁇ I 2 ⁇ ⁇ ⁇ I A a ⁇ b ⁇ max ⁇ min a ⁇ b - ⁇ , 0 ⁇ ⁇ max ⁇ 0.9 - a - b / 2 , 0
  • the row processing of the decoding algorithm according to the present embodiment using the "Cyclic approximated min algorithm” can be generalized by the following Equation (20).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 1 ⁇ n ⁇ N and for each m by the following Equation (20).
  • ⁇ mn (1) is calculated by calculating ⁇ from the absolute value:B mn' of the LLR of the minimum k value updated at the repetition l-1-th time.
  • the row processing of the decoding algorithm according to the present embodiment using the "Overlapped cyclic approximated min algorithm” can be generalized by the following Equation (21).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 0 ⁇ g ⁇ G-1, g ⁇ N G +1 ⁇ n ⁇ (g+1) ⁇ N G , and for each m by the following Equation (21).
  • ⁇ mn (1) is calculated by calculating ⁇ from the absolute value:B mn' c of the LLR of the minimum k value updated by the parallel processing at the repetition l-1-th time.
  • Fig. 16 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment. Constituent elements similar to those described with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. While the LDPC decoder 5 shown in Fig. 5 is explained as one example, the present embodiment can also be similarly applied to the LDPC decoder 5 shown in Fig. 13 .
  • a minimum-value selecting unit 31b reads the Min1LLR(B mn(1) ), Min2LLR(B mn(2) ), MinkLLR(B mnt(k) ), and their column numbers from the intermediate-result retaining unit 21, and the calculating unit performs the ⁇ calculation. That is, in the minimum-value selecting unit 31b according to the present embodiment, the calculating unit performs the following calculation in the " ⁇ min algorithm", to B mn(k) in which the n-th column to be processed does not coincide with the column number n(k) of B mn(k) retained in the intermediate-result retaining unit 21.
  • the calculating unit obtains the updated value
  • ( ⁇ [(B mn' ]) excluding the sign as represented by the following Equation (22):
  • the calculating unit obtains the updated value
  • ( ⁇ [(B mn' ]) excluding the sign as represented by the following Equation (23):
  • the embodiment can also be applied to the case that the LLR is limited to the minimum 4, 5, ... values.
  • the "Cyclic approximated min algorithm” or the “Overlapped cyclic approximated min algorithm” is applied to the " ⁇ min algorithm” having the better performance than that of the "Min-Sum algorithm".
  • effects similar to those of the first and second embodiments can be obtained.
  • performance close to that of the "Sum-Product algorithm” can be achieved, regardless of the circuit amount substantially equivalent to that of the "Min-Sum algorithm”.
  • the correction equation is not limited to this, and the correction equation prescribed by the algorithm other than the " ⁇ min algorithm” can also be used. In this case also, effects similar to those described above can be obtained.
  • Fig. 17 depicts a result of comparison between a decoding algorithm having the "Cyclic approximated min algorithm” or the “Overlapped cyclic approximated min algorithm” applied to the " ⁇ min algorithm” and the “Sum-Product algorithm”.
  • a receiving device and a decoding method according to a fifth embodiment are explained below.
  • the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Cyclic approximated min algorithm" according to the first embodiment or the “Overlapped cyclic approximated min algorithm” according to the second embodiment are cyclically applied to the "Sum-Product algorithm”.
  • the row processing of the "Sum-Product algorithm” using the TLU can be generalized by the following Equation (24).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (24).
  • a calculation using the TLU is performed to the absolute value:
  • the row processing of the "Sum-Product algorithm” using the TLU can also be achieved by the method different from the above method.
  • the row processing of the "Sum-Product algorithm” using the TLU different from the above method can be generalized by the following Equation (25).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (25):
  • the row processing represented by Equation (24) has a characteristic that while the table becomes large, the number of calculations is small.
  • the row processing represented by Equation (25) has a characteristic that the number of calculations is large although the table becomes small.
  • the row processing of the decoding algorithm according to the present embodiment having the "Cyclic approximated min algorithm" applied to the above row processing step (1) can be generalized by the following Equation (27).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 1 ⁇ n ⁇ N and for each m by the following Equation (27).
  • a calculation using the TLU is performed to the absolute value: B mn' of the LLR of the minimum k value updated at the repetition 1-1-th time.
  • the row processing of the decoding algorithm according to the present embodiment having the "Cyclic approximated min algorithm" applied to the above row processing step (2) can be generalized by the following Equation (28).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 1 ⁇ n ⁇ N and for each m by the following Equation (28):
  • the row processing of the decoding algorithm according to the present embodiment having the "Overlapped cyclic approximated min algorithm" applied to the above row processing step (1) can be generalized by the following Equation (29).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 0 ⁇ g ⁇ G-1, g ⁇ N G +1 ⁇ n ⁇ (g+1) ⁇ N G , and for each m by the following Equation (29).
  • a calculation using the TLU is performed to the absolute value: B mn' c of the LLR of the minimum k value updated by the parallel processing at the repetition l-1-th time.
  • the row processing of the decoding algorithm according to the present embodiment having the "Overlapped cyclic approximated min algorithm" applied to the above row processing step (2) can be generalized by the following Equation (30).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 0 ⁇ g ⁇ G-1, g ⁇ N G +1 ⁇ n ⁇ (g+1) ⁇ N G , and for each m by the following Equation (30) :
  • Fig. 18 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment. Constituent elements similar to those described with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. While the LDPC decoder 5 shown in Fig. 5 is explained as one example, the present embodiment can also be similarly applied to the LDPC decoder 5 shown in Fig. 13 .
  • a minimum-value selecting unit 31c reads the Min1LLR(B mn(1) ), Min2LLR(B mn(2) ), MinkLLR(B mn(k) ), and their column numbers from the intermediate-result retaining unit 21, and the calculating unit performs calculation using the TLU. That is, in the minimum-value selecting unit 31c according to the present embodiment, the calculating unit performs the following calculation in the "Sum-Product min algorithm", to B mn(k) in which the n-th column to be processed does not coincide with the column number n(k) of B mn(k) retained in the intermediate-result retaining unit 21.
  • the calculating unit obtains the updated value excluding the sign as represented by the following Equation (31):
  • the calculating unit obtains the updated value excluding the sign as represented by the following Equation (32) :
  • the embodiment can also be applied to the case that the LLR is limited to the minimum 4, 5, ... values.
  • the "Cyclic approximated min algorithm” or the “Overlapped cyclic approximated min algorithm” is applied to the "Sum-Product algorithm” using the TLU.
  • the principle can be similarly applied to other decoding algorithm for performing the TLU to the mathematical function.
  • the TLU prescribed by the known "Sum-Product algorithm” is used for the minimum value of the absolute values of the LLR for the row processing.
  • the TLU is not limited to the above, and the TLU other than the TLU prescribed by the "Sum-Product algorithm” can also be used. In this case also, effects similar to the above effects can be obtained.
  • a communication apparatus and a decoding method according to a sixth embodiment are explained below.
  • the number of repetitions can be further reduced by relating the decoding to a serial decoding in a complete bit unit.
  • Fig. 5-1 depicts a configuration of the LDPC decoder 5 according to the present embodiment.
  • the LDPC decoder 5 includes the reception-LLR calculating unit 11 that calculates the reception LLR from the reception information, and the decoding core unit 12 that performs decoding according to the present embodiment.
  • the decoding core unit 12 includes the intermediate-result retaining unit 21 configured by a memory which stores therein an intermediate result (intermediate value) of decoding, the row processing unit 22 that performs row processing according to the present embodiment, the column processing unit 23 that performs column processing according to the present embodiment, the decoding-result determining unit 24 that performs a hard decision of a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according to the present embodiment, and the controller 25 that performs a repetition control of decoding.
  • the intermediate-result retaining unit 21 configured by a memory which stores therein an intermediate result (intermediate value) of decoding
  • the row processing unit 22 that performs row processing according to the present embodiment
  • the column processing unit 23 that performs column processing according to the present embodiment
  • the decoding-result determining unit 24 that performs a hard decision of a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according
  • the decoding algorithm according to the present embodiment is a method of cyclically updating only the absolute value of the LLR of the minimum k value. Because this algorithm is the method of decoding using an approximate minimum value instead of an accurately minimum value and is the serial decoding method, this algorithm is hereinafter called the "Serial cyclic approximated min algorithm”.
  • the minimum k value represents "from the minimum value to the k-th value in the ascending order.
  • the LLR of the minimum k value of the m-th row at the initial time is set as ⁇ mn(i) (0) , and a reception LLR: ⁇ n is input, thereby obtaining B mn (i) as represented by the following Equation (33).
  • a sign of the LLR: ⁇ mn (0) of the m-th row at the initial time sgn( ⁇ n ) is input, thereby obtaining S m as represented by the following Equation (33):
  • B mn(i) is an absolute value of the LLR:B mn(i) of the minimum k value of the m-th row
  • n(i) is a column number of the minimum i-th LLR in B mn(i)
  • S m is a product of signs (+ or -) of the LLR: ⁇ mn of the m-th row.
  • a starting column of the row processing is arbitrary.
  • decoding is performed again cyclically from the first column.
  • the repetition first-time LLR: ⁇ mn (1) of the bit n to be sent from the check node m to the bit node n is updated for 1 ⁇ n ⁇ N and for each m by the following Equation (34) :
  • a column number that satisfies "n' ⁇ n” takes the product of signs of the LLR: ⁇ mn' (1) updated in the first-time column processing
  • a column number that satisfies "n'>n” takes the product of signs of the LLR: ⁇ mn' (1-1) updated in the (1-1)-th time column processing.
  • a result of multiplying these results by the minimum LLR:min[ ⁇ mn' ] in the minimum k value of the m-th row is set as the updated LLR: ⁇ mn (1) of the column number n.
  • the repetition first-time LLR: ⁇ mn (1) of the bit n to be sent from the bit node n to the check node m is updated by the following Equation (35) for each m of the column number n performed at the row processing step 1.
  • Equation (35) the repetition first-time LLR: ⁇ mn (1) of the bit n to be sent from the bit node n to the check node m is updated by the following Equation (35) for each m of the column number n performed at the row processing step 1.
  • Equation (35) for each m of the column number n performed at the row processing step 1.
  • calculation is performed in order for each row starting from the one with the smallest row number, for example. However, when all rows having "1" standing are executed without overlapping, the calculation can be performed in any order.
  • ⁇ ' mn (1) is updated.
  • the updated ⁇ ' mn (1) is added to ⁇ mn (1) using the updated result, thereby updating ⁇ n (1) .
  • calculation is repeated until when the calculation is completed for all m of the column number n.
  • Fig. 6 is a configuration example of the row processing unit 22 that performs row processing according to the "Serial cyclic approximated min algorithm".
  • the row processing unit 22 includes the mininium-value selecting unit 31, the sign calculating unit 32, and the LLR calculating unit 33.
  • a Min1LLR minimum LLR of the m-th row
  • B mn(1) a Min2LLR (second minimum LLR of the m-th row)
  • S m and the "sign of the LLR: ⁇ mn of the m-th row and n-th column of the (1-1)-th time” are also the values retained in the intermediate-result retaining unit 21.
  • the minimum-value selecting unit 31 selects the Min2LLR(B mn(2) ) when the column number n to be row-processed coincides with the column number n(1) of the Min1LLR (B mn(1) ), and selects the Min1LLR (B mn(1) ) in other cases, and outputs the selected result.
  • the sign calculating unit 32 multiplies the "S m updated by the (1-1)-th time column processing" by the "sign of the LLR: ⁇ mn of the m-th row and n-th column of the (1-1)-th time", and outputs S m ' as a result of the multiplication. In this case, S m ' is retained in the intermediate-result retaining unit 21.
  • the LLR calculating unit 33 multiplies the minimum LLR obtained from the minimum-value selecting unit 31 by the multiplication result S m ' of the sign (+ or -) obtained from the sign calculating unit 32, thereby calculating LLR: ⁇ mn (1) . Based on this, according to the "Min-Sum algorithm", the memory that has been necessary by the row weight portion can be reduced to the k value portion.
  • Fig. 19 is a configuration example of the column processing unit 23 that performs column processing according to the "Serial cyclic approximated min algorithm".
  • This column processing unit 23 includes the ⁇ adding unit 41, the ⁇ adding unit 42, the minimum-k-value comparing unit 43, and the sign calculating unit 44.
  • LLR of a column weight portion, ⁇ ' mn , ⁇ mn , ⁇ n , S m ', Min1LLR, Min2LLR, Min3LLR (third-minimum LLR of the m-th row) are the values retained in the intermediate-result retaining unit 21.
  • the ⁇ adding unit 41 adds all LLR: ⁇ mn (1) including the m-th row LLR updated in the first-time row processing. Further, the ⁇ adding unit 42 adds the reception LLR: ⁇ n to the result of the addition by the ⁇ adding unit 41, controls a switch 45 to be first connected to a block below, and outputs ⁇ mn (1) by subtracting ⁇ mn (1) from the added result.
  • FFFF maximum value
  • the sign calculating unit 44 multiplies S m ' updated in the first-time row processing, by the sign of the above ⁇ mn (1) , and updates S m retained in the intermediate-result retaining unit 21, using a result of this multiplication.
  • is first compared with the Min2LLR as the center value of B mn(i) , and thereafter, comparison is performed in a tree shape as shown in Fig. 19 .
  • the reception-LLR calculating unit 11 first calculates the reception LLR from the reception information (steps S11, S12), and sets a result of the calculation to the intermediate-result retaining unit 21, as an initial value (step S13).
  • the decoding core unit 12 performs the first-time (first-time to the last-time) iterative decoding calculation (step S14). Specifically, as the first-time iterative decoding, the row processing unit 22 performs the row processing (using the reception LLR) to the row having "1" in the first column, and delivers a result of the calculation to the column processing unit 23. Thereafter, the column processing unit 23 performs the column processing of the first column, and retains (updates) B mn (i) and S m as a result of the calculation, in the intermediate-result retaining unit 21. Thereafter, the row processing unit 22 executes the row processing step 2, and delivers a result of the calculation to the column processing unit 23.
  • the row processing unit 22 and the column processing unit 23 repeat the column processing step and the row processing step 2. Thereafter, processing similar to the above processing is performed in the order of the second column, third column, ..., N-th column. B mn(i) and S m are retained in the intermediate-result retaining unit 21 (corresponding to the iterative decoding first time). At the second and subsequent iterative decoding, the row processing is performed using the LLR and S m updated by the processing one before. Thereafter, decoding is performed in the similar manner as in the first time.
  • Fig. 10 depicts a column number notation according to the present embodiment.
  • a column number n is expressed as the column number itself (absolute column number) of the parity check matrix.
  • the row weight is eight, the memory size can be reduced to three bits which can express 0 to 7. When the row weight is 16, the memory size can be reduced to four bits which can express 0 to 15.
  • the LDPC decoding is performed to minimize the absolute value
  • ⁇ ' mn (1) is updated.
  • the updated ⁇ ' mn (1) is added to ⁇ mn (1) using the updated result, thereby updating ⁇ n (1) . Therefore, the decoding can be related to the serial decoding in the complete bit unit, and the number of repetitions can be further reduced.
  • the k number can be any number equal to or higher than two values.
  • the column processing step and the row processing step 2 are performed alternately.
  • the updating of the probability information (LLR) by the row processing and the column processing is cyclically performed for each one bit.
  • the execution is not limited to the above.
  • calculation and updating of the probability information (LLR) by the row processing and the column processing can be performed cyclically for a plurality of bits each time.
  • the LDPC decoding according to the present embodiment can be applied when the calculation and updating of the probability information (LLR) by the row processing and column processing are performed for each one bit or a predetermined plurality of bits. For example, the number of repetitions can be' reduced by parallelizing calculations.
  • the "Serial cyclic approximated min algorithm” is executed using what is called “Overlapped" B mn c and S m , by arranging such that the B mn(i) and S m of the intermediate-result retaining unit are one set regardless of the number of parallelization, and parallelized all processing units update the same B mn c and S m .
  • the decoding algorithm according to the present embodiment is hereinafter called the "Overlapped serial cyclic approximated min algorithm”.
  • B mn(i) c is an absolute value of the LLR: ⁇ mn(i) of the minimum k value of the m-th row, and is used in common in the parallel processing
  • n(i) is a column number of the minimum i-th LLR in B mn(i) c .
  • a starting column of each row processing is arbitrary.
  • decoding is performed again cyclically from the first column.
  • G row processing units allocated to the G columns, into which the column is divided for each column number: N G perform the row processing in parallel.
  • the G row processing units perform the parallel processing, and perform the same operation as that of the "Serial cyclic approximated min algorithm", except that all the processing units use the same B mn c .
  • the repetition first-time LLR: ⁇ mn (1) of the bit n to be sent from the bit node n to the check node m is updated, for each m of the column number n performed at the row processing step 1, by the following Equation (39). That is, in the present embodiment, the column processing represented by the following Equation (39) is performed in parallel, for each column after the row processing is performed in parallel as described above. However, in performing the column processing in parallel, at the subsequent column processing step and the row processing step 2, the calculation is performed for each row in order starting from the smallest row number of the row number m, for example. However, when all rows having "1" standing are executed without overlapping the order of the row numbers to be executed, the calculation can be performed in any order.
  • ⁇ ' mn (1) is updated.
  • the updated ⁇ ' mn (1) is added to ⁇ mn (1) using the updated result, thereby updating ⁇ n (1) .
  • calculation is repeated until when the calculation is completed for all m of the column number n.
  • the stop regulation is similar to that of the "Serial cyclic approximated min algorithm" described above.
  • Fig. 13 is a configuration example of the LDPC decoder 5 according to the present embodiment, which is similar to the configuration of the embodiment described above.
  • This LDPC decoder 5 includes the reception-LLR calculating unit 11 that calculates the reception LLR from the reception information, and the decoding core unit 12a that performs decoding of the present embodiment.
  • the decoding core unit 12a includes the intermediate-result retaining unit 21a configured by a memory which stores therein an intermediate result (intermediate value) of decoding, the row processing units 22-1 to 22-G that perform row processing (parallel processing) according to the present embodiment, the column processing units 23-1 to 23-G that execute column processing (parallel processing) according to the present embodiment, the decoding-result determining unit 24 that performs a hard decision of a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according to the present embodiment, and the controller 25a that performs a repetition control of decoding.
  • the intermediate-result retaining unit 21a configured by a memory which stores therein an intermediate result (intermediate value) of decoding
  • the row processing units 22-1 to 22-G that perform row processing (parallel processing) according to the present embodiment
  • the column processing units 23-1 to 23-G that execute column processing (parallel processing) according to the present embodiment
  • the LDPC decoder 5 uses in common B mn c and S m of the intermediate-result retaining unit 21a, following the above Equations (37), (38), (39), and (40), when each row processing unit and each column processing unit perform processing in parallel, thereby updating B mn c and S m , respectively. Based on this parallel processing, B mn c and S m are rapidly updated according to the parallel number, which substantially reduces the number of iterative decodings.
  • the row processing and the column processing are performed in parallel, using the "Serial cyclic approximated min algorithm” described above.
  • the intermediate-result retaining unit that retains the minimum k value updated in each column processing performed in parallel is shared, and the minimum k value is updated in each column processing performed in parallel.
  • the decoding can be related to the serial decoding in the complete bit unit, and the number of repetitions can be further reduced, as compared with the decrease in the second embodiment.
  • a receiving device (communication apparatus) and a decoding method according to an eighth embodiment are explained below.
  • the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Serial cyclic approximated min algorithm" according to the sixth embodiment or the “Overlapped serial cyclic approximated min algorithm” according to the seventh embodiment are cyclically applied to the "Normalized BP-based algorithm” as the known decoding algorithm using the "Min-Sum algorithm”.
  • a row processing step 1 of the "Normalized BP-based algorithm” can be generalized by the following Equation (41).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (41), where A is a constant called a normalization factor.
  • the repetition first-time LLR obtained by the "Min-Sum algorithm” is corrected by the normalization factor A.
  • a starting column of the row processing is arbitrary.
  • decoding is performed again cyclically from the first column.
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment using the "Serial cyclic approximated min algorithm” can be generalized by the following Equation (42).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (42). That is, the repetition first-time LLR obtained by the "Serial cyclic approximated min algorithm” is corrected by the normalization factor A in the following Equation (42):
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment using the "Overlapped serial cyclic approximated min algorithm” can be generalized by the following Equation (43).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 0 ⁇ g ⁇ G-1, g ⁇ N G +1 ⁇ n ⁇ (g+1) ⁇ N G , and for each m by the following Equation (43). That is, in the following Equation (43), the repetition first-time LLR obtained by the "Overlapped serial cyclic approximated min algorithm" is corrected by the normalization factor A.
  • ⁇ mn l 1 A ⁇ S m ⁇ sgn ⁇ ⁇ mn l - 1 ⁇ min n ⁇ ⁇ N k m n B C mn ⁇ .
  • Fig. 15 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment, which is similar to the example of the above embodiments.
  • the row processing unit includes the minimum value selecting unit 31a. Configurations similar to those explained with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated.
  • the minimum value selecting unit 31a according to the present embodiment corrects the minimum value (Min1LLR or Min2LLR) of the LLR read from the intermediate-result retaining unit 21 (or 21a), using the normalization factor A, for example. Specifically, the minimum value selecting unit 31a performs the normalization by dividing the LLR minimum value by A.
  • the "Serial cyclic approximated min algorithm” or the “Overlapped serial cyclic approximated min algorithm” is applied to the "Normalized BP-based algorithm” having the better performance than that of the "Min-Sum algorithm”.
  • the "Serial cyclic approximated min algorithm” or the “Overlapped serial cyclic approximated min algorithm” is applied to the "Normalized BP-based algorithm”.
  • the "Serial cyclic approximated min algorithm” or the “Overlapped serial cyclic approximated min algorithm” can also be applied to the known “Offset BP-based algorithm” or other algorithm. In this case, effects similar to those described above can also be obtained.
  • a receiving device (communication apparatus) and a decoding method according to a ninth embodiment are explained below.
  • the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Serial cyclic approximated min algorithm" according to the sixth embodiment or the “Overlapped serial cyclic approximated min algorithm” according to the seventh embodiment are cyclically applied to the " ⁇ min algorithm” as the known decoding algorithm having superior correction performance of LLR: ⁇ mn to that of the "Normalized BP-based algorithm” or the "Offset BP-based algorithm".
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the " ⁇ min algorithm” can be generalized by the following Equation (44).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (44).
  • ⁇ mn (1) is calculated by calculating ⁇ from the absolute value:
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the decoding algorithm of the present embodiment using the "Serial cyclic approximated min algorithm” can be generalized by the following Equation (45).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 1 ⁇ n ⁇ N and for each m by the following Equation (45).
  • ⁇ mn (1) is calculated by calculating ⁇ from the absolute value: B mn' of the LLR of the minimum k value updated at the repetition 1-1-th time.
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the decoding algorithm of the present embodiment using the "Overlapped serial cyclic approximated min algorithm” can be generalized by the following Equation (46).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 0 ⁇ g ⁇ G-1, g ⁇ N G +1 ⁇ n ⁇ (g+1) ⁇ N G , and for each m by the following Equation (46).
  • ⁇ mn (1) is calculated by calculating ⁇ from the absolute value: B mn' c of the LLR of the minimum k value updated by the parallel processing at the repetition 1-1-th time.
  • Fig. 16 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment, which is similar to that described in the above embodiments.
  • This row processing unit includes the minimum-value selecting unit 31b. Constituent elements similar to those described with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. While the LDPC decoder 5 shown in Fig. 5 is explained as one example, the present embodiment can also be similarly applied to the LDPC decoder 5 shown in Fig. 13 .
  • the minimum-value selecting unit 31b reads the Min1LLR (B mn(1) ), Min2LLR(B mn(2) ), MinkLLR(B mn(k) ), and their column numbers from the intermediate-result retaining unit 21, and the calculating unit performs the ⁇ calculation. That is, in the minimum-value selecting unit 31b according to the present embodiment, the calculating unit performs the following calculation in the " ⁇ min algorithm", to B mn(k) in which the n-th column to be processed does not coincide with the column number n(k) of B mn(k) retained in the intermediate-result retaining unit 21.
  • the calculating unit obtains the updated value
  • ( ⁇ [(B mn' ]) excluding the sign as represented by the following Equation (47):
  • the calculating unit obtains the updated value
  • ( ⁇ [(B mn' ]) excluding the sign as represented by the following Equation (48):
  • the embodiment can also be applied to the case that the LLR is limited to the minimum 4, 5, ... values.
  • the "Serial cyclic approximated min algorithm” or the “Overlapped serial cyclic approximated min algorithm” is applied to the " ⁇ min algorithm” having the better performance than that of the "Min-Sum algorithm".
  • effects similar to those of the sixth and seventh embodiments can be obtained.
  • performance close to that of the "Sum-Product algorithm” can be achieved, regardless of the circuit amount substantially equivalent to that of the "Min-Sum algorithm”.
  • the correction equation is not limited to this, and the correction equation prescribed by the algorithm other than the " ⁇ min algorithm” can also be used. In this case, effects similar to those described above can also be obtained.
  • a receiving device (communication apparatus) and a decoding method according to a tenth embodiment are explained below.
  • the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Serial cyclic approximated min algorithm" according to the sixth embodiment or the “Overlapped serial cyclic approximated min algorithm” according to the seventh embodiment are cyclically applied to the "Sum-Product algorithm".
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the "Sum-Product algorithm" using a TLU can be generalized by the following Equation (49).
  • the row processing step 1 the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (49).
  • a calculation using the TLU is performed to the absolute value:
  • the row processing step 1 of the "Sum-Product algorithm” using the TLU can also be achieved by the method different from the above method.
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the "Sum-Product algorithm” using a TLU different from the above algorithm can be generalized by the following Equation (50).
  • the repetition first-time LLR: ⁇ mn (1) is updated for each of m and n by the following Equation (50):
  • TLU1(x) a table is prepared in advance based on the following (51).
  • TLU ⁇ 1 x ln ⁇ 1 + exp - x
  • the row processing step 1 represented by the above Equation (49) has a characteristic that while the table becomes large, the number of calculations is small.
  • the row processing step 1 represented by the above Equation (50) has a characteristic that the number of calculations is large although the table becomes small.
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment having the "Serial cyclic approximated min algorithm" applied to the row processing step (1) can be generalized by the following Equation (52).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 1 ⁇ n ⁇ N and for each m by the following Equation (52).
  • a calculation using the TLU is performed to the absolute value: B mn' of the LLR of the minimum k value updated at the repetition 1-1-th time.
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment having the "Serial cyclic approximated min algorithm" applied to the row processing step 1(2) can be generalized by the following Equation (53).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 1 ⁇ n ⁇ N and for each m by the following Equation (53):
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment having the "Overlapped serial cyclic approximated min algorithm" applied to the row processing step 1(1) can be generalized by the following Equation (54).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 0 ⁇ g ⁇ G-1, g ⁇ NG+1 ⁇ n ⁇ (g+1) ⁇ N G , and for each in by the following Equation (54).
  • a calculation using the TLU is performed to the absolute value: B mn' c of the LLR of the minimum k value updated by the parallel processing at the repetition 1-1-th time.
  • the ⁇ mn (1) and ⁇ ' mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment having the "Overlapped serial cyclic approximated min algorithm" applied to the row processing step 1(2) can be generalized by the following Equation (55).
  • the repetition first-time LLR: ⁇ mn (1) is updated for 0 ⁇ g ⁇ G-1, g ⁇ N G +1 ⁇ n ⁇ (g+1) ⁇ N G , and for each m by the following Equation (55) :
  • Fig. 18 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment, which is similar to the configuration of the embodiment described above.
  • the row processing unit includes the minimum-value selecting unit 31c. Constituent elements similar to those described with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. While the LDPC decoder 5 shown in Fig. 5 is explained as one example, the present embodiment can also be similarly applied to the LDPC decoder 5 shown in Fig. 13 .
  • the minimum-value selecting unit 31c reads the Min1LLR(B mn(1) ), Min2LLR(B mn(2) ), MinkLLR(B mn(k) ), and their column numbers from the intermediate-result retaining unit 21, and the calculating unit performs calculation using the TLU. That is, in the minimum-value selecting unit 31c according to the present embodiment, the calculating unit performs the following calculation in the "Sum-Product min algorithm", to B mn(k) in which the n-th column to be processed does not coincide with the column number n(k) of B mn(k) retained in the intermediate-result retaining unit 21.
  • the calculating unit obtains the updated value excluding the sign, as represented by the following Equation (56):
  • the calculating unit obtains the updated value excluding the sign as represented by the following Equation (57):
  • the embodiment can also be applied to the case that the LLR is limited to the minimum 4, 5, ... values.
  • the "Serial cyclic approximated min algorithm” or the “Overlapped serial cyclic approximated min algorithm” is applied to the "Sum-Product algorithm” using the TLU.
  • the "Sum-Product algorithm” using the TLU is explained in the present embodiment, the principle can be similarly applied to other decoding algorithm for performing the TLU to the mathematical function.
  • the TLU prescribed by the known "Sum-Product algorithm” is used for the minimum value of the absolute values of the LLR for the row processing.
  • the TLU is not limited to the above, and the TLU other than the TLU prescribed by the "Sum-Product algorithm” can also be used. In this case, effects similar to the effects described above can also be obtained.
  • the processing is performed in the ascending order with the starting column of the row processing set as 1.
  • the starting column can be arbitrary, and the processing can be performed to an arbitrary column which is not overlapped.
  • iterative decoding can be performed again in the same order.
  • the starting column of the row processing can be set arbitrary, and the processing can be performed to an arbitrary column which is not overlapped.
  • iterative decoding can be performed again in a different order to the arbitrary column not overlapped until the processing ends for all columns.
  • the receiving device and the decoding method according to the present invention are effective for error correction technologies in the digital communication, and are particularly suitable for a communication apparatus that decodes the LDPC encoded signal.

Landscapes

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

Abstract

A communication apparatus according to the present invention is a communication apparatus at a receiving side that decodes an LDPC-encoded codeword, and includes: an intermediate-result retaining unit (21) that retains an intermediate result of a decoding; a row processing unit (22) that repeatedly performs row processing of calculating a column-processing LLR for each column and each row in a check matrix, by a predetermined number of times; and a column processing unit (23) that calculates a row-processing LLR for each column and each row of the check matrix, and further repeatedly performs column processing of holding a minimum value k of absolute values of the row-processing LLR for the row weight in the intermediate-result retaining unit (21). The row processing unit (22) and the column processing unit (23) alternately execute the process in column unit. The column processing unit (23) cyclically updates the minimum k value of each row, and the row processing unit (22) performs calculation using an approximate minimum value.

Description

    TECHNICAL FIELD
  • The present invention relates to an error correction technology in digital communication, and, particularly to a communication apparatus at a receiving side and a decoding method for decoding an LDPC (Low-Density Parity Check)-encoded signal.
  • BACKGROUND ART
  • As basic algorithms of decoding an LDPC code, there are a "Sum-Product algorithm" and a "Min-Sum algorithm". According to these algorithms, the decoding is performed while repeatedly calculating a likelihood ratio (LLR) as probabilistic reliability information of a reception signal (see Nonpatent Document 1). The "Sum-Product algorithm" has high decoding performance, but has high calculation cost for packaging such as the need for holding a table, because a calculation using a mathematical function is required. At least a memory that stores intermediate values by only the number of "1" contained in a binary check matrix of "0" and "1" is necessary. On the other hand, the "Min-Sum algorithm" does not require a mathematical function, and has small calculation cost, but decoding performance is degraded.
  • The "Sum-Product algorithm" is explained. First, at the transmitter side, transmission data is LDPC encoded using a parity check matrix H of M rowsxN columns, and a codeword c= (c1, c2, ... , cN), cn=0, 1 (n=1, 2, ..., N). A modulation such as a BPSK (Binary Phase Shift Keying) modulation is performed to this codeword c, and a modulation signal x=(x1, x2, ..., xN) is sent.
  • On the other hand, the receiver side receives, via an Additive White Gaussian Noise Channel (AWGN channel), a signal y=(y1, y2, ..., yN) as expressed by the following Equation (1) : y n = x n + e n
    Figure imgb0001

    where en is a Gaussian noise series of which average is 0, and a variance σ2=N0/2
  • At the receiver side, a predetermined digital demodulation corresponding to the above BPSK modulation is performed to the modulation signal received via the above channel. Further, iterative decoding by the "Sum-Product algorithm" is executed to a logarithmic likelihood ratio (LLR) obtained from the demodulation result, and a hard decision result is finally output.
  • A conventional decoding method "Sum-Product algorithm" implemented by the above receiver is shown below.
  • (Initialization step)
  • First, the number of repetitions l=1 and the maximum number of repetitions lmax are set, and, as LLR: βmn (l=1) from a bit node to a check node at the initial time, a reception LLR:λn is input as given by the following Equation (2):. β mn 1 = λ n n = 1 , 2 , , N m = 1 , 2 , , M
    Figure imgb0002
  • (Row processing step)
  • Next, as row processing, LLR:αmn (1) at the first repetition (repetition first-time LLR:αmn (1) of a bit n to be sent from the check node m to the bit node n is updated for each m and n by the following Equation (3):
  • Expression 1 α mn 1 = 2 tanh - 1 N m \ n tanh β mnʹ l - 1 2
    Figure imgb0003
  • where N(m) is a set of column numbers having "1" of a m-th row, n' is N(m) other than n, and βmn,(l-1) is LLR from the (l-1)-thbit node to the check node other than an n-th column.
  • (Column processing step)
  • Next, as a column processing, a repetition first-time LLR:βmn (1) of a bit n to be sent from the bit node n to the check node m is updated for each m and n by the following Equation (4):
  • Expression 2 β mn 1 = λ n + M n \ m α mʹn 1
    Figure imgb0004
  • A repetition first-time posterior value βn (1) of a bit n for a hard decision is updated for each n by the following Equation (5) :
  • Expression 3 β n 1 = λ n + M n α n 1
    Figure imgb0005
  • where M(n) is a set of row numbers having "1" of an n-th column, m' is M(n) other than m, and βm'n (1) is LLR from the first check node to the bit node other than an m-th row.
  • (Stop regulation)
  • Thereafter, when the repetition first-time posterior value βn (1) of the bit n is "βn (1)>0", a decoding result is "xn'=1" (where x' corresponds to the original transmission signal x). On the other hand, when "βn (1)≤0", a decoding result is "xn'=0", and a decoding result x'=(x1', x2',...., XN') is obtained.
  • When a result of parity check is "Hx'=0" or when the number of repetitions is "l=1max" (when any one of these condition is satisfied), a decoding result x' in this case is output. When none of the two conditions is satisfied, "l=l+1" is set, and the process control returns to the above row processing. Thereafter, the calculation is sequentially performed.
  • Nonpatent Document 1: Low-Density Parity-Check Codes and Its Decoding Algorithm, LDPC (Low Density Parity Check) code/sum-product decoding algorithm, Tadashi Wadayama, Triceps.
  • DISCLOSURE OF INVENTION PROBLEM TO BE SOLVED BY THE INVENTION
  • However, while the above "Sum-Product algorithm" is known to have high decoding performance, this algorithm requires a repeated calculation (calculation of tanh-1), using a mathematical function. Therefore, this algorithm has a problem in that calculation load at the receiver side becomes high whether hardware or software is used to realize this algorithm. There is also a method of holding a predetermined table to decrease the calculation load (table lookup). However, this method increases the memory capacity necessary to store the table.
  • In the above "Sum-Product algorithm", at least a memory that stores intermediate values (algorithmic likelihood ratios of each row, updated values for each repetition, etc.) by only the number of "1 (weight)" contained in a binary check matrix of "0" and "1" is necessary. That is, a consumption amount of the memory becomes very large. Further, the above "Sum-Product algorithm" has also problems that the number of quantization bits is large, the number of repetitions is large, etc.
  • The present invention has been achieved to solve the above problems in the conventional technology and it is an object of the present invention to provide a communication apparatus and a decoding method, capable of reducing calculations and a memory capacity required in decoding of an LPDC encoded codeword. The invention also has an object of providing a communication apparatus and a decoding method, capable of achieving a reduction in the quantization size and a reduction in the number of repetitions.
  • MEANS FOR SOLVING PROBLEMS
  • To solve the problems and achieve the object mentioned above, there is provided a communication apparatus that decodes an LDPC-encoded codeword using a check matrix including: a retaining unit that retains an intermediate value obtained by a predetermined process in a decoding algorithm; a row processing unit that performs row processing of calculating a logarithmic likelihood ratio (logarithmic likelihood ratio to be sent from a check node to a bit node: column-processing LLR) used in the column processing based on an absolute value of a logarithmic likelihood ratio (logarithmic likelihood ratio to be sent from a bit node to a check node: row-processing LLR) corresponding to a row weight of a check matrix; and a column processing unit that calculates a row-processing LLR to be used in the row processing based on a column-processing LLR corresponding to a column weight, and stores a minimum value of absolute values of the row-processing LLR in the retaining unit. The column processing unit performs decoding while updating the minimum k value of the row.
  • EFFECT OF THE INVENTION
  • According to the present invention, in the LDPC decoding, an absolute value of an LLR for row processing is reduced to a minimum k value in a row unit by a cyclic structure. Therefore, there is an effect that the memory capacity required to store the absolute values can be substantially reduced. Further, according to the present invention, probability propagation can be performed more efficiently than that performed by the conventional "Min-Sum algorithm". Therefore, the number of repetitions of decoding can be substantially reduced. As a result, the calculations in decoding can be substantially reduced.
  • BRIEF DESCRIPTION OF DRAWINGS
    • [Fig. 1] Fig. 1 is a configuration example of a communication system including an LDPC encoder and an LDPC decoder.
    • [Fig. 2] Fig. 2 is a configuration example of a row processing unit that executes a row processing step of the "Min-Sum algorithm" in the LDPC decoder.
    • [Fig. 3] Fig. 3 is a configuration example of a column processing unit that performs a column processing step of the "Min-Sum algorithm" in the LDPC decoder.
    • [Fig. 4] Fig. 4 is a flowchart of a process according to the "Min-Sum algorithm".
    • [Fig. 5-1] Fig. 5-1 is a configuration example of an LDPC decoder according to a first embodiment.
    • [Fig. 5-2] Fig. 5-2 is a configuration example of the LDPC decoder according to the first embodiment.
    • [Fig. 6] Fig. 6 is a configuration example of a row processing unit that performs row processing according to the "Cyclic approximated min algorithm".
    • [Fig. 7-1] Fig. 7-1 is a configuration example of a column processing unit that performs column processing according to the "Cyclic approximated min algorithm".
    • [Fig. 7-2] Fig. 7-2 is a configuration example of the column processing unit that performs column processing according to the "Cyclic approximated min algorithm".
    • [Fig. 8] Fig. 8 is a schematic diagram for explaining column processing of n=15 when information of n=15 is held in a Min2LLR.
    • [Fig. 9] Fig. 9 is a flowchart of a process according to the "Cyclic approximated min algorithm".
    • [Fig. 10] Fig. 10 is an example of column number notation.
    • [Fig. 11] Fig. 11 is a graph of results of a comparison simulation between the "Cyclic approximated min algorithm" and the "Min-Sum algorithm".
    • [Fig. 12] Fig. 12 is a graph of results of a comparison simulation between the "Cyclic approximated min algorithm" and the "Min-Sum algorithm".
    • [Fig. 13]. Fig. 13 is a configuration example of an LDPC decoder according to a second embodiment.
    • [Fig. 14] Fig. 14 is a graph of performance comparison regarding the number of repetitions.
    • [Fig. 15] Fig. 15 is a configuration example of a row processing unit that performs row processing according to a third embodiment.
    • [Fig. 16] Fig. 16 is a configuration example of a row processing unit that performs row processing according to a fourth embodiment.
    • [Fig. 17] Fig. 17 is a graph of results of comparison between a decoding algorithm using the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" applied to the "δ min algorithm", and the "Sum-Product algorithm".
    • [Fig. 18] Fig. 18 is a configuration example of a row processing unit that performs row processing according to a fifth embodiment.
    • [Fig. 19] Fig. 19 is a configuration example of a column processing unit that performs column processing in the "Serial cyclic approximated min algorithm" according to a sixth embodiment.
    EXPLANATIONS OF LETTERS OR NUMERALS
  • 1
    LDPC encoder
    2
    Modulator
    3
    Communication channel
    4
    Demodulator
    5
    LDPC decoder
    11
    Reception-LLR calculating unit
    12
    Decoding core unit
    21, 21a
    Decoding core unit
    22, 22-1, 22-2, 22-G
    Row processing unit
    23, 23-1, 23-2, 23-G
    Column processing unit
    24
    Decoding-result determining unit
    25, 25a
    Controller
    31, 31a, 31b, 31c
    Minimum-value selecting unit
    32
    Sign calculating unit
    33
    LLR calculating unit
    41
    α adding unit
    42
    λ adding unit
    43
    Minimum-k-value comparing unit
    44
    Sign calculating unit
    45
    Switch
    BEST MODE(S) FOR CARRYING OUT THE INVENTION
  • Exemplary embodiments of a communication apparatus and a decoding method according to the present invention are explained in detail below with reference to the accompanying drawings. Note that the present invention is not limited to the embodiments. The present invention can be applied to decoding at a terminal and a base station, in wireless communication through, for example, a portable telephone. The present invention can also be applied to decoding in satellite communication, an HDD, optical communication, a wireless LAN, a quantum code, and the like.
  • First Embodiment
  • Described first is positioning, in a communication system, of a communication apparatus and an LDPC decoder that implements a decoding method according to the present invention. Fig. 1 is a configuration example of the communication system including an LDPC encoder and an LDPC decoder. In Fig. 1, a communication apparatus at the transmission side (hereinafter, "transmitting device") includes an LDPC encoder 1 and a modulator 2, and a communication apparatus at the receiving side (hereinafter, "receiving device") includes a demodulator 4 and an LDPC decoder 5.
  • A flow of encoding and decoding in the communication system that employs an LDPC code is briefly explained. The LDPC encoder 1 within the transmitting device generates a generation matrix G of K rows×N columns according to a known method (K: an information length, N: a codeword length). The LDPC encoder 1 receives a message (m1, m2, ..., mK) of the information length K, and generates a codeword C, using this message and the above generated matrix G, as represented by the following Equation (6): C = m 1 , m 2 , , m k G = c 1 c 2 c N
    Figure imgb0006
    When a parity check matrix for the LDPC is H (M rows×N columns), the generation matrix G satisfies GHT=0 (T is a transposed matrix), H (c1, c2, ..., cN) T=0 .
  • The modulator 2 performs a digital modulation to the codeword C generated by the LDPC encoder 1, by a predetermined modulation system such as BPSK, multivalue PSK, multivalue QAM, etc., and transmits a modulation signal x=(x1, x2, ..., xN) to the receiving device via a communication channel 3.
  • On the other hand, in the receiving device, the demodulator 4 performs a digital demodulation corresponding to the above modulation system such as BPSK, multivalue PSK, multivalue QAM, etc. to a modulation signal y= (y1, y2, ..., yN) that is received via the communication channel 3. Further, the LDPC decoder 5 performs decoding according to the decoding algorithm of the present embodiment, described later, using a logarithmic likelihood ratio (LLR) obtained from the demodulation result, and outputs a hard decision value (corresponding to the original message m1, m2, ..., mK) as a decoding result.
  • Before explaining the decoding algorithm of the present embodiment, the "Min-Sum algorithm" is explained as the conventional decoding algorithm that is the basis of the decoding algorithm.
  • According to the "Min-Sum algorithm", the initialization step similar to that of the "Sum-Product algorithm" described above is first performed. Next, the row processing step of the "Min-Sum algorithm" is performed. Thereafter, the column processing step and the stop regulation similar to those of the "Sum-Product algorithm" described above are performed to calculate and update probability information.
  • Fig. 2 is a configuration example of a row processing unit that performs a row processing step of the "Min-Sum algorithm" in an LDPC decoder. This row processing unit includes: a minimum-value selecting unit 101 including a memory unit 111 that stores therein the LLR: βmn' (l=1) of a row weight portion of the parity check matrix H, and a comparator 112 that compares sizes of the LLR and outputs a minimum value of the LLR; a sign calculating unit 102 including a memory unit 113 that stores therein a sign of an LLR of the row weight portion, and a multiplying unit 114 that multiplies signs of the LLR (+ or -); and an LLR calculating unit 103 that calculates an LLR:αmn (1) by multiplying a minimum value obtained from the minimum-value selecting unit 101 with a multiplication result of signs (+ or -) obtained from the sign calculating unit 102.
  • In the row processing unit, the comparator 112 of the minimum-value selecting unit 101 includes a plurality of comparators of two inputs (a, b). Each comparator receives LLR for comparison from the above memory unit 111 and a former-stage comparator (the first-stage comparator receives LLR from only the memory unit 111), and when "|a|<|b|", each comparator outputs |a|. In other cases, each comparator outputs |b|, thereby outputting a minimum value of absolute values of the LLR. The LLR calculating unit 103 multiplies the above minimum value with the multiplication result of the above sign, and delivers the LLR:αmn (1) as the multiplication result, to the column processing unit.
  • Fig. 3 is a configuration example of the column processing unit that performs a column processing step of the "Min-Sum algorithm" in an LDPC decoder. This column processing unit retains the LLR:αm'n (1) of a column weight of the parity check matrix H, and adds each LLR, thereby outputting the repetition first-time posterior value βn (1).
  • (Row processing step)
  • The row processing of the above "Min-Sum algorithm" can be generalized by the following Equation (7). In this case, as the row processing, the repetition first-time LLR: αmn (1) of the bit n from the check node m to the bit node n is updated for each of m and n by the following Equation (7):
  • Expression 4 α mn l = 2 tanh - 1 N m \ n tanh β mnʹ l - 1 2 = 2 tanh - 1 N m \ n sgn β mnʹ l - 1 N m \ n tanh β mnʹ l - 1 2 = N m \ n sgn β mnʹ l - 1 2 tanh - 1 N m \ n tanh β mnʹ l - 1 2 N m \ n sgn β mnʹ l - 1 min N m \ n β mnʹ l - 1
    Figure imgb0007
  • where min |βmn' (l-1)| is the minimum value of absolute values of the LLR:βmn' (l-1) excluding the n-th column in the m-th row of the parity check matrix H, and sgn (βmn' (l-1)) is the sign of the LLR:βmn,(l-1) excluding the n-th column.
  • As described above, according to the "Min-Sum algorithm", after a row processing step, processing based on column processing and stop regulation similar to those of the "Sum-Product algorithm" is performed to obtain a final sign result.
  • Next, the flow of the process according to the "Min-Sum algorithm" is briefly explained referring to Fig. 4.
  • According to the "Min-Sum algorithm", a reception LLR is calculated from reception information (steps S1, S2), and the calculation result is set in the memory unit 111 as an initial value. Further, the number of repetitions is initialized as l=1 (step S3). Row processing is performed first time in the iterative decoding calculation (repetition first-time decoding calculation) (step S4: the first iterative decoding to the last iterative decoding). Next, column processing in the repetition first-time decoding calculation is performed, and thereafter, a posterior value calculated in the repetition first-time decoding calculation is subjected to a hard decision. This determination value is determined as a decoding result, and a parity check is performed (stop regulation). In the above stop regulation, when the parity check result becomes OK or when the number of repetitions becomes l=1max, a decoding result this time is finally output (step S5).
  • In the above "Min-Sum algorithm", calculations and the required memory capacity are reduced from those of the "Sum-Product algorithm", by approximating the row processing of the "Sum-Product algorithm", i.e., Equation (3). However, in the above "Min-Sum algorithm", a large memory capacity corresponding to the number of "1 (weight)" contained in the parity check matrix H is necessary to store the intermediate value. Further improvement is necessary to reduce the required memory capacity.
  • The decoding algorithm according to the present embodiment explained below achieves a further reduction in required memory capacity and calculations, and is the improved algorithm of the "Min-Sum algorithm" as the approximated decoding method of the "Sum-Product algorithm", for example.
  • A configuration of the LDPC decoder 5 constituting the receiving device according to the present invention, and a decoding method (decoding algorithm) performed by the LDPC decoder 5, are explained in detail below with reference to the drawings.
  • Fig. 5-1 depicts a configuration of the LDPC decoder 5 according to the present embodiment. This LDPC decoder 5 includes a reception-LLR calculating unit 11 that calculates the reception LLR from the reception information, and the decoding core unit 12 that performs decoding according to the present embodiment. The decoding core unit 12 includes an intermediate-result retaining unit 21 configured by a memory which stores therein an intermediate result (intermediate value) of decoding, a row processing unit 22 that performs row processing according to the present embodiment, a column processing unit 23 that performs column processing according to the present embodiment, a decoding-result determining unit 24 that performs a hard decision on a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according to the present embodiment, and a controller 25 that performs a repetition control of decoding.
  • The decoding algorithm according to the present embodiment is a method of cyclically updating only the absolute value of the LLR of the minimum k value. Because this algorithm is the method of decoding using an approximate minimum value instead of an accurately minimum value, this method is hereinafter called the "Cyclic approximated min algorithm". The minimum k value represents "from the minimum value to the k-th value in the ascending order.
  • The "Cyclic approximated min algorithm" executed in the receiving device is shown below.
  • (Initialization step)
  • First, the number of repetitions 1=1 and the maximum number of repetitions lmax are set. The LLR of the minimum k value of the m-th row at the initial time is set as βmn(i) (0), and a reception LLR:λn is input to obtain Bmn(i) as in the following Equation (8). As a sign of the LLR:βmn (0) of the m-th row at the initial time, sgn(λn) is input to obtain Sm as in the following Equation (8):
  • Expression 5 B mn i = β mn i 0 = min n N m \ n 1 , n 2 , , n i - 1 λ n , i 1 k S m = n N m sgn λ n n i = arg min n N m \ n 1 , n 2 , , n i - 1 λ n n 0 = φ
    Figure imgb0008
  • where Bmn(i) is an absolute value of the LLR:βmn(i) of the minimum k value of the m-th row, n(i) is a column number of the minimum i-th LLR in Bmn(i), and Sm is a product of signs (+ or -) of the LLR:βmn of the m-th row.
  • (Row processing step)
  • In the present embodiment, a starting column of the row processing is arbitrary. At the stage where the process ends to the last column, decoding is performed again cyclically from the first column. As the row processing, the repetition first-time LLR: αmn (1) of the bit n to be sent from the check node m to the bit node n is updated for 1≤n≤N and for each m by the following Equation (9) :
  • Expression 6 α mn 1 = N m \ n < n sgn β mnʹ 1 N m \ n > n sgn β mnʹ l - 1 min N k m \ n B mnʹ = S m sgn β mn l - 1 min N k m \ n B mnʹ = S m ʹ min N k m \ n B mnʹ S m ʹ = S m sgn β mn l - 1
    Figure imgb0009
  • where Nk(m) is the set of n(i) of the m-th row, and is expressed as Nk(m)={n (1), n(2), ..., n(k)}. Specifically, when the current column number is n, a column number that satisfies "n'<n" takes the product of signs of the LLR:βmn' (1) updated in the first-time column processing, and a column number that satisfies "n'>n" takes the product of signs of the LLR:βmn' (l-1) updated by the (1-1)-th time column processing. A result of multiplying these results by the minimum LLR:min[βmn'] in the minimum k value of the m-th row is set as the updated LLR:αmn (1) of the column number n. In the present embodiment, the term of multiplying the product of the signs of βmn' (1) by the product of the signs of βmn' (l-1) is substituted by the term of multiplying Sm updated at the (1-1)-th time by the sign of βmn' updated at the (l-1)-th time. With this arrangement, calculations and the required memory capacity can be reduced.
  • (Column processing step)
  • Next, as the column processing, the repetition first-time LLR:βmn (1) of the bit n to be sent from the bit node n to the check node m is updated for each m and n by the following Equation (10):
  • Expression 7 β mn 1 = λ n + M n \ m α mʹn 1 S m = S m ʹ sgn β mn 1 n i = arg min N k m \ n 1 , n 2 , , n i - 1 n i B mnʹ β m 1 B mn i = min N k m \ n 1 , n 2 , , n i - 1 n i B mnʹ β m 1 , i 1 k
    Figure imgb0010
  • Specifically, in the column number n, a result of the addition of the reception LLR:λn and a total value of the LLR:αm'n (1) other than the m-th row LLR updated in the first-time row processing is expressed as the updated LLR:βmn' (1). The above Sm' is multiplied by the sign (+ or -) of βmn (1) updated in the first-time column processing, thereby updating Sm to be used in the row processing. The two equations in Equation (10) prescribe the sort process (minimum k value) of Bmn(1).
  • To perform a hard decision for each n, the repetition first-time posterior value βn (1) of the bit n is updated by the following Equation (11);
  • Expression 8 β n 1 = λ n + M n α n 1
    Figure imgb0011
  • (Stop regulation)
  • Thereafter, when the repetition first-time posterior value βn (1) of the bit n is "βn (1)>0", for example, a decoding result is "xn'=1" (where x' corresponds to the original transmission signal x). On the other hand, when "βn (1)≤0", a decoding result is "xn'=0", and a decoding result x'= (x1', x2', ... , XN') is obtained.
  • When the result of parity check is "Hx'=0" or when the number of repetitions is "l=lmax" (when any one of these condition is satisfied), a decoding result x' in this case is output. When none of the two conditions is satisfied, "1=1+1" is set, and the process control returns to the above row processing. Thereafter, the calculation is sequentially performed.
  • A characteristic operation of the LDPC decoder 5 that performs the above "Cyclic approximated min algorithm" is explained in detail with reference to a configuration diagram.
  • Fig. 6 is a configuration example of the row processing unit 22 that performs row processing according to the "Cyclic approximated min algorithm". The row processing unit 22 includes a minimum-value selecting unit 31, a sign calculating unit 32, and an LLR calculating unit 33. In Fig. 6, a Min1LLR (minimum LLR of the m-th row) is Bmn(1), a Min2LLR (second minimum LLR of the m-th row) is Bmn(2), and these are the values retained in the intermediate-result retaining unit 21. In Fig. 6, Sm and the "sign of the LLR:βmn of the m-th row and n-th column of the (1-1)-th time" are also the values retained in the intermediate-result retaining unit 21.
  • The minimum-value selecting unit 31 selects the Min2LLR(Bmn(2)) when the column number n to be row-processed coincides with the column number n (1) of the Min1LLR(Bmn(1)), and selects the Min1LLR(Bmn(1)) in other cases, and outputs the selected result. The sign calculating unit 32 multiplies the "Sm updated by the (1-1)-th time column processing" by the "sign of the LLR:βmn of the m-th row and n-th column of the (1-1)-th time", and outputs Sm' as a result of the multiplication. In this case, Sm' is retained in the intermediate-result retaining unit 21. The LLR calculating unit 33 multiplies the minimum LLR obtained from the minimum-value selecting unit 31 by the multiplication result Sm' of the sign (+ or -) obtained from the sign calculating unit 32, thereby calculating LLR:αmn (1). Based on this, according to the "Min-Sum algorithm", the memory that has been necessary by the row weight portion can be reduced to the k value portion.
  • Fig. 7-1 is a configuration example of the column processing unit 23 that performs column processing according to the "Cyclic approximated min algorithm". This column processing unit 23 includes an α adding unit 41, a λ adding unit 42, a minimum-k-value comparing unit 43, and a sign calculating unit 44. In the present embodiment, k=3 is described as an example. In Fig. 7-1, LLR of a column weight portion, αmn, λn, Sm', Min1LLR, Min2LLR, Min3LLR (the third-minimum LLR of the m-th row) are the values retained in the intermediate-result retaining unit 21.
  • In the column processing unit 23, the α adding unit 41 adds all LLR:αm'n (1) other than those of the m-th row LLR updated in the first-time row processing. Further, the λ adding unit 42 adds the reception LLR:λn to the result of the addition by the α adding unit 41, and outputs βmn (1). The minimum-k-value comparing unit 43 (k=3) receives |βmn (1)|. Although not shown in Fig. 7-1, when n of the n-th column to be column processed coincides with any one of n(1), n(2), n(3) indicating the column numbers corresponding to Bmn(1); Bmn(2), Bmn(3), held in the Min1LLR, Min2LLR, Min3LLR respectively, for example, Bmn(i) of n=n(i) is thinned, and the operation as shown in Fig. 8 is performed. Specifically, information held in the Min2LLR is deleted, and information held in the Min3LLR is shifted to the Min2LLR. A maximum value "FFFF", for example (in the case of 16 bits), is stored in the Min3LLR. Accordingly, a comparison process excluding the column to be processed can be performed, and at least the Min3LLR can be necessarily updated by the column processing. After that, as shown in Fig. 7-1, |βmn (1)| is compared with each of the Min1LLR, Min2LLR, Min3LLR. When "|βmn (1)|<Min3LLR", the LLR of the minimum 3 value is updated. On the other hand, the sign of βmn (1) output by the λ adding unit 42 is retained in the intermediate-result retaining unit 21, as the "sign of the LLR: βmn (1) of the m-th row and n-th column of the first time". Further, the sign calculating unit 44 multiplies Sm' updated in the first-time row processing, by the sign of the above βmn (1), and updates Sm retained in the intermediate-result retaining unit 21, using a result of this multiplication. In comparing |βmn (1)| with each of the Min1LLR, Min2LLR, Min3LLR, |βmn (1)| is first compared with the Min2LLR as the center value of Bmn(i), and thereafter, comparison is performed in a tree shape as shown in Fig. 7-1. For example, there is an effect that the execution time becomes {(k+1)/2}/2 (where k is an odd number), as compared with the effect when |βmn (1)| is compared first with the Min1LLR that becomes the minimum value. When k is an even number, there are two center values of Bmn(i). In this case, any one of the two values can be compared first. When k is an even number, there is an effect that the execution time becomes {k/2+1}/k (where k is an even number), as compared with the effect when |βmn (1)| is compared first with the Min1LLR that becomes the minimum value.
  • The same process as described above can also be achieved with the configuration shown in Fig. 7-2. In this case, the α adding unit 41 performs only the addition of all the LLR of the column weight portion, and thereafter, the λ adding unit 42 adds λn, outputs a result of the addition to the decoding-result determining unit 24, and subtracts αmn as the LLR of the m-th row. In this procedure, the same result as obtained in the above process can also be obtained. In this case, the configuration of the LDPC encoder becomes as shown in Fig. 5-2.
  • The flow of the process in the "Cyclic approximated min algorithm" according to the present embodiment is explained with reference to Fig. 9.
  • According to the "Cyclic approximated min algorithm", the reception-LLR calculating unit 11 calculates the reception LLR from the reception information (steps S11, S12), and sets a result of the calculation to the intermediate-result retaining unit 21, as an initial value (step S13). The controller 25 initializes the number of repetitions as 1=1 (step S13). The calculation of Equation (8) is cyclically performed from n=1 to n=N, using the λ adding unit 42, the minimum-k-value comparing unit 43, and the sign calculating unit 44, out of the column processing unit 23 (step S13).
  • Next, the decoding core unit 12 performs the first-time (first-time to the last-time) iterative decoding calculation (step S14). Specifically, as the first-time iterative decoding, the row processing unit 22 performs the row processing (using the reception LLR) to the row having "1" in the first column, and delivers a result of the calculation to the column processing unit 23. Thereafter, the column processing unit 23 performs the column processing of the first column, and retains (updates) Bmn(i) and Sm, as a result of the calculation, in the intermediate-result retaining unit 21. Thereafter, processing similar to the above is performed in the order of the second column, third column, ..., N-th column, and Bmn(i) and Sm are retained each time in the intermediate-result retaining unit 21 (corresponding to the iterative decoding first time). At the second and subsequent iterative decoding, the row processing is performed using the LLR and Sm updated in the processing one before. In other cases, decoding is performed as in the first time.
  • After executing the first-time iterative decoding, the decoding-result determining unit 24 performs a hard decision on the posterior value calculated at the repetition first time, determines this determination value as the decoding result x', and performs a parity check (stop regulation). In the stop regulation, when a result of the parity check is OK ("Hx'=0") or when the number of repetitions is l=1max, the decoding result x' at this time is finally output (step S15). When the above two conditions are not satisfied, the controller 25 sets l=l+1, and the decoding core unit 12 performs the (l+1)-th time iterative decoding.
  • Deletion of the memory size according to a notation method of a column number is explained next. Fig. 10 depicts a column number notation according to the present embodiment. In the "Cyclic approximated min algorithm", column numbers are noted in the ascending order from n=0, for example. Conventionally, a column number n is expressed as the column number itself (absolute column number) of the parity check matrix. However, in the present embodiment, column numbers are expressed as relative column numbers, such as a minimum column number of "1" of the m-th row in the parity check matrix is expressed as n=0, a column number of the next "1" of the m-th row is expressed as n=1, and thereafter, the column numbers are expressed as n=2, 3, ..., at each "1". That is, conventionally, when the absolute column number of "1" in the parity check matrix is "32768", the number of bits necessary to express the column number is 15 bits. On the other hand, according to the present embodiment, when the row weight is eight, the memory size can be reduced to three bits which can express 0 to 7. When the row weight is 16, the memory size can be reduced to four bits which can express 0 to 15.
  • As described above, according to the present embodiment, the LDPC decoding is performed to minimize the absolute value |βmn| of the LLR for the row processing, to the minimum k value in row unit by the cyclic structure. Therefore, the memory capacity required to store the absolute values can be substantially reduced. When the row weight is 20 and also k=3, for example, the required memory capacity can be reduced to 3/20 of the conventional capacity. Further, by changing the column number from the absolute column number (1, 3, 10, 15 ...) to the relative column number (0, 1, 2, 3 ...), the required memory capacity can be further reduced.
  • In the "Cyclic approximated min algorithm" according to the present embodiment, calculation and updating of probability information (LLR) by the row processing and column processing are performed cyclically for each one bit. Accordingly, probability propagation can be performed more efficiently than that according to the conventional "Min-Sum algorithm".
  • For example, Fig. 11 and Fig. 12 depict results of a comparison simulation between the "Cyclic approximated min algorithm" and the "Min-Sum algorithm". An LDPC code has a maximum row weight of 8 in the irregular EG code. In Fig. 11, the number of decoding iterations is fixed to 100 times, and the number of minimum values stored in the "Cyclic approximated min algorithm" is changed to 3, 4, 5, and the performance is compared with that of the "Cyclic approximated min algorithm". In Fig. 11, CyclicXmin is the "Cyclic approximated min algorithm" holding the minimum X value, and Min-Sum is the "Min-Sum algorithm". As is clear from Fig. 11, it can be confirmed that decoding performance is not degraded while decreasing the memory, by the "Cyclic approximated min algorithm" according to the present embodiment.
  • Fig. 12 depicts a result of comparing the average number of repetitions required until decoding succeeds, in the "Cyclic approximated min algorithm" and the "Min-Sum algorithm". In Fig. 12, CyclicXmin is the "Cyclic approximated min algorithm" holding the minimum X value, and Min-Sum is the "Min-Sum algorithm". As is clear from this result, probability propagation is performed efficiently in the "Cyclic approximated min algorithm", and the decoding number of repetitions can be substantially reduced. That is, according to the present embodiment, the calculations in decoding can be substantially reduced by the "Cyclic approximated min algorithm".
  • While, in the present embodiment, the LLR to be row processed has one value, the k number can be any number equal to or higher than two values. The present embodiment explains, by way of example and without limitation, that the row processing and the column processing are performed one time alternately, and the updating of the probability information (LLR) by the row processing and the column processing is cyclically performed each one bit. Alternatively, after the row processing is performed a plurality of times, the column processing can be performed by a plurality of times. That is, calculation and updating of probability information (LLR) by the row processing and the column processing can be performed cyclically for a plurality of bits each time.
  • Second Embodiment
  • A receiving device and a decoding method according to a second embodiment are explained next. LDPC decoding according to the present embodiment can be applied when the calculation and updating of the probability information (LLR) by the row processing and column processing are performed for each one bit or a predetermined plurality of bits. For example, the number of repetitions can be reduced by parallelizing calculations. In the present embodiment, the "Cyclic approximated min algorithm" is executed using what is called "Overlapped" Bmn c and Sm, by arranging such that the Bmn(i) and Sm of the intermediate-result retaining unit are one set regardless of the number of parallelization, and parallelized all processing units update the same Bmn c and Sm. The decoding algorithm according to the present embodiment is hereinafter called the "Overlapped cyclic approximated min algorithm".
  • The "Overlapped cyclic approximated min algorithm" executed by the receiving device according to the present embodiment is shown below.
  • (Initialization step)
  • First, the number of repetitions l=1 and the maximum number of repetitions lmax are set. Further, a reception LLR:λn is input, and Bmn(i) c is obtained as given by the following Equation (12), assuming an LLR of the minimum k value of the m-th row at the initial time is βmn(i) (0). As a sign of the LLR:βmn (0) in the m-th row at the initial time, sgn(λn) is input, and Sm is obtained as shown by the following Equation (12):
  • Expression 9 B mnʹ C = β mn i 0 = min n N m \ n 1 , n 2 , , n i - 1 λ n , i 1 k S m = n N m sgn λ n n i = arg min n N m \ n 1 , n 2 , , n i - 1 λ n n 0 = φ
    Figure imgb0012
  • where Bmn(i) c is an absolute value of the LLR:βmn(i) of the minimum k value of the m-th row and is used in common in the parallel processing, and n(i) is a column number of the minimum i-th LLR in Bmn(i) c.
  • (Row processing step)
  • In the present embodiment, a starting column of each row processing is arbitrary. At the stage where the processing ends up to the final column, decoding is performed again cyclically from the first column. As the row processing, the repetition first-time LLR: αmn (1) of the bit n to be sent from the check node m to the bit node n is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m, where G is a parallel number, NG is a column number that each parallelized decoding circuit processes, and G·Ng=N, by the following Equation (13):
  • Expression 10 α mn 1 = N m \ n < g N G sgn β mnʹ 1 N m \ n > g N G sgn β mnʹ l - 1 min N k m \ n B mnʹ C = S m sgn β mnʹ l - 1 min N k m \ n B mnʹ C = S m ʹ min N k m \ n B mnʹ C S m ʹ = S m sgn β mn l - 1
    Figure imgb0013
  • Specifically, for example, G row processing units allocated to the G columns, into which the column is divided for each column number: NG, perform the row processing in parallel. The G row processing units execute the parallel processing, and perform the same operation as that of the "Cyclic approximated min algorithm", except that all the processing units use the same Bmn c.
  • (Column processing step)
  • Next, as the column processing, the repetition first-time LLR:βmn (1) of the bit n to be sent from the bit node n to the check node m is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m by the following Equation (14). That is, in the present embodiment, after the row processing is performed in parallel as described above, for respective columns are performed in parallel the column processing represented by the following Equation (14):
  • Expression 11 β mn 1 = λ n + M n \ m α mʹn 1 S m = S m ʹ sgn β mn 1 n i = arg min N k m \ n 1 , n 2 , , n i - 1 n i B mnʹ C β m 1 B mn i C = min N k m \ n 1 , n 2 , , n i - 1 n i B mnʹ C β m 1 , i 1 k
    Figure imgb0014
  • To perform a hard decision for each n, the repetition first-time posterior value βn (1) of the bit n is updated by the following Equation (15):
  • Expression 12 β n 1 = λ n + M n α n 1
    Figure imgb0015
  • The stop regulation is the same as that of the "Cyclic approximated min algorithm" described above.
  • Described below is a configuration and operation of the LDPC decoder 5 according to the second embodiment that achieves the above "Overlapped cyclic approximated min algorithm".
  • Fig. 13 is a configuration example of the LDPC decoder 5 according to the present embodiment. The LDPC decoder 5 includes the reception-LLR calculating unit 11 that calculates the reception LLR from the reception information, and a decoding core unit 12a that performs decoding of the present embodiment. The decoding core unit 12a includes an intermediate-result retaining unit 21a including a memory which stores therein an intermediate result (intermediate value) of decoding, row processing units 22-1 to 22-G that perform row processing (parallel processing) according to the present embodiment, column processing units 23-1 to 23-G that perform column processing (parallel processing) of the present embodiment, the decoding-result determining unit 24 that performs a hard decision of a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according to the present embodiment, and a controller 25a that performs a repetition control of decoding.
  • In Fig. 13, the LDPC decoder 5 of the present embodiment uses in common Bmn c and Sm retained by the intermediate-result retaining unit 21a following Equations (12), (13), and (14), when respective row processing units and respective column processing units perform processing in parallel, thereby updating Bmn c and Sm, respectively. With this parallel processing, Bmn c and Sm are rapidly updated according to the parallel number, which substantially reduces the number of decoding iterations.
  • According to the present embodiment, in the parallel processing, when calculation of the same row occurs in the same clock and when the same buffer is referenced, various measures are taken, such as a memory access priority order is set to each processing unit, a memory bank is partitioned, and the timing of the memory access is adjusted using a shift register.
  • As described above, in the "Overlapped cyclic approximated min algorithm" according to the present embodiment, the row processing and the column processing are performed in parallel using the "Cyclic approximated min algorithm" described above. Further, the intermediate-result retaining unit that retains the minimum k value updated in each column processing performed in parallel is shared, and the minimum k value is updated in each column processing performed in parallel. With this arrangement, the number of decoding iterations can be substantially reduced as compared with the decrease according to the "Min-Sum algorithm" and the first embodiment described above.
  • Fig. 14 depicts a performance comparison regarding the number of repetitions. Specifically, the repetition performance of the "Overlapped cyclic approximated min algorithm" is compared with the repetition performance of the "Cyclic approximated min algorithm", and the "Min-Sum algorithm", respectively when the parallel number is 2, in the state that the number of decoding iterations is fixed. In Fig. 14, when the number of decoding iterations is limited to a small number, it can be confirmed that the decoding performance of the "Cyclic approximated min algorithm" is higher than the decoding performance of the conventional method of the "Min-Sum algorithm", and that the "Overlapped cyclic approximated min algorithm" has the decoding performance of the same level of the decoding performance by about the half number of decoding iterations of the "Cyclic approximated min algorithm". In Fig. 14, the number of decoding iterations is about a half because the parallel number is 2. When the "Overlapped cyclic approximated min algorithm" is used, the number of repetitions becomes "1/parallel number" of the "Cyclic approximated min algorithm".
  • Third Embodiment
  • A receiving device and a decoding method according to a third embodiment are explained below. In the present embodiment, the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Cyclic approximated min algorithm" according to the first embodiment or the "Overlapped cyclic approximated min algorithm" according to the second embodiment are cyclically applied to the "Normalized BP-based algorithm" as the known decoding algorithm using the "Min-Sum algorithm".
  • Before explaining the decoding algorithm of the present embodiment, the known "Normalized BP-based algorithm" that is the basis the decoding algorithm is shown below. The row processing different from that of the "Min-Sum algorithm" is explained.
  • (Row processing step)
  • The row processing of the above "Normalized BP-based algorithm" can be generalized by the following Equation (16). In this case, as the row processing, the repetition first-time LLR:αmn (1) is updated for each of m and n by the following Equation (16), where A is a constant called a normalization factor. In the "Normalized BP-based algorithm", the repetition first-time LLR obtained by the "Min-Sum algorithm" is corrected by the normalization factor A.
  • Expression 13 α mn 1 = 2 tanh -1 N m \ n tanh β mnʹ l - 1 2 = 2 tanh -1 N m \ n sgn β mnʹ l - 1 N m \ n tanh β mnʹ l - 1 2 = N m \ n sgn β mnʹ l - 1 2 tanh -1 N m \ n tanh β mnʹ l - 1 2 1 A N m \ n sgn β mnʹ l - 1 min N m \ n β mnʹ l - 1
    Figure imgb0016
  • The decoding algorithm when the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is applied to the "Normalized BP-based algorithm" is explained below. In the following, explanations are omitted for the processing (initialization, column processing, and stop regulation) similar to that of the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm". The row processing different from that of the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is explained below.
  • (Row processing step using Cyclic approximated min algorithm)
  • In the present embodiment, a starting column of the row processing is arbitrary. At the stage where the processing ends to the last column, decoding is performed again cyclically from the first column. The row processing of the decoding algorithm according to the present embodiment using the "Cyclic approximated min algorithm" can be generalized by the following Equation (17). In this case, as the row processing, the repetition first-time LLR: αmn (1) is updated for each of m and n by the following Equation (17). That is, the repetition first-time LLR obtained by the "Cyclic approximated min algorithm" is corrected by the normalization factor A in the following Equation (17):
  • Expression 14 α mn 1 = 1 A N m \ n < n sgn β mnʹ l - 1 N m \ n > n sgn β mnʹ l - 1 min N k m \ n B mnʹ = 1 A S m sgn β mn l - 1 min N k m \ n B mnʹ = 1 A S m ʹ min N k m \ n B mnʹ .
    Figure imgb0017
  • (Row processing step using Overlapped cyclic approximated min algorithm)
  • The row processing of the decoding algorithm according to the present embodiment using the "Overlapped cyclic approximated min algorithm" can be generalized by the following Equation (18). In this case, as the row processing, the repetition first-time LLR:αmn (1) is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m by the following Equation (18). That is, the repetition first-time LLR obtained by the "Overlapped cyclic approximated min algorithm" is corrected by the normalization factor A in the following Equation (18):
  • Expression 15 α mn 1 = 1 A N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 min N k m \ n B C mnʹ = 1 A S m sgn β mn l - 1 min N k m \ n B C mnʹ = 1 A S m ʹ min N k m \ n B C mnʹ
    Figure imgb0018
  • In the decoding algorithm according to the present embodiment, after the row processing step is performed as described above, processing based on the column processing and the stop regulation similar to those of the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is performed to obtain the final code result.
  • Characteristic operations of the row processing unit of the LDPC decoder 5 that executes the decoding algorithm of the present embodiment are explained below with reference to the drawings. The entire configuration of the LDPC decoder 5 is similar to that shown in Fig. 5 or Fig. 13.
  • Fig. 15 is a configuration example of row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment. The row processing unit includes a minimum-value selecting unit 31a. Configurations similar to those explained with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. The minimum value selecting unit 31a according to the present embodiment corrects the minimum value (Min1LLR or Min2LLR) of the LLR read from the intermediate-result retaining unit 21 (or 21a), using the normalization factor A, for example. Specifically, the minimum value selecting unit 31a performs the normalization by dividing the LLR minimum value by A.
  • As described above, according to the present embodiment, the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is applied to the "Normalized BP-based algorithm" having the better performance than that of the "Min-Sum algorithm". With this arrangement, effects similar to those of the first and second embodiments can be obtained. Further, performance close to that of the "Sum-Product algorithm" can be achieved, regardless of the circuit amount substantially equivalent to that of the "Min-Sum algorithm".
  • In the present embodiment, the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is applied to the "Normalized BP-based algorithm". Alternatively, the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" can also be applied to the known "Offset BP-based algorithm" or other algorithm. In this case also, effects similar to those described above can be obtained.
  • Fourth Embodiment
  • A receiving device and a decoding method according to a fourth embodiment are explained below. In the present embodiment, the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Cyclic approximated min algorithm" according to the first embodiment or the "Overlapped cyclic approximated min algorithm" according to the second embodiment are cyclically applied to the "δ min algorithm" as the known decoding algorithm having superior correction performance of LLR:βmn to that of the "Normalized BP-based algorithm" or the "Offset BP-based algorithm".
  • Before explaining the decoding algorithm of the present embodiment, the known "δ min algorithm" that is the basis of the decoding algorithm is explained. The row processing different from that of the "Min-Sum algorithm" is explained below.
  • (Row processing step)
  • The row processing of the above "δ min algorithm" can be generalized by the following Equation (19). In this case, as the row processing, the repetition first-time LLR:αmn (1) is updated for each of m and n by the following Equation (19). In the row processing of the "δ min algorithm", αmn (1) is calculated by calculating Θ from the absolute value: |βmn' (i-1)| of the LLR updated at the repetition 1-1-th time.
  • Expression 16 α m , n i = N m \ n sgn β mnʹ i - 1 Θ N m \ n β m , i - 1 Θ n A I n I 1 Θ I 2 Θ I A aΘb max min a b - Δ , 0 Δ max 0.9 - a - b / 2 , 0
    Figure imgb0019
  • The decoding algorithm when the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is applied to the "δ min algorithm" is explained below. In the following, explanations are omitted for the processing (initialization, column processing, and stop regulation) similar to that of the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm". The row processing different from that of the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is explained below. In the present embodiment, a starting column of the row processing is arbitrary. At the stage where the processing ends to the last column, decoding is performed again cyclically from the first column.
  • (Row processing step using Cyclic approximated min algorithm)
  • For example, the row processing of the decoding algorithm according to the present embodiment using the "Cyclic approximated min algorithm" can be generalized by the following Equation (20). In this case, as the row processing, the repetition first-time LLR:αmn (1) is updated for 1≤n≤N and for each m by the following Equation (20). In the row processing of the decoding algorithm, αmn (1) is calculated by calculating Θ from the absolute value:Bmn' of the LLR of the minimum k value updated at the repetition l-1-th time.
  • Expression 17 α mn 1 = N m \ n < n sgn β mnʹ l N m \ n > n sgn β mnʹ l - 1 Θ N k m \ n B mnʹ = S m sgn β mn l - 1 Θ N k m \ n B mnʹ = S m ʹ Θ N k m \ n B mnʹ
    Figure imgb0020
  • (Row processing step using Overlapped cyclic approximated min algorithm)
  • The row processing of the decoding algorithm according to the present embodiment using the "Overlapped cyclic approximated min algorithm" can be generalized by the following Equation (21). In this case, as the row processing, the repetition first-time LLR: αmn (1) is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m by the following Equation (21). In the row processing of this decoding algorithm, αmn (1) is calculated by calculating Θ from the absolute value:Bmn' c of the LLR of the minimum k value updated by the parallel processing at the repetition l-1-th time.
  • Expression 18 α mn 1 = N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 Θ N k m \ n B mnʹ C = S m sgn β mn l - 1 Θ N k m \ n B mnʹ C = S m ʹ Θ N k m \ n B mnʹ C
    Figure imgb0021
  • In the decoding algorithm according to the present embodiment, after the row processing step is performed as described above, processing based on the column processing and the stop regulation similar to those of the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is performed to obtain the final code result.
  • Characteristic operations of the row processing unit of the LDPC decoder 5 that executes the decoding algorithm of the present embodiment are explained below with reference to the drawings. The entire configuration of the LDPC decoder 5 is similar to that shown in Fig. 5 or Fig. 13.
  • Fig. 16 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment. Constituent elements similar to those described with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. While the LDPC decoder 5 shown in Fig. 5 is explained as one example, the present embodiment can also be similarly applied to the LDPC decoder 5 shown in Fig. 13.
  • A minimum-value selecting unit 31b according to the present embodiment reads the Min1LLR(Bmn(1)), Min2LLR(Bmn(2)), MinkLLR(Bmnt(k)), and their column numbers from the intermediate-result retaining unit 21, and the calculating unit performs the Θ calculation. That is, in the minimum-value selecting unit 31b according to the present embodiment, the calculating unit performs the following calculation in the "δ min algorithm", to Bmn(k) in which the n-th column to be processed does not coincide with the column number n(k) of Bmn(k) retained in the intermediate-result retaining unit 21.
  • For example, the calculating unit obtains the updated value |αmn (1)| (=Θ [(Bmn']) excluding the sign as represented by the following Equation (22):
  • Expression 19 Θ N k m \ n B mnʹ
    Figure imgb0022
  • Further, by limiting the LLR to be calculated from the k value to the minimum 3 values, calculations can be reduced. The calculating unit obtains the updated value |αmn (1) |(=Θ[(Bmn']) excluding the sign as represented by the following Equation (23):
  • Expression 20 if n = n 1 Θ N k m \ n B mnʹ = B mn 2 Θ B mn 3 else if n = n 2 Θ N k m \ n B mnʹ = B mn 1 Θ B mn 3 else Θ N k m \ n B mnʹ = B mn 1 Θ B mn 2
    Figure imgb0023
  • While the LLR to be calculated is limited from the k value to the minimum 3 values in the above example, the embodiment can also be applied to the case that the LLR is limited to the minimum 4, 5, ... values.
  • As described above, according to the present embodiment, the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is applied to the "δ min algorithm" having the better performance than that of the "Min-Sum algorithm". With this arrangement, effects similar to those of the first and second embodiments can be obtained. Further, performance close to that of the "Sum-Product algorithm" can be achieved, regardless of the circuit amount substantially equivalent to that of the "Min-Sum algorithm". In the present embodiment, description is made for the case that the minimum value of the absolute values of the LLR for the row processing is corrected to the optimum value based on a predetermined correction equation prescribed by the known "δ min algorithm". However, the correction equation is not limited to this, and the correction equation prescribed by the algorithm other than the "δ min algorithm" can also be used. In this case also, effects similar to those described above can be obtained.
  • Fig. 17 depicts a result of comparison between a decoding algorithm having the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" applied to the "δ min algorithm" and the "Sum-Product algorithm". For example, overlap5delta10 is a decoding algorithm (parallel number: 2, minimum 5 values, l=10) according to the present embodiment using the "Overlapped cyclic approximated min algorithm", and Cyclic5delta50 is a decoding algorithm (without parallel, minimum 5 values, 1=50) according to the present embodiment using the "Cyclic approximated min algorithm". Sum-Product100 is the "Sum-Product algorithm" (l=100). These are substantially overlapped. From this result, by applying the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" to the "δ min algorithm", performance approximately the same as that of the "Sum-Product algorithm" can be obtained. Further, the number of decoding iterations can also be substantially reduced.
  • Fifth Embodiment
  • A receiving device and a decoding method according to a fifth embodiment are explained below. In the present embodiment, the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Cyclic approximated min algorithm" according to the first embodiment or the "Overlapped cyclic approximated min algorithm" according to the second embodiment are cyclically applied to the "Sum-Product algorithm".
  • Before explaining the decoding algorithm of the present embodiment, the known "Sum-Product algorithm" that is the basis of the decoding algorithm is explained. In the present embodiment, a method of calculation by tabling the mathematical function, i.e., a general "Sum-Product algorithm" using a TLU (table lookup), is described. The row processing different from that of the "Sum-Product algorithm" explained in the conventional technology is described.
  • (Row processing step (1))
  • The row processing of the "Sum-Product algorithm" using the TLU can be generalized by the following Equation (24). In this case, as the row processing, the repetition first-time LLR: αmn (1) is updated for each of m and n by the following Equation (24). In the row processing of the "Sum-Product algorithm" using the TLU, a calculation using the TLU is performed to the absolute value: |βmn' (l-1)| of the LLR updated at the repetition 1-1-th time.
  • Expression 21 α m , n i = N m \ n sgn β mnʹ i - 1 TLU N m \ n β m , i - 1 TLU n A I n TLU I 1 , TLU I 2 , TLU I A - 1 I A TLU a b 2 tanh -1 tanh a 2 tanh b 2
    Figure imgb0024
  • (Row processing step (2))
  • The row processing of the "Sum-Product algorithm" using the TLU can also be achieved by the method different from the above method. For example, the row processing of the "Sum-Product algorithm" using the TLU different from the above method can be generalized by the following Equation (25). In this case, as the row processing, the repetition first-time LLR:αmn (1) is updated for each of m and n by the following Equation (25):
  • Expression 22 α m , n i = N m \ n sgn β mnʹ i - 1 Ξ N m \ n β m , i - 1 Ξ n A I n I 1 Ξ I 2 Θ Ξ I A aΞb min a b + TLU 1 a + b - TLU 1 a - b
    Figure imgb0025
  • For the TLU1(x), a table is prepared in advance based on the following Equation (26): TLU 1 x = in 1 + exp - x
    Figure imgb0026
  • In the "Sum-Product algorithm" using the TLU, the row processing represented by Equation (24) has a characteristic that while the table becomes large, the number of calculations is small. On the other hand, the row processing represented by Equation (25) has a characteristic that the number of calculations is large although the table becomes small.
  • The decoding algorithm when the "Cyclic approximated min algorithm" is applied to the "Sum-Product algorithm" using the TLU is explained below. In the following, explanations are omitted for the processing (initialization, column processing, and stop regulation) similar to that of the "Cyclic approximated min algorithm". The row processing different from that of the "Cyclic approximated min algorithm" is explained below. In the present embodiment, a starting column of the row processing is arbitrary, and at the stage where the processing ends up to the final column, decoding is performed again cyclically from the first column.
  • (Row processing step using Cyclic approximated min algorithm (1))
  • The row processing of the decoding algorithm according to the present embodiment having the "Cyclic approximated min algorithm" applied to the above row processing step (1) can be generalized by the following Equation (27). In this case, as the row processing, the repetition first-time LLR:αmn (1) is updated for 1≤n≤N and for each m by the following Equation (27). In the row processing of the decoding algorithm, a calculation using the TLU is performed to the absolute value: Bmn' of the LLR of the minimum k value updated at the repetition 1-1-th time.
  • Expression 23 α mn 1 = N m \ n < n sgn β mnʹ l N m \ n > n sgn β mnʹ l - 1 TLU N k m \ n B mnʹ = S m sgn β mn l - 1 TLU N k m \ n B mnʹ = S m ʹ TLU N k m \ n B mnʹ
    Figure imgb0027
  • (Row processing step using Cyclic approximated min algorithm (2))
  • The row processing of the decoding algorithm according to the present embodiment having the "Cyclic approximated min algorithm" applied to the above row processing step (2) can be generalized by the following Equation (28). In this case, as the row processing, the repetition first-time LLR:αmn (1) is updated for 1≤n≤N and for each m by the following Equation (28):
  • Expression 24 α mn 1 = N m \ n < n sgn β mnʹ l N m \ n > n sgn β mnʹ l - 1 Ξ N k m \ n B mnʹ = S m sgn β mn l - 1 Ξ N k m \ n B mnʹ = S m ʹ Ξ N k m \ n B mnʹ
    Figure imgb0028
  • The decoding algorithm when the "Overlapped cyclic approximated min algorithm" is applied to the "Sum-Product algorithm" using the TLU is explained below. In the following, explanations are omitted for the processing (initialization, column processing, and stop regulation) similar to that of the "Overlapped cyclic approximated min algorithm". The row processing different from that of the "Overlapped cyclic approximated min algorithm" is explained below.
  • (Row processing step using Overlapped cyclic approximated min algorithm (1))
  • The row processing of the decoding algorithm according to the present embodiment having the "Overlapped cyclic approximated min algorithm" applied to the above row processing step (1) can be generalized by the following Equation (29). In this case, as the row processing, the repetition first-time LLR:αmn (1) is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m by the following Equation (29). In the row processing of this decoding algorithm, a calculation using the TLU is performed to the absolute value: Bmn' c of the LLR of the minimum k value updated by the parallel processing at the repetition l-1-th time.
  • Expression 25 α mn 1 = N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 TLU N k m \ n B mnʹ C = S m sgn β mn l - 1 TLU N k m \ n B mnʹ C = S m ʹ TLU N k m \ n B mnʹ C
    Figure imgb0029
  • (Row processing step using Overlapped cyclic approximated min algorithm (2))
  • The row processing of the decoding algorithm according to the present embodiment having the "Overlapped cyclic approximated min algorithm" applied to the above row processing step (2) can be generalized by the following Equation (30). In this case, as the row processing, the repetition first-time LLR: αmn (1) is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m by the following Equation (30) :
  • Expression 26 α mn 1 = N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 Ξ N k m \ n B mnʹ C = S m sgn β mn l - 1 Ξ N k m \ n B mnʹ C = S m ʹ Ξ N k m \ n B mnʹ C
    Figure imgb0030
  • Characteristic operations of the row processing unit of the LDPC decoder 5 that executes the decoding algorithm of the present embodiment are explained below with reference to the drawings. The entire configuration of the LDPC decoder 5 is similar to that shown in Fig. 5 or Fig. 13.
  • Fig. 18 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment. Constituent elements similar to those described with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. While the LDPC decoder 5 shown in Fig. 5 is explained as one example, the present embodiment can also be similarly applied to the LDPC decoder 5 shown in Fig. 13.
  • A minimum-value selecting unit 31c according to the present embodiment reads the Min1LLR(Bmn(1)), Min2LLR(Bmn(2)), MinkLLR(Bmn(k)), and their column numbers from the intermediate-result retaining unit 21, and the calculating unit performs calculation using the TLU. That is, in the minimum-value selecting unit 31c according to the present embodiment, the calculating unit performs the following calculation in the "Sum-Product min algorithm", to Bmn(k) in which the n-th column to be processed does not coincide with the column number n(k) of Bmn(k) retained in the intermediate-result retaining unit 21.
  • For example, the calculating unit obtains the updated value excluding the sign as represented by the following Equation (31):
  • Expression 27 TLU N k m \ n B mnʹ OR Ξ N k m \ n B mnʹ
    Figure imgb0031
  • Further, by limiting the LLR to be calculated from the k value to the minimum 3 values, calculations can be reduced. The calculating unit obtains the updated value excluding the sign as represented by the following Equation (32) :
  • Expression 28 if n = n 1 TLU N k m \ n B mnʹ = TLU B mn 2 B mn 3 OR Ξ N k m \ n B mnʹ = B mn 2 Ξ B mn 3 else if n = n 2 TLU N k m \ n B mnʹ = TLU B mn 1 B mn 3 OR Ξ N k m \ n B mnʹ = B mn 1 Ξ B mn 3 else TLU N k m \ n B mnʹ = TLU B mn 1 B mn 2 OR Ξ N k m \ n B mnʹ = B mn 1 Ξ B mn 2
    Figure imgb0032
  • While the LLR to be calculated is limited from the k value to the minimum 3 values in the above explanation as an example, the embodiment can also be applied to the case that the LLR is limited to the minimum 4, 5, ... values.
  • As described above, according to the present embodiment, the "Cyclic approximated min algorithm" or the "Overlapped cyclic approximated min algorithm" is applied to the "Sum-Product algorithm" using the TLU. With this arrangement, although calculations and the required memory capacity increase as compared with other embodiments, decoding performance can be improved. While the "Sum-Product algorithm" using the TLU is explained in the present embodiment, the principle can be similarly applied to other decoding algorithm for performing the TLU to the mathematical function. In the present embodiment, the TLU prescribed by the known "Sum-Product algorithm" is used for the minimum value of the absolute values of the LLR for the row processing. However, the TLU is not limited to the above, and the TLU other than the TLU prescribed by the "Sum-Product algorithm" can also be used. In this case also, effects similar to the above effects can be obtained.
  • Sixth Embodiment
  • A communication apparatus and a decoding method according to a sixth embodiment are explained below. According to the present embodiment, the number of repetitions can be further reduced by relating the decoding to a serial decoding in a complete bit unit.
  • As in the above embodiment, Fig. 5-1 depicts a configuration of the LDPC decoder 5 according to the present embodiment. The LDPC decoder 5 includes the reception-LLR calculating unit 11 that calculates the reception LLR from the reception information, and the decoding core unit 12 that performs decoding according to the present embodiment. The decoding core unit 12 includes the intermediate-result retaining unit 21 configured by a memory which stores therein an intermediate result (intermediate value) of decoding, the row processing unit 22 that performs row processing according to the present embodiment, the column processing unit 23 that performs column processing according to the present embodiment, the decoding-result determining unit 24 that performs a hard decision of a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according to the present embodiment, and the controller 25 that performs a repetition control of decoding.
  • The decoding algorithm according to the present embodiment is a method of cyclically updating only the absolute value of the LLR of the minimum k value. Because this algorithm is the method of decoding using an approximate minimum value instead of an accurately minimum value and is the serial decoding method, this algorithm is hereinafter called the "Serial cyclic approximated min algorithm". The minimum k value represents "from the minimum value to the k-th value in the ascending order.
  • The "Serial cyclic approximated min algorithm" executed in the receiving device is shown below.
  • (Initialization step)
  • First, the number of repetitions l=1 and the maximum number of repetitions lmax are set. The LLR of the minimum k value of the m-th row at the initial time is set as βmn(i) (0), and a reception LLR:λn is input, thereby obtaining Bmn(i) as represented by the following Equation (33). As a sign of the LLR:βmn (0) of the m-th row at the initial time, sgn(λn) is input, thereby obtaining Sm as represented by the following Equation (33):
  • Expression 29 B mn i = β mn i 0 = min n N m \ n 1 , n 2 , , n i - 1 λ n , i 1 k S m = n N m sgn λ n n i = arg min n N m \ n 1 , n 2 , , n i - 1 λ n n 0 = φ
    Figure imgb0033
  • where Bmn(i) is an absolute value of the LLR:Bmn(i) of the minimum k value of the m-th row, n(i) is a column number of the minimum i-th LLR in Bmn(i), and Sm is a product of signs (+ or -) of the LLR:βmn of the m-th row.
  • (Row processing step 1)
  • In the present embodiment, a starting column of the row processing is arbitrary. At the stage where the processing ends to the last column, decoding is performed again cyclically from the first column. As the row processing, the repetition first-time LLR:αmn (1) of the bit n to be sent from the check node m to the bit node n is updated for 1≤n≤N and for each m by the following Equation (34) :
  • Expression 30 α mn l = N m \ n < n sgn β mnʹ l N m \ n > n sgn β mnʹ l - 1 min N k m \ n B mnʹ = S m sgn β mn l - 1 min N k m \ n B mnʹ = S m ʹ min N k m \ n B mnʹ S m ʹ = S m sgn β mn l - 1 β n l = λ n + m M n \ m α mn l
    Figure imgb0034
  • Specifically, when the current column number is n, a column number that satisfies "n'<n" takes the product of signs of the LLR:βmn' (1) updated in the first-time column processing, and a column number that satisfies "n'>n" takes the product of signs of the LLR:βmn' (1-1) updated in the (1-1)-th time column processing. A result of multiplying these results by the minimum LLR:min[βmn'] in the minimum k value of the m-th row is set as the updated LLR:αmn (1) of the column number n. In the present embodiment, the term of multiplying the product of the signs of βmn' (1) by the product of the signs of βmn' (l-1) is substituted by the term of multiplying Sm updated at the (1-1)-th time by the sign of βmn' updated at the (1-1)-th time. With this arrangement, calculations and the required memory capacity can be reduced. Nk(m) in Equation (34) is the set of n(i) of the m-th row, and is expressed as Nk(m)={n(1), n(2), ..., n(k)}.
  • (Column processing step)
  • Next, as the column processing, the repetition first-time LLR:βmn (1) of the bit n to be sent from the bit node n to the check node m is updated by the following Equation (35) for each m of the column number n performed at the row processing step 1. At the subsequent column processing step and the row processing step 2, calculation is performed in order for each row starting from the one with the smallest row number, for example. However, when all rows having "1" standing are executed without overlapping, the calculation can be performed in any order.
  • Expression 31 β mn l = λ n + M n \ m αʹ mn l = β n l - α mn l S m = S m ʹ sgn β mn l n i = arg min N k m \ n 1 n 2 n i - 1 n i n B mnʹ β mn l , B mn i = min N k m \ n 1 n 2 n i - 1 n i n mnʹ β mn l , i 1 k
    Figure imgb0035
  • Specifically, in the column number n, a result of the addition of the reception LLR:λn and a total value of the LLR:αm'n (1) other than the m-th row LLR updated in the first-time row processing is expressed as the updated LLR:βmn' (1). This calculation can also be obtained by subtracting αm'n (1) from βn (1). The above Sm' is multiplied by the sign (+ or -) of βm (1) updated in the first-time column processing, thereby updating Sm to be used in the row processing. The two equations in Equation (35) prescribe the sort process (minimum k value) of Bmn(1).
  • (Row processing step 2)
  • Next, as the row processing again, the repetition first-time LLR: α'mn (1) of the bit n to be sent from the check node m to the bit node n is updated, for the same m executed in the column processing of the column number n, by the following Equation (36):
  • Expression 32 αʹ mn l = S m sgn β mn l min N k m \ n B mnʹ S m ʹ = S m sgn β mn l β n l = β mn l + αʹ mn l
    Figure imgb0036
  • Specifically, as the row processing again, α'mn (1) is updated. The updated α'mn (1) is added to βmn (1) using the updated result, thereby updating βn (1). Thereafter, by returning to the column processing step, calculation is repeated until when the calculation is completed for all m of the column number n. When the processes at the column processing step and the row processing step end for all rows m having "1" standing in the check matrix of the column number n, the process control moves to the stop regulation.
  • (Stop regulation)
  • Thereafter, when the repetition first-time posterior value βn (1) of the bit n is "βn (1)>0", for example, a decoding result is "xn'=1" (where x' corresponds to the original transmission signal x). On the other hand, when "βn (1)≤0", a decoding result is "xn'=0", and a decoding result x'= (x1', x2', ..., XN') is obtained.
  • When the result of parity check is "Hx'=0" or when the number of repetitions is "l=1max" (when any one of these condition is satisfied), a decoding result x' in this case is output. When none of the two conditions is satisfied, "1=1+1" is set, and the process control returns to the above row processing step 1. Thereafter, the calculation is sequentially performed.
  • A characteristic operation of the LDPC decoder 5 that executes the above "Serial cyclic approximated min algorithm" is explained in detail with reference to a configuration diagram.
  • As in the above embodiment, Fig. 6 is a configuration example of the row processing unit 22 that performs row processing according to the "Serial cyclic approximated min algorithm". The row processing unit 22 includes the mininium-value selecting unit 31, the sign calculating unit 32, and the LLR calculating unit 33. In Fig. 6, a Min1LLR (minimum LLR of the m-th row) is Bmn(1), a Min2LLR (second minimum LLR of the m-th row) is Bmn(2), and these are the values retained in the intermediate-result retaining unit 21. In Fig. 6, Sm and the "sign of the LLR:βmn of the m-th row and n-th column of the (1-1)-th time" are also the values retained in the intermediate-result retaining unit 21.
  • The minimum-value selecting unit 31 selects the Min2LLR(Bmn(2)) when the column number n to be row-processed coincides with the column number n(1) of the Min1LLR (Bmn(1)), and selects the Min1LLR (Bmn(1)) in other cases, and outputs the selected result. The sign calculating unit 32 multiplies the "Sm updated by the (1-1)-th time column processing" by the "sign of the LLR:βmn of the m-th row and n-th column of the (1-1)-th time", and outputs Sm' as a result of the multiplication. In this case, Sm' is retained in the intermediate-result retaining unit 21. The LLR calculating unit 33 multiplies the minimum LLR obtained from the minimum-value selecting unit 31 by the multiplication result Sm' of the sign (+ or -) obtained from the sign calculating unit 32, thereby calculating LLR: αmn (1). Based on this, according to the "Min-Sum algorithm", the memory that has been necessary by the row weight portion can be reduced to the k value portion.
  • Fig. 19 is a configuration example of the column processing unit 23 that performs column processing according to the "Serial cyclic approximated min algorithm". This column processing unit 23 includes the α adding unit 41, the λ adding unit 42, the minimum-k-value comparing unit 43, and the sign calculating unit 44. In the present embodiment, k=3 is described as an example. In Fig. 19, LLR of a column weight portion, α'mn, αmn, λn, Sm', Min1LLR, Min2LLR, Min3LLR (third-minimum LLR of the m-th row) are the values retained in the intermediate-result retaining unit 21.
  • In the column processing unit 23, the α adding unit 41 adds all LLR: αmn (1) including the m-th row LLR updated in the first-time row processing. Further, the λ adding unit 42 adds the reception LLR:λn to the result of the addition by the α adding unit 41, controls a switch 45 to be first connected to a block below, and outputs βmn (1) by subtracting αmn (1) from the added result. The minimum-k-value comparing unit 43 (k=3) receives |βmn (1)|.
  • Although not shown in Fig. 19, as in the embodiment described above, when n of the n-th column to be column processed coincides with any one of n(1), n(2), n(3) indicating the column numbers corresponding to Bmn(1), Bmn(2), Bmn(3), stored in the Min1LLR, Min2LLR, Min3LLR respectively, for example, Bmn(1) of n=n(i) is thinned, and the operation as shown in Fig. 8 is performed. Specifically, information held in the Min2LLR is deleted, and information held in the Min3LLR is shifted to the Min2LLR. A maximum value "FFFF", for example (in the case of 16 bits), is stored in the Min3LLR. Accordingly, a comparison process excluding the column to be processed can be performed, and at least the Min3LLR can be necessarily updated in the column processing.
  • After this processing, as shown in Fig. 19, |βmn (1)| is compared with each of the Min1LLR, Min2LLR, Min3LLR. When "|βmn (1)|<Min3LLR", the LLR of the minimum 3 value is updated. On the other hand, the sign of βmn (1) output by the λ adding unit 42 is retained in the intermediate-result retaining unit 21, as the "sign of the LLR:βmn (1) of the m-th row and n-th column of the first time". Further, the sign calculating unit 44 multiplies Sm' updated in the first-time row processing, by the sign of the above βmn (1) , and updates Sm retained in the intermediate-result retaining unit 21, using a result of this multiplication. In comparing |βmn (1)| with each of the Min1LLR, Min2LLR, Min3LLR, |βmn (1)| is first compared with the Min2LLR as the center value of Bmn(i), and thereafter, comparison is performed in a tree shape as shown in Fig. 19. For example, there is an effect that the execution time becomes {(k+1)/2}/2 (where k is an odd number), as compared with the effect when |βmn (1)| is compared first with the Min1LLR that becomes the minimum value. When k is an even number, there are two center values of Bmn(i). In this case, any one of the two values can be compared first. When k is an even number, there is an effect that the execution time becomes {k/2+1}/k (where k is an even number), as compared with the effect when |βmn (1)| is compared first with the Min1LLR that becomes the minimum value. From the Min1LLR and Min2LLR of this comparison result, the circuit shown in Fig. 6 obtains α'mn (1), and adds this to βmn (1), thereby calculating βn (1), and the process control moves to the next column processing by the switch 45.
  • The flow of the processing in the "Serial cyclic approximated min algorithm" according to the present embodiment is explained next with reference to a flowchart shown in Fig. 9. In Fig. 9, it is described that the "row processing", "column processing", "row processing", ..., "column processing" are performed in the "iterative decoding first time", "iterative decoding second time", ..., "iterative decoding last time". In the present embodiment, after the "row processing step 1", the "column processing step" and the "row processing step 2" are repeated until the calculation is completed for all m of the column number n. That is, the processing is performed in the order of the "row processing step 1", "column processing step", "row processing step 2", "column processing step", "row processing step 2", "column processing step", ..., "row processing step 2", "row processing step 1", "column processing step", "row processing step 2", "column processing step", "row processing step 2", "column processing step", .., "row processing step 2".
  • In the above "Serial cyclic approximated min algorithm", the reception-LLR calculating unit 11 first calculates the reception LLR from the reception information (steps S11, S12), and sets a result of the calculation to the intermediate-result retaining unit 21, as an initial value (step S13). The controller 25 initializes the number of repetitions as 1=1 (step S13). The calculation of Equation (33) is cyclically performed from n=1 to n=N, using the λ adding unit 42, the minimum-k-value comparing unit 43, and the sign calculating unit 44, out of the column processing unit 23 (step S13).
  • Next, the decoding core unit 12 performs the first-time (first-time to the last-time) iterative decoding calculation (step S14). Specifically, as the first-time iterative decoding, the row processing unit 22 performs the row processing (using the reception LLR) to the row having "1" in the first column, and delivers a result of the calculation to the column processing unit 23. Thereafter, the column processing unit 23 performs the column processing of the first column, and retains (updates) Bmn(i) and Sm as a result of the calculation, in the intermediate-result retaining unit 21. Thereafter, the row processing unit 22 executes the row processing step 2, and delivers a result of the calculation to the column processing unit 23. The row processing unit 22 and the column processing unit 23 repeat the column processing step and the row processing step 2. Thereafter, processing similar to the above processing is performed in the order of the second column, third column, ..., N-th column. Bmn(i) and Sm are retained in the intermediate-result retaining unit 21 (corresponding to the iterative decoding first time). At the second and subsequent iterative decoding, the row processing is performed using the LLR and Sm updated by the processing one before. Thereafter, decoding is performed in the similar manner as in the first time.
  • After executing the first-time iterative decoding, the decoding-result determining unit 24 performs a hard decision on the posterior value calculated at the repetition first time, determines this determination value as the decoding result x', and performs a parity check (stop regulation). In the stop regulation, when a result of the parity check is OK ("Hx'=0") or when the number of repetitions is l=1max, the decoding result x' at this time is finally output (step S15). When the above two conditions are not satisfied, the controller 25 sets 1=1+1, and the decoding core unit 12 performs the (1+1)-th time iterative decoding.
  • Deletion of the memory size according to a notation method of a column number is explained next, as in the embodiment described above. Fig. 10 depicts a column number notation according to the present embodiment. In the "Serial cyclic approximated min algorithm", column numbers are noted in the ascending order from n=0, for example. Conventionally, a column number n is expressed as the column number itself (absolute column number) of the parity check matrix. However, in the present embodiment, column numbers are expressed as relative column numbers, such as a minimum column number of "1" of the m-th row in the parity check matrix is expressed as n=0, a column number of the next "1" of the m-th row is expressed as n=1, and thereafter, the column numbers are expressed as n=2, 3, ..., at each "1". That is, conventionally, when the absolute column number of "1" in the parity check matrix is "32768", the number of bits necessary to express the column number is 15 bits. On the other hand, according to the present embodiment, when the row weight is eight, the memory size can be reduced to three bits which can express 0 to 7. When the row weight is 16, the memory size can be reduced to four bits which can express 0 to 15.
  • As described above, in the present embodiment, the LDPC decoding is performed to minimize the absolute value |βmn| of the LLR for the row processing, to the minimum k value in row unit by the cyclic structure. Therefore, the memory capacity required to store the absolute values can be substantially reduced. When the row weight is 20 and also k=3, for example, the required memory capacity can be reduced to 3/20 of the conventional capacity. Further, by changing the column number from the absolute column number (1, 3, 10, 15 ...) to the relative column number (0, 1, 2, 3 ...), the required memory capacity can be further reduced.
  • In the "Serial cyclic approximated min algorithm" according to the present embodiment, calculation and updating of probability information (LLR) by the row processing and column processing are performed cyclically for each one bit. Accordingly, probability propagation can be performed more efficiently than that according to the conventional "Min-Sum algorithm".
  • In the "Serial cyclic approximated min algorithm" according to the present embodiment, as the row processing step 2, α'mn (1) is updated. The updated α'mn (1) is added to βmn (1) using the updated result, thereby updating βn (1). Therefore, the decoding can be related to the serial decoding in the complete bit unit, and the number of repetitions can be further reduced.
  • In the present embodiment, while the LLR to be row processed has one value, the k number can be any number equal to or higher than two values. In the present embodiment, it is explained that after the row processing step 1 is performed, the column processing step and the row processing step 2 are performed alternately. The updating of the probability information (LLR) by the row processing and the column processing is cyclically performed for each one bit. However, the execution is not limited to the above. Alternatively, calculation and updating of the probability information (LLR) by the row processing and the column processing can be performed cyclically for a plurality of bits each time.
  • Seventh Embodiment
  • A receiving device and a decoding method according to a seventh embodiment are explained next. The LDPC decoding according to the present embodiment can be applied when the calculation and updating of the probability information (LLR) by the row processing and column processing are performed for each one bit or a predetermined plurality of bits. For example, the number of repetitions can be' reduced by parallelizing calculations. In the present embodiment, the "Serial cyclic approximated min algorithm" is executed using what is called "Overlapped" Bmn c and Sm, by arranging such that the Bmn(i) and Sm of the intermediate-result retaining unit are one set regardless of the number of parallelization, and parallelized all processing units update the same Bmn c and Sm. The decoding algorithm according to the present embodiment is hereinafter called the "Overlapped serial cyclic approximated min algorithm".
  • The "Overlapped serial cyclic approximated min algorithm" executed by the receiving device according to the present embodiment is shown below.
  • (Initialization step)
  • First, the number of repetitions 1=1 and the maximum number of repetitions lmax are set. Further, a reception LLR:λn is input, and Bmn(i)c is obtained as given by the following Equation (37), where βmn(i) (0) is an LLR of the minimum k value of the m-th row at the initial time. As a sign of the LLR:βmn (0) in the m-th row at the initial time, sgn(λn) is input, and Sm is obtained as shown by the following Equation (37):
  • Expression 33 B mnʹ C = β mn i 0 = min n N m \ n 1 , n 2 , , n i - 1 λ n , i 1 k S m = n N m sgn λ n n i = arg min n N m \ n 1 , n 2 , , n i - 1 λ n n 0 = φ
    Figure imgb0037
  • where Bmn(i) c is an absolute value of the LLR:βmn(i) of the minimum k value of the m-th row, and is used in common in the parallel processing, n(i) is a column number of the minimum i-th LLR in Bmn(i) c.
  • (Row processing step 1)
  • In the present embodiment, a starting column of each row processing is arbitrary. At the stage where the processing ends up to the final column, decoding is performed again cyclically from the first column. As the row processing, the repetition first-time LLR:αmn (1) of the bit n to be sent from the check node m to the bit node n is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, where G is a parallel number, NG is a column number that each parallelized decoding circuit processes, and G·Ng=N, and for each m, by the following Equation (38):
  • Expression 34 α mn l = N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 min N k m \ n B mnʹ C = S m sgn β mn l - 1 min N k m \ n B mnʹ C = S m ʹ min N k m \ n B mnʹ C S m ʹ = S m sgn β mn l - 1 β n l = λ n + m M n \ m αʹ mn l
    Figure imgb0038
  • Specifically, for example, G row processing units allocated to the G columns, into which the column is divided for each column number: NG, perform the row processing in parallel. The G row processing units perform the parallel processing, and perform the same operation as that of the "Serial cyclic approximated min algorithm", except that all the processing units use the same Bmn c.
  • (Column processing step)
  • Next, as the column processing, the repetition first-time LLR:βmn (1) of the bit n to be sent from the bit node n to the check node m is updated, for each m of the column number n performed at the row processing step 1, by the following Equation (39). That is, in the present embodiment, the column processing represented by the following Equation (39) is performed in parallel, for each column after the row processing is performed in parallel as described above. However, in performing the column processing in parallel, at the subsequent column processing step and the row processing step 2, the calculation is performed for each row in order starting from the smallest row number of the row number m, for example. However, when all rows having "1" standing are executed without overlapping the order of the row numbers to be executed, the calculation can be performed in any order.
  • Expression 35 β mn l = λ n + M n \ m αʹ m n l = β n l - α mn l S m = S m ʹ sgn β mn l n i = arg min N k m \ n 1 n 2 n i - 1 n i n B mnʹ C β mn l B mn i = min N k m \ n 1 n 2 n i - 1 n i n B mnʹ C β mn l , i 1 k
    Figure imgb0039
  • (Row processing step 2)
  • Further, as the row processing again, the repetition first-time LLR:α'mn (1) of the bit n to be sent from the check node m to the bit node n is updated, for the same m of the row executed in the column processing of the column number n, by the following Equation (40):
  • Expression 36 αʹ mn l = S m sgn β mn l min N k m n B mnʹ C m = S m sgn β mn l β n l = β mn l + αʹ mn l
    Figure imgb0040
  • Specifically, as the row processing again, α'mn (1) is updated. The updated α'mn (1) is added to βmn (1) using the updated result, thereby updating βn (1). Thereafter, by returning to the column processing step, calculation is repeated until when the calculation is completed for all m of the column number n. When the processes at the column processing step and the row processing step end for all rows m having "1" standing in the check matrix of the column number n, the process control moves to the stop regulation.
  • The stop regulation is similar to that of the "Serial cyclic approximated min algorithm" described above.
  • A configuration and operation of the LDPC decoder 5 according to the seventh embodiment that achieves the above "Overlapped serial cyclic approximated min algorithm" is explained below.
  • Fig. 13 is a configuration example of the LDPC decoder 5 according to the present embodiment, which is similar to the configuration of the embodiment described above. This LDPC decoder 5 includes the reception-LLR calculating unit 11 that calculates the reception LLR from the reception information, and the decoding core unit 12a that performs decoding of the present embodiment. The decoding core unit 12a includes the intermediate-result retaining unit 21a configured by a memory which stores therein an intermediate result (intermediate value) of decoding, the row processing units 22-1 to 22-G that perform row processing (parallel processing) according to the present embodiment, the column processing units 23-1 to 23-G that execute column processing (parallel processing) according to the present embodiment, the decoding-result determining unit 24 that performs a hard decision of a posterior value in the column processing and an error determination of a parity check result, as a stop regulation according to the present embodiment, and the controller 25a that performs a repetition control of decoding.
  • In Fig. 13, the LDPC decoder 5 according to the present embodiment uses in common Bmn c and Sm of the intermediate-result retaining unit 21a, following the above Equations (37), (38), (39), and (40), when each row processing unit and each column processing unit perform processing in parallel, thereby updating Bmn c and Sm, respectively. Based on this parallel processing, Bmn c and Sm are rapidly updated according to the parallel number, which substantially reduces the number of iterative decodings.
  • According to the present embodiment, in the parallel processing, when calculation of the same row occurs in the same clock and when the same buffer is referenced, various measures are taken, such as a memory access priority order is set to each processing unit, a memory bank is partitioned, and the timing of the memory access is adjusted using a shift register.
  • As described above, in the "Overlapped serial cyclic approximated min algorithm" according to the present embodiment, the row processing and the column processing are performed in parallel, using the "Serial cyclic approximated min algorithm" described above. Further, the intermediate-result retaining unit that retains the minimum k value updated in each column processing performed in parallel is shared, and the minimum k value is updated in each column processing performed in parallel. With this arrangement, the decoding number of repetitions can be substantially reduced, as compared with the decrease according to the "Min-Sum algorithm" and the above sixth embodiment.
  • In the "Overlapped serial cyclic approximated min algorithm" according to the present embodiment, as the row processing step 2, α'mn (1) is updated, and the updated α'mn (1) is added to βmn (1) using the updated result, thereby updating βn (1). Therefore, the decoding can be related to the serial decoding in the complete bit unit, and the number of repetitions can be further reduced, as compared with the decrease in the second embodiment.
  • Eighth Embodiment
  • A receiving device (communication apparatus) and a decoding method according to an eighth embodiment are explained below. In the present embodiment, the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Serial cyclic approximated min algorithm" according to the sixth embodiment or the "Overlapped serial cyclic approximated min algorithm" according to the seventh embodiment are cyclically applied to the "Normalized BP-based algorithm" as the known decoding algorithm using the "Min-Sum algorithm".
  • Before explaining the decoding algorithm of the present embodiment, the known "Normalized BP-based algorithm" that is the basis of the decoding algorithm is shown below. The row processing different from that of the "Min-Sum algorithm" is explained.
  • (Row processing step 1)
  • A row processing step 1 of the "Normalized BP-based algorithm" can be generalized by the following Equation (41). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for each of m and n by the following Equation (41), where A is a constant called a normalization factor. In the "Normalized BP-based algorithm", the repetition first-time LLR obtained by the "Min-Sum algorithm" is corrected by the normalization factor A.
  • Expression 37 α mn 1 = 2 tanh -1 N m \ n tanh β mnʹ l - 1 2 = 2 tanh -1 N m \ n sgn β mnʹ l - 1 N m \ n tanh β mnʹ l - 1 2 = N m \ n sgn β mnʹ l - 1 2 tanh -1 N m \ n tanh β mnʹ l - 1 2 1 A N m \ n sgn β mnʹ l - 1 min N m \ n β mnʹ l - 1
    Figure imgb0041
  • The decoding algorithm when the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is applied to the "Normalized BP-based algorithm" is explained below. In the following, explanations are omitted for the processing (initialization, column processing, and stop regulation) similar to that of the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm". The row processing step 1 different from that of the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is explained below.
  • (Row processing step 1 using Serial cyclic approximated min algorithm)
  • In the present embodiment, a starting column of the row processing is arbitrary. At the stage where the processing ends to the last column, decoding is performed again cyclically from the first column. The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment using the "Serial cyclic approximated min algorithm" can be generalized by the following Equation (42). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for each of m and n by the following Equation (42). That is, the repetition first-time LLR obtained by the "Serial cyclic approximated min algorithm" is corrected by the normalization factor A in the following Equation (42):
  • Expression 38 α mn l = 1 A N m \ n < n sgn β mnʹ l N m \ n > n sgn β mnʹ l - 1 min N k m \ n B mnʹ = 1 A S m sgn β mn l - 1 min N k m \ n B mnʹ = 1 A S m ʹ min N k m \ n B mnʹ αʹ mn l = 1 A S m sgn β mn l - 1 min N k m \ n B mnʹ
    Figure imgb0042
  • (Row processing step 1 using Overlapped serial cyclic approximated min algorithm)
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment using the "Overlapped serial cyclic approximated min algorithm" can be generalized by the following Equation (43). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m by the following Equation (43). That is, in the following Equation (43), the repetition first-time LLR obtained by the "Overlapped serial cyclic approximated min algorithm" is corrected by the normalization factor A.
  • Expression 39 α mn l = 1 A N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 min N k m \ n B C mnʹ = 1 A S m sgn β mn l - 1 min N k m \ n B C mnʹ = 1 A S m ʹ min N k m \ n B C mnʹ . αʹ mn l = 1 A S m sgn β mn l - 1 min N k m \ n B C mnʹ
    Figure imgb0043
  • In the decoding algorithm according to the present embodiment, after the row processing step 1 is performed as described above, processing based on the column processing and the stop regulation similar to those of the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is performed to obtain the final code result.
  • Characteristic operations of the row processing unit of the LDPC decoder 5 that executes the decoding algorithm of the present embodiment are explained below with reference to the drawings. The entire configuration of the LDPC decoder 5 is similar to that shown in Fig. 5 or Fig. 13.
  • Fig. 15 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment, which is similar to the example of the above embodiments. The row processing unit includes the minimum value selecting unit 31a. Configurations similar to those explained with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. The minimum value selecting unit 31a according to the present embodiment corrects the minimum value (Min1LLR or Min2LLR) of the LLR read from the intermediate-result retaining unit 21 (or 21a), using the normalization factor A, for example. Specifically, the minimum value selecting unit 31a performs the normalization by dividing the LLR minimum value by A.
  • As described above, according to the present embodiment, the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is applied to the "Normalized BP-based algorithm" having the better performance than that of the "Min-Sum algorithm". With this arrangement, effects similar to those of the sixth and seventh embodiments can be obtained. Further, performance close to that of the "Sum-Product algorithm" can be achieved, regardless of the circuit amount substantially equivalent to that of the "Min-Sum algorithm".
  • In the present embodiment, the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is applied to the "Normalized BP-based algorithm". Alternatively, the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" can also be applied to the known "Offset BP-based algorithm" or other algorithm. In this case, effects similar to those described above can also be obtained.
  • Ninth Embodiment
  • A receiving device (communication apparatus) and a decoding method according to a ninth embodiment are explained below. In the present embodiment, the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Serial cyclic approximated min algorithm" according to the sixth embodiment or the "Overlapped serial cyclic approximated min algorithm" according to the seventh embodiment are cyclically applied to the "δ min algorithm" as the known decoding algorithm having superior correction performance of LLR:βmn to that of the "Normalized BP-based algorithm" or the "Offset BP-based algorithm".
  • Before explaining the decoding algorithm of the present embodiment, the known "δ min algorithm" that is the basis of the decoding algorithm is explained. The row processing different from that of the "Min-Sum algorithm" is explained below.
  • (Row processing step 1)
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the "δ min algorithm" can be generalized by the following Equation (44). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for each of m and n by the following Equation (44). At the row processing step 1 of the "δ min algorithm", αmn (1) is calculated by calculating Θ from the absolute value: |βmn' (i-1)| of the LLR updated at the repetition l-1-th time.
  • Expression 40 α m , n i = N m \ n sgn β mnʹ i - 1 Θ N m \ n β m , i - 1 Θ n A I n I 1 Θ I 2 Θ I A a Θ b max min a b - Δ , 0 Δ max 0.9 - a - b / 2 , 0 αʹ mn l = N k m \ n sgn β mnʹ l Θ N k m \ n β mnʹ
    Figure imgb0044
  • The decoding algorithm when the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is applied to the "δ min algorithm" is explained below. In the following, explanations are omitted for the processing (initialization, column processing, and stop regulation) similar to that of the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm". The row processing step 1 different from that of the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is explained below. In the present embodiment, a starting column of the row processing is arbitrary. At the stage where the processing ends to the last column, decoding is performed again cyclically from the first column.
  • (Row processing step 1 using Serial cyclic approximated min algorithm)
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the decoding algorithm of the present embodiment using the "Serial cyclic approximated min algorithm" can be generalized by the following Equation (45). In this case, as the row processing step 1, the repetition first-time LLR: αmn (1) is updated for 1≤n≤N and for each m by the following Equation (45). In the row processing step 1 of the decoding algorithm, αmn (1) is calculated by calculating Θ from the absolute value: Bmn' of the LLR of the minimum k value updated at the repetition 1-1-th time.
  • Expression 41 α mn l = N m \ n < n sgn β mnʹ l N m \ n > n sgn β mnʹ l - 1 Θ N k m \ n B mnʹ = S m sgn β mn l - 1 Θ N k m \ n B mnʹ = S m ʹ Θ N k m \ n B mnʹ αʹ mn l = S m sgn β mn l - 1 Θ N k m \ n β mnʹ
    Figure imgb0045
  • (Row processing step 1 using Overlapped serial cyclic approximated min algorithm)
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the decoding algorithm of the present embodiment using the "Overlapped serial cyclic approximated min algorithm" can be generalized by the following Equation (46). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m by the following Equation (46). At the row processing step 1 of this decoding algorithm, αmn (1) is calculated by calculating Θ from the absolute value: Bmn' c of the LLR of the minimum k value updated by the parallel processing at the repetition 1-1-th time.
  • Expression 42 α mn l = N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 Θ N k m \ n B mnʹ C = S m sgn β mn l - 1 Θ N k m \ n B mnʹ C = S m ʹ Θ N k m \ n B mnʹ C αʹ mn l = S m sgn β mn l - 1 Θ N k m \ n B mnʹ C
    Figure imgb0046
  • In the decoding algorithm according to the present embodiment, after the row processing step 1 is performed as described above, processing based on the column processing, the row processing step 2, and the stop regulation similar to those of the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is executed, thereby obtaining the final code result.
  • Characteristic operations of the row processing unit of the LDPC decoder 5 that executes the decoding algorithm of the present embodiment are explained below with reference to the drawings. The entire configuration of the LDPC decoder 5 is similar to that shown in Fig. 5 or Fig. 13.
  • Fig. 16 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment, which is similar to that described in the above embodiments. This row processing unit includes the minimum-value selecting unit 31b. Constituent elements similar to those described with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. While the LDPC decoder 5 shown in Fig. 5 is explained as one example, the present embodiment can also be similarly applied to the LDPC decoder 5 shown in Fig. 13.
  • The minimum-value selecting unit 31b according to the present embodiment reads the Min1LLR (Bmn(1)), Min2LLR(Bmn(2)), MinkLLR(Bmn(k)), and their column numbers from the intermediate-result retaining unit 21, and the calculating unit performs the Θ calculation. That is, in the minimum-value selecting unit 31b according to the present embodiment, the calculating unit performs the following calculation in the "δ min algorithm", to Bmn(k) in which the n-th column to be processed does not coincide with the column number n(k) of Bmn(k) retained in the intermediate-result retaining unit 21.
  • For example, the calculating unit obtains the updated value |αmn (1)| (=Θ[(Bmn']) excluding the sign as represented by the following Equation (47):
  • Expression 43 Θ N k m \ n B mnʹ
    Figure imgb0047
  • Further, by limiting the LLR to be calculated from the k value to the minimum 3 values, the calculations can be reduced. The calculating unit obtains the updated value |αmn (1) |(=Θ[(Bmn']) excluding the sign as represented by the following Equation (48):
  • Expression 44 if n = n 1 Θ N k m \ n B mnʹ = B mn 2 Θ B mn 3 else if n = n 2 Θ N k m \ n B mnʹ = B mn 1 Θ B mn 3 else Θ N k m \ n B mnʹ = B mn 1 Θ B mn 2
    Figure imgb0048
  • While the LLR to be calculated is limited from the k value to the minimum 3 values in the above example, the embodiment can also be applied to the case that the LLR is limited to the minimum 4, 5, ... values.
  • As described above, according to the present embodiment, the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is applied to the "δ min algorithm" having the better performance than that of the "Min-Sum algorithm". With this arrangement, effects similar to those of the sixth and seventh embodiments can be obtained. Further, performance close to that of the "Sum-Product algorithm" can be achieved, regardless of the circuit amount substantially equivalent to that of the "Min-Sum algorithm". In the present embodiment, description is made for the case that the minimum value of the absolute values of the LLR for the row processing is corrected to the optimum value based on a predetermined correction equation prescribed by the known "δ min algorithm". However, the correction equation is not limited to this, and the correction equation prescribed by the algorithm other than the "δ min algorithm" can also be used. In this case, effects similar to those described above can also be obtained.
  • Tenth Embodiment
  • A receiving device (communication apparatus) and a decoding method according to a tenth embodiment are explained below. In the present embodiment, the process of updating only the absolute value of the LLR of the minimum k value and the decoding using the approximate minimum value in the "Serial cyclic approximated min algorithm" according to the sixth embodiment or the "Overlapped serial cyclic approximated min algorithm" according to the seventh embodiment are cyclically applied to the "Sum-Product algorithm".
  • Before explaining the decoding algorithm of the present embodiment, the known "Sum-Product algorithm" that is the basis of the decoding algorithm is explained. In the present embodiment, a method of calculation by tabling the mathematical function, i.e., a general "Sum-Product algorithm" using a TLU (table lookup), is described. The row processing different from that of the "Sum-Product algorithm" explained in the conventional technology is described.
  • (Row processing step 1 (1))
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the "Sum-Product algorithm" using a TLU can be generalized by the following Equation (49). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for each of m and n by the following Equation (49). In the row processing step 1 of the "Sum-Product algorithm" using the TLU, a calculation using the TLU is performed to the absolute value: |βmn' (l-1)| of the LLR updated at the repetition 1-1-th time.
  • Expression 45 α m , n i = N m \ n sgn β mnʹ i - 1 TLU N m \ n β m , i - 1 TLU n A I n TLU I 1 , TLU I 2 , TLU I A - 1 I A TLU a b 2 tanh -1 tanh a 2 tanh b 2 αʹ m , n l = N k m \ n sgn β mn l TLU N k m \ n β mnʹ l
    Figure imgb0049
  • (Row processing step 1 (2))
  • The row processing step 1 of the "Sum-Product algorithm" using the TLU can also be achieved by the method different from the above method. For example, the αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the "Sum-Product algorithm" using a TLU different from the above algorithm can be generalized by the following Equation (50). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for each of m and n by the following Equation (50):
  • Expression 46 α m , n i = N m \ n sgn β mnʹ i - 1 Ξ N m \ n β m , i - 1 Ξ n A I n I 1 Ξ I 2 Θ Ξ I A a Ξ b min a b + TLU 1 a + b - TLU 1 a - b αʹ m , n l = N k m \ n sgn β mn l Ξ N k m \ n β mnʹ l
    Figure imgb0050
  • For the TLU1(x), a table is prepared in advance based on the following (51). TLU 1 x = ln 1 + exp - x
    Figure imgb0051
  • In the "Sum-Product algorithm" using the TLU, the row processing step 1 represented by the above Equation (49) has a characteristic that while the table becomes large, the number of calculations is small. On the other hand, the row processing step 1 represented by the above Equation (50) has a characteristic that the number of calculations is large although the table becomes small.
  • The decoding algorithm when the "Serial cyclic approximated min algorithm" is applied to the "Sum-Product algorithm" using the TLU is explained below. In the following, explanations are omitted for the processing (initialization, column processing, and stop regulation) similar to that of the "Serial cyclic approximated min algorithm". The row processing step 1 different from that of the "Serial cyclic approximated min algorithm" is explained below. In the present embodiment, a starting column of the row processing is arbitrary, and at the stage where the processing ends up to the final column, decoding is performed again cyclically from the first column.
  • (Row processing step 1 (1) using Serial cyclic approximated min algorithm)
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment having the "Serial cyclic approximated min algorithm" applied to the row processing step (1) can be generalized by the following Equation (52). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for 1≤n≤N and for each m by the following Equation (52). In the row processing step 1 of the decoding algorithm, a calculation using the TLU is performed to the absolute value: Bmn' of the LLR of the minimum k value updated at the repetition 1-1-th time.
  • Expression 47 α mn l = N m \ n < n sgn β mnʹ l N m \ n > n sgn β mnʹ l - 1 TLU N k m \ n B mnʹ = S m sgn β mn l - 1 TLU N k m \ n B mnʹ = S m ʹ TLU N k m \ n B mnʹ αʹ mn l = S m sgn β mn l - 1 TLU N k m \ n B mnʹ
    Figure imgb0052
  • (Row processing step using Serial cyclic approximated min algorithm 1 (2))
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment having the "Serial cyclic approximated min algorithm" applied to the row processing step 1(2) can be generalized by the following Equation (53). In this case, as the row processing step 1, the repetition first-time LLR:αmn (1) is updated for 1≤n≤N and for each m by the following Equation (53):
  • Expression 48 α mn l = N m \ n < n sgn β mnʹ l N m \ n > n sgn β mnʹ l - 1 Ξ N k m \ n B mnʹ = S m sgn β mn l - 1 Ξ N k m \ n B mnʹ = S m ʹ Ξ N k m \ n B mnʹ αʹ mn l = S m sgn β mn l - 1 Ξ N k m \ n B mnʹ
    Figure imgb0053
  • The decoding algorithm when the "Overlapped serial cyclic approximated min algorithm" is applied to the "Sum-Product algorithm" using the TLU is explained below. In the following, explanations are omitted for the processing (initialization, column processing, and stop regulation) similar to that of the "Overlapped serial cyclic approximated min algorithm". The row processing step 1 different from that of the "Overlapped serial cyclic approximated min algorithm" is explained below.
  • (Row processing step using Overlapped serial cyclic approximated min algorithm 1(1))
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment having the "Overlapped serial cyclic approximated min algorithm" applied to the row processing step 1(1) can be generalized by the following Equation (54). In this case, as the row processing step 1, the repetition first-time LLR: αmn (1) is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each in by the following Equation (54). In the row processing step 1 of this decoding algorithm, a calculation using the TLU is performed to the absolute value: Bmn' c of the LLR of the minimum k value updated by the parallel processing at the repetition 1-1-th time.
  • Expression 50 α mn l = N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 TLU N k m \ n B mnʹ C = S m sgn β mn l - 1 TLU N k m \ n B mnʹ C = S m ʹ TLU N k m \ n B mnʹ C αʹ mn l = S m sgn β mn l - 1 TLU N k m \ n B mnʹ C
    Figure imgb0054
  • (Row processing step using Overlapped serial cyclic approximated min algorithm 1(2))
  • The αmn (1) and α'mn (1) of the row processing steps 1 and 2 of the decoding algorithm according to the present embodiment having the "Overlapped serial cyclic approximated min algorithm" applied to the row processing step 1(2) can be generalized by the following Equation (55). In this case, as the row processing step 1, the repetition first-time LLR: αmn (1) is updated for 0≤g≤G-1, g·NG+1≤n≤(g+1)·NG, and for each m by the following Equation (55) :
  • Expression 50 α mn l = N m \ n < g N G sgn β mnʹ l N m \ n > g N G sgn β mnʹ l - 1 Ξ N k m \ n B mnʹ C = S m sgn β mn l - 1 Ξ N k m \ n B mnʹ C = S m ʹ Ξ N k m \ n B mnʹ C αʹ mn l = S m sgn β mn l - 1 Ξ N k m \ n B mnʹ C
    Figure imgb0055
  • Characteristic operations of the row processing unit of the LDPC decoder 5 that executes the decoding algorithm of the present embodiment are explained below with reference to the drawings. The entire configuration of the LDPC decoder 5 is similar to that shown in Fig. 5 or Fig. 13.
  • Fig. 18 is a configuration example of the row processing units 22, 22-1 to 22-G that perform row processing of the present embodiment, which is similar to the configuration of the embodiment described above. The row processing unit includes the minimum-value selecting unit 31c. Constituent elements similar to those described with reference to Fig. 6 are denoted by like reference numerals, and explanations thereof are not repeated. While the LDPC decoder 5 shown in Fig. 5 is explained as one example, the present embodiment can also be similarly applied to the LDPC decoder 5 shown in Fig. 13.
  • The minimum-value selecting unit 31c according to the present embodiment reads the Min1LLR(Bmn(1)), Min2LLR(Bmn(2)), MinkLLR(Bmn(k)), and their column numbers from the intermediate-result retaining unit 21, and the calculating unit performs calculation using the TLU. That is, in the minimum-value selecting unit 31c according to the present embodiment, the calculating unit performs the following calculation in the "Sum-Product min algorithm", to Bmn(k) in which the n-th column to be processed does not coincide with the column number n(k) of Bmn(k) retained in the intermediate-result retaining unit 21.
  • For example, the calculating unit obtains the updated value excluding the sign, as represented by the following Equation (56):
  • Expression 51 TLU N k m \ n B mnʹ OR Ξ N k m \ n B mnʹ
    Figure imgb0056
  • Further, by limiting the LLR to be calculated from the k value to the minimum 3 values, the calculations can be reduced. The calculating unit obtains the updated value excluding the sign as represented by the following Equation (57):
  • Expression 52 if n = n 1 TLU N k m \ n B mnʹ = TLU B mn 2 B mn 3 OR Ξ N k m \ n B mnʹ = B mn 2 Ξ B mn 3 else if n = n 2 TLU N k m \ n B mnʹ = TLU B mn 1 B mn 3 OR Ξ N k m \ n B mnʹ = B mn 1 Ξ B mn 3 else TLU N k m \ n B mnʹ = TLU B mn 1 B mn 2 OR Ξ N k m \ n B mnʹ = B mn 1 Ξ B mn 2
    Figure imgb0057
  • While the LLR to be calculated is limited from the k value to the minimum 3 values in the above example, the embodiment can also be applied to the case that the LLR is limited to the minimum 4, 5, ... values.
  • As described above, according to the present embodiment, the "Serial cyclic approximated min algorithm" or the "Overlapped serial cyclic approximated min algorithm" is applied to the "Sum-Product algorithm" using the TLU. With this arrangement, although calculations and the required memory capacity increase as compared with other embodiments, decoding performance can be improved. While the "Sum-Product algorithm" using the TLU is explained in the present embodiment, the principle can be similarly applied to other decoding algorithm for performing the TLU to the mathematical function. In the present embodiment, the TLU prescribed by the known "Sum-Product algorithm" is used for the minimum value of the absolute values of the LLR for the row processing. However, the TLU is not limited to the above, and the TLU other than the TLU prescribed by the "Sum-Product algorithm" can also be used. In this case, effects similar to the effects described above can also be obtained.
  • In the above embodiments, the processing is performed in the ascending order with the starting column of the row processing set as 1. However, for example, the starting column can be arbitrary, and the processing can be performed to an arbitrary column which is not overlapped. At the stage where the processing ends for all columns, iterative decoding can be performed again in the same order. Alternatively, the starting column of the row processing can be set arbitrary, and the processing can be performed to an arbitrary column which is not overlapped. At the stage where the processing ends for all columns, iterative decoding can be performed again in a different order to the arbitrary column not overlapped until the processing ends for all columns. In these cases, effects similar to those of each of the above embodiments can also be obtained.
    While the use of the logarithmic likelihood ratio (LLR) as the probability information is explained in the above embodiments, other information than the logarithmic likelihood ratio (LLR) can also be used as the probability information.
  • INDUSTRIAL APPLICABILITY
  • As described above, the receiving device and the decoding method according to the present invention are effective for error correction technologies in the digital communication, and are particularly suitable for a communication apparatus that decodes the LDPC encoded signal.

Claims (30)

  1. A communication apparatus that decodes an LDPC-encoded codeword, using a check matrix, the communication apparatus comprising:
    a retaining unit that retains an intermediate value obtained by a predetermined process in a decoding algorithm;
    a row processing unit that performs row processing of calculating a logarithmic likelihood ratio (logarithmic likelihood ratio to be sent from a check node to a bit node: column-processing LLR) used in the column processing, based on an absolute value of a logarithmic likelihood ratio (logarithmic likelihood ratio to be sent from a bit node to a check node: row-processing LLR) corresponding to a row weight in a check matrix; and
    a column processing unit that calculates a row-processing LLR to be used in the row processing, using a column-processing LLR corresponding to a column weight, and stores a minimum value of absolute values of the row-processing LLR in the retaining unit, wherein
    the column processing unit performs a decoding while updating the minimum k value of the row.
  2. The communication apparatus according to claim 1, wherein the apparatus divides the row of the check matrix into a predetermined number of columns, executes the row processing and the column processing in parallel in a matrix unit after the division, shares a region of the retaining unit that retains the minimum k value, and updates the minimum k value in each of column processes performed in parallel.
  3. The communication apparatus according to claim 1, wherein the row processing unit multiplies a minimum value of absolute values of the row-processing LLR corresponding to the row weight by a multiplication result of signs of the row-processing LLR, thereby obtaining a column-processing LLR to be used in the next column process.
  4. The communication apparatus according to claim 3, wherein the row processing unit further corrects the minimum value of absolute values of the row-processing LLR by a fixed normalization factor prescribed in advance, and obtains a column-processing LLR using a corrected value.
  5. The communication apparatus according to claim 1, wherein the row processing unit corrects a minimum value of absolute values of the row-processing LLR corresponding to the row weight, to an optimum value, based on a predetermined correction equation, and multiplies the corrected value by a multiplication result of signs of the row-processing LLR, thereby obtaining a column-processing LLR to be used in the next column process.
  6. The communication apparatus according to claim 1, wherein the row processing unit performs a predetermined calculation using a TLU (table lookup) to a minimum value of absolute values of the row-processing LLR corresponding to the row weight, and multiplies the calculated value by a multiplication result of signs of the row-processing LLR, thereby obtaining a column-processing LLR to be used in the next column process.
  7. The communication apparatus according to any one of claims 3 to 6, wherein, at the repetition first time, when the row processing unit multiplies signs of the row-processing LLR corresponding to the row weight in a specific row, the row processing unit multiplies signs of the row-processing LLR updated by the repetition first-time column process, for a column number smaller than the column number to be processed, and multiplies signs of the row-processing LLR updated by the repetition (1-1)-th time column process, for a column number larger than the column number to be processed, and further multiplies results of these multiplications together.
  8. The communication apparatus according to any one of claims 3 to 6, wherein, at the repetition first time, when the row processing unit multiplies signs of the row-processing LLR corresponding to the row weight in a specific row, the row processing unit multiplies a multiplication result S of signs of the row-processing LLR corresponding to the row weight updated by the repetition (l-1)-th time column process, by signs of the row-processing LLR updated by the repetition (1-1)-th time column process corresponding to the column number to be processed, and stores a result of this multiplication S' in the retaining unit.
  9. The communication apparatus according to claim 8, wherein, at the repetition first time, when the column processing unit performs a column process of a specific column,
    the column processing unit adds a reception LLR corresponding to a column number to be processed and a total value of column-processing LLR corresponding to the column weight other than the row number to be processed, sets a result of this addition as a row-processing LLR, and when an absolute value of the row-processing LLR is smaller than at least one of minimum k values to be processed, the column processing unit updates the minimum k value, and
    the column processing unit multiplies a sign of the row-processing LLR as the addition result by a multiplication result S' of the sign held in the retaining unit, and updates a result of the multiplication as a multiplication result S of a sign used in the repetition (1+1)-th time row process.
  10. A communication apparatus that decodes an LDPC-encoded codeword, using a check matrix, the communication apparatus comprising:
    a row processing unit that performs row processing of calculating a logarithmic likelihood ratio (a logarithmic likelihood ratio to be sent from a check node to a bit node: called a column-processing LLR) used in the column process, based on an absolute value of a logarithmic likelihood ratio (a logarithmic likelihood ratio to be sent from a bit node to a check node: called a row-processing LLR) corresponding to a row weight in a check matrix; and
    a column processing unit that performs column processing of calculating a row-processing LLR used in the row process, using a column-processing LLR corresponding to a column weight, wherein
    the row processing unit and the column processing unit alternately execute the process by a predetermined number of times, thereby cyclically updating the row-processing LLR and the column-processing LLR.
  11. The communication apparatus according to claim 10, wherein the row processing unit multiplies a minimum value of absolute values of the row-processing LLR corresponding to the row weight by a multiplication result of signs of the row-processing LLR, thereby obtaining a column-processing LLR to be used in the next column process.
  12. The communication apparatus according to claim 11, wherein the row processing unit further corrects the minimum value of absolute values of the row-processing LLR by a fixed normalization factor prescribed in advance, and obtains a column-processing LLR using a corrected value.
  13. The communication apparatus according to claim 10, wherein the row processing unit corrects a minimum value of absolute values of the row-processing LLR corresponding to the row weight, to an optimum value, based on a predetermined correction equation, and multiplies the corrected value by a multiplication result of signs of the row-processing LLR, thereby obtaining a column-processing LLR to be used in the next column process.
  14. The communication apparatus according to claim 10, wherein the row processing unit performs a predetermined calculation using a TLU (table lookup) to a minimum value of absolute values of the row-processing LLR corresponding to the row weight, and multiplies the calculated value by a multiplication result of signs of the row-processing LLR, thereby obtaining a column-processing LLR to be used in the next column process.
  15. The communication apparatus according to any one of claims 10 to 14, wherein, at the repetition first time, when the row processing unit multiplies signs of the row-processing LLR corresponding to the row weight in a specific row, the row processing unit multiplies signs of the row-processing LLR updated by the repetition first-time column process, for a column number smaller than the column number to be processed, and multiplies signs of the row-processing LLR updated by the repetition (1-1)-th time column process, for a column number larger than the column number to be processed, and further multiplies results of these multiplications together.
  16. The communication apparatus according to claim 1 or 10, wherein the row processing unit uses a minimum value of absolute values of a reception LLR as the minimum value, at the repetition first-time decoding.
  17. The communication apparatus according to claim 1 or 10, wherein the column processing unit calculates a posterior value at each time of executing the column process, executes a hard decision of the posterior value, and
    outputs a result of the hard decision as a decoding result, when a result of a parity check is OK or when the number of repetitions is a prescribed largest number of times.
  18. The communication apparatus according to claim 1 or 10, wherein a starting column of the row process is arbitrary, and performs iterative decoding from the first column again, when the process ends to the last column.
  19. The communication apparatus according to claim 1 or 10, wherein a starting column of the row process is arbitrary, the process is performed to an arbitrary column which is not' overlapped, and the iterative decoding is performed in the same order again, at the stage where the process ends for all columns.
  20. The communication apparatus according to claim 1 or 10, wherein a starting column of the row process is arbitrary, the process is performed to an arbitrary column which is not overlapped, and the iterative decoding is performed to an arbitrary column not overlapped, in a different order, until when the process ends for all columns.
  21. The communication apparatus according to claim 1 or 10, wherein a column number of the row weight in a check matrix is noted in the ascending order starting from zero in the order of a small column number.
  22. A decoding method for decoding an LDPC-encoded codeword, using a check matrix, the decoding method for performing a decoding by executing:
    a row processing step of calculating a logarithmic likelihood ratio (a logarithmic likelihood ratio to be sent from a check node to a bit node: called a column-processing LLR) used in the column process, based on an absolute value of a logarithmic likelihood ratio (a logarithmic likelihood ratio to be sent from a bit node to a check node: called a row-processing LLR) corresponding to a row weight in a check matrix; and
    a column processing step of calculating a row-processing LLR to be used in the row process, using a column-processing LLR corresponding to a column weight calculated by the row process, and further holding a minimum k value of absolute values of the row-processing LLR corresponding to the row weight
    while updating the minimum k value of the row.
  23. A decoding method for decoding an LDPC-encoded codeword, using a check matrix, the decoding method for alternately executing, by a predetermined number of times:
    a row processing step of calculating a logarithmic likelihood ratio (a logarithmic likelihood ratio to be sent from a check node to a bit node: called a column-processing LLR) used in the column process, based on an absolute value of a logarithmic likelihood ratio (a logarithmic likelihood ratio to be sent from a bit node to a check node: called a row-processing LLR) corresponding to a row weight in a check matrix; and
    a column processing step of calculating a row-processing LLR to be used in the row process, using a column-processing LLR corresponding to a column weight calculated by the row process,
    thereby cyclically updating the row-processing LLR and the column-processing LLR.
  24. The decoding method according to claim 22 or 23, wherein at the row processing step, a multiplication result of signs of the row-processing LLR is further used, to calculate the column-processing LLR.
  25. The decoding method according to claim 24, wherein at the row processing step, at the repetition first time, when the signs of the row-processing LLR corresponding to the row weight in a specific row are multiplied, signs of the row-processing LLR updated by the repetition first-time column process are multiplied, for a column number smaller than the column number to be processed, and signs of the row-processing LLR updated by the repetition (1-1)-th time column process are multiplied, for a column number larger than the column number to be processed, and further results of these multiplications are multiplied together.
  26. The decoding method according to claim 24, wherein at the row processing step, at the repetition first time, when the signs of the row-processing LLR corresponding to the row weight in a specific row are multiplied, a multiplication result S of signs of the row-processing LLR corresponding to the row weight updated by the repetition (1-1)-th time column process is multiplied by signs of the row-processing LLR updated by the repetition (1-1)-th time column process corresponding to the column number to be processed, and a result of this multiplication S' is held in a specified region of a memory.
  27. The decoding method according to claim 26, wherein, at the repetition first time, when a column process of a specific column is performed,
    a reception LLR corresponding to a column number to be processed is added to a total value of column-processing LLR corresponding to the column weight other than the row number to be processed, a result of this addition is set as a row-processing LLR, and when an absolute value of the row-processing LLR is smaller than at least one of minimum k values to be processed, the minimum k value is updated, and
    a sign of the row-processing LLR as the addition result is multiplied by a multiplication result S' of the sign held in the specific region of the memory, and a result of the multiplication is updated as a multiplication result S of a sign used in the repetition (1+1)-th time row process.
  28. The decoding method according to claim 22 or 23, wherein, at the repetition first-time decoding, a minimum value of absolute values of the reception LLR is used as the minimum value.
  29. The decoding method according to claim 22 or 23, wherein a posterior value is calculated at each time of executing the column processing step, a hard decision of the posterior value is performed, and a result of the hard decision is output as a decoding result, when a result of a parity check is OK or when the number of repetitions is a prescribed largest number of times.
  30. The communication apparatus according to claim 10, wherein each time when the row processing unit and the column processing unit alternately perform the process by a predetermined number of times, the communication apparatus updates the row-processing LLR and the column-processing LLR.
EP06768155.1A 2005-07-13 2006-07-12 Communication apparatus and decoding method Expired - Fee Related EP1909395B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005205004 2005-07-13
JP2006047392 2006-02-23
PCT/JP2006/313891 WO2007007801A1 (en) 2005-07-13 2006-07-12 Communication apparatus and decoding method

Publications (3)

Publication Number Publication Date
EP1909395A1 true EP1909395A1 (en) 2008-04-09
EP1909395A4 EP1909395A4 (en) 2009-04-15
EP1909395B1 EP1909395B1 (en) 2019-11-20

Family

ID=37637191

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06768155.1A Expired - Fee Related EP1909395B1 (en) 2005-07-13 2006-07-12 Communication apparatus and decoding method

Country Status (6)

Country Link
US (1) US8132080B2 (en)
EP (1) EP1909395B1 (en)
JP (1) JP4627317B2 (en)
KR (1) KR100983692B1 (en)
CN (1) CN101248583B (en)
WO (1) WO2007007801A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100325514A1 (en) * 2009-06-19 2010-12-23 Sugihara Kenya Decoding method and decoding device
WO2020052754A1 (en) * 2018-09-12 2020-03-19 Huawei Technologies Co., Ltd. Simplified check node processing for ldpc decoding

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100938068B1 (en) * 2007-01-30 2010-01-21 삼성전자주식회사 Apparatus and method for receiving signal in a communication system
FR2912574B1 (en) * 2007-02-13 2010-09-17 Commissariat Energie Atomique METHOD FOR DECODING MESSAGE PASSAGE AND FORCED CONVERGENCE.
JP4743156B2 (en) * 2007-04-27 2011-08-10 ソニー株式会社 Decoding device
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
JP4760769B2 (en) * 2007-05-15 2011-08-31 住友電気工業株式会社 Decoding circuit and partial processing circuit
JP4821724B2 (en) * 2007-07-18 2011-11-24 ソニー株式会社 Decoding device and decoding method
TW200906073A (en) * 2007-07-31 2009-02-01 Univ Nat Chiao Tung Calculation method applied to Low Density Parity check Code (LDPC) decoder and circuit thereof
JP4728381B2 (en) * 2008-11-27 2011-07-20 住友電気工業株式会社 Decoding device
US20100169735A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Low density parity check code row update instruction
JP5018807B2 (en) * 2009-02-26 2012-09-05 富士通株式会社 Decryption device
JP5523064B2 (en) * 2009-11-13 2014-06-18 三菱電機株式会社 Decoding apparatus and method
JP5370337B2 (en) * 2010-10-29 2013-12-18 株式会社Jvcケンウッド Decoding device and decoding method
US9172399B2 (en) 2012-03-28 2015-10-27 Intel Corporation Updating variable nodes associated with an iterative decoder
US8930790B1 (en) * 2013-09-13 2015-01-06 U-Blox Ag Method and apparatus for identifying selected values from among a set of values
WO2015087643A1 (en) * 2013-12-09 2015-06-18 三菱電機株式会社 Error-correction decoding device
US20160020787A1 (en) * 2014-07-18 2016-01-21 Kabushiki Kaisha Toshiba Decoding apparatus, decoding method and non-transitory computer-readable recording medium containing a decoding program
US20160055055A1 (en) * 2014-08-25 2016-02-25 Kabushiki Kaisha Toshiba Memory system and error correction decoding method
US10075190B2 (en) * 2015-10-27 2018-09-11 Sandisk Technologies Llc Adaptive scheduler for decoding
TWI682636B (en) * 2018-06-13 2020-01-11 財團法人資訊工業策進會 Ldpc code decoding method for communication system and communication device using the same
CN112152639A (en) * 2019-06-27 2020-12-29 深圳市中兴微电子技术有限公司 Decoding method and device of polarization code, storage medium and terminal

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153938A1 (en) * 2002-12-03 2004-08-05 Nec Corporation Error correcting code decoding device, program and method used in the same

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184486B1 (en) * 2000-04-27 2007-02-27 Marvell International Ltd. LDPC encoder and decoder and method thereof
KR100891782B1 (en) * 2002-06-11 2009-04-07 삼성전자주식회사 Apparatus and method for correcting of forward error in high data transmission system
JP2006508577A (en) * 2002-11-27 2006-03-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Running minimum message passing LDPC decoding
KR100502608B1 (en) 2002-12-24 2005-07-20 한국전자통신연구원 A Simplified Massage-Passing Decoder for Low-Density Parity-Check Codes
JP4225163B2 (en) * 2003-05-13 2009-02-18 ソニー株式会社 Decoding device, decoding method, and program
KR100924189B1 (en) 2004-12-02 2009-10-29 미쓰비시덴키 가부시키가이샤 Decoding device and communication device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153938A1 (en) * 2002-12-03 2004-08-05 Nec Corporation Error correcting code decoding device, program and method used in the same

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BANIHASHEMI A H ET AL: "On Implementation of Min-Sum Algorithm and Its Modifications for Decoding Low-Density Parity-Check (LDPC) Codes" IEEE TRANSACTIONS ON COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 53, no. 4, 1 April 2005 (2005-04-01), pages 549-554, XP011131324 ISSN: 0090-6778 *
CHEN J AND FOSSORIER M P C: "Density evolution for two improved BP-based decoding algorithms of LDPC codes" 20020501; 20020500, vol. 6, no. 5, 1 May 2002 (2002-05-01), pages 208-210, XP002320747 *
FOSSORIER M P C ET AL: "Reduced complexity iterative decoding of low-density parity check codes based on belief propagation" IEEE TRANSACTIONS ON COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 47, no. 5, 1 May 1999 (1999-05-01), pages 673-680, XP002313256 ISSN: 0090-6778 *
See also references of WO2007007801A1 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100325514A1 (en) * 2009-06-19 2010-12-23 Sugihara Kenya Decoding method and decoding device
CN101931418A (en) * 2009-06-19 2010-12-29 三菱电机株式会社 Decoding method and decoding device
EP2264906A3 (en) * 2009-06-19 2012-11-07 Mitsubishi Electric Corporation Modified Offset BP-based LDPC decoding
US8601337B2 (en) * 2009-06-19 2013-12-03 Mitsubishi Electric Corporation Decoding method and decoding device
CN101931418B (en) * 2009-06-19 2014-03-26 三菱电机株式会社 Decoding method and decoding device
WO2020052754A1 (en) * 2018-09-12 2020-03-19 Huawei Technologies Co., Ltd. Simplified check node processing for ldpc decoding

Also Published As

Publication number Publication date
KR100983692B1 (en) 2010-09-24
KR20080015145A (en) 2008-02-18
US8132080B2 (en) 2012-03-06
EP1909395B1 (en) 2019-11-20
EP1909395A4 (en) 2009-04-15
WO2007007801A1 (en) 2007-01-18
CN101248583B (en) 2012-04-18
JP4627317B2 (en) 2011-02-09
US20090132887A1 (en) 2009-05-21
JPWO2007007801A1 (en) 2009-01-29
CN101248583A (en) 2008-08-20

Similar Documents

Publication Publication Date Title
EP1909395A1 (en) Communication apparatus and decoding method
JP4777261B2 (en) Decoding device and communication device
US7203897B2 (en) Method and apparatus for encoding and decoding data
US7730377B2 (en) Layered decoding of low density parity check (LDPC) codes
JP4563454B2 (en) Parity check matrix generation method, encoding method, decoding method, communication apparatus, communication system, encoder, and decoder
US7590914B2 (en) Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof
JP4062435B2 (en) Error correction code decoding apparatus
EP1829223B1 (en) Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
US7188297B2 (en) Method and apparatus for encoding and decoding data
US20060129904A1 (en) Method and apparatus for encoding and decoding data
JP4651600B2 (en) Check Node Update Method in Low Density Parity Check Decoder
US20090063930A1 (en) Check matrix generating method, encoding method, decoding method, communication device, encoder, and decoder
EP3364578A1 (en) Decoding method and decoder for low-density parity check code
US20090158113A1 (en) Apparatus and method for encoding ldpc code using message passing algorithm
CN111164897B (en) Generalized low density parity check code
US11444638B2 (en) Quality-based dynamic scheduling LDPC decoder
JP2006135813A (en) Low density parity check encoder/decoder and encoding/decoding method
US9026880B2 (en) Decoding apparatus and decoding method for decoding LDPC-encoded data
JP5523064B2 (en) Decoding apparatus and method
CN113612485A (en) Decoding method, decoding device, equipment and storage device
Aqil et al. Reliability Ratio Weighted Bit Flipping–Sum Product Algorithm for Regular LDPC Codes
CN114629505A (en) Decoding method, decoding device, equipment and storage device
JP5434454B2 (en) Decryption device

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080110

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB

RBV Designated contracting states (corrected)

Designated state(s): DE FR GB

A4 Supplementary search report drawn up and despatched

Effective date: 20090316

17Q First examination report despatched

Effective date: 20090721

R17C First examination report despatched (corrected)

Effective date: 20090904

DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20190605

RIN1 Information on inventor provided before grant (corrected)

Inventor name: YOSHIDA, HIDEO

Inventor name: MIYATA, YOSHIKUNI

Inventor name: MATSUMOTO, WATARU

Inventor name: SAKAI, RUI

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE FR GB

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602006058842

Country of ref document: DE

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602006058842

Country of ref document: DE

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20200821

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20210611

Year of fee payment: 16

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20210616

Year of fee payment: 16

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20210616

Year of fee payment: 16

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 602006058842

Country of ref document: DE

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20220712

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20220712

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20230201