WO2002037731A2 - Decoding of low density parity check codes - Google Patents

Decoding of low density parity check codes Download PDF

Info

Publication number
WO2002037731A2
WO2002037731A2 PCT/IL2001/001017 IL0101017W WO0237731A2 WO 2002037731 A2 WO2002037731 A2 WO 2002037731A2 IL 0101017 W IL0101017 W IL 0101017W WO 0237731 A2 WO0237731 A2 WO 0237731A2
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
parity
decoding
parity check
probability
Prior art date
Application number
PCT/IL2001/001017
Other languages
French (fr)
Other versions
WO2002037731A3 (en
Inventor
Jacob Goldberger
Original Assignee
Cute Ltd.
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 Cute Ltd. filed Critical Cute Ltd.
Priority to AU2002214235A priority Critical patent/AU2002214235A1/en
Publication of WO2002037731A2 publication Critical patent/WO2002037731A2/en
Publication of WO2002037731A3 publication Critical patent/WO2002037731A3/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • 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
    • 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
    • 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/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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

Definitions

  • the present invention relates to decoding of low density parity check codes and more particularly but not exclusively to a method and apparatus for decoding of low density parity check codes that is suitable for digital data communication such as multimedia.
  • H is an mx n matrix where n is the size of a codeword and m is the number of linear constraints that must be satisfied by each code word.
  • Each row of H therefore represents a linear homogeneous parity-check equation.
  • Low-density parity-check (LDPC) codes are a particular class of linear error correcting codes characterized by a highly sparse parity- check matrix. Typically, in a matrix having a relatively large row length, the entire row may consist of just three ones, the remainder being zeroes. LDPC codes were originally introduced and investigated by Gallager in
  • Gallager considered regular codes whose parity-check matrix had fixed row and column weights. These constraints can be relaxed to produce irregular LDPC codes having a variety of row and column weights as described by Mitzenmacher et. al. cited in M. G. Luby, M.Mitzenmacher, M.A. Shokrollahi and D.A. Spiel an, "Improved low density parity-check codes using irregular graphs and belief propagation", proceedings of the IEEE International Symposium on Inforination Theory (ISIT) , pp. 117, 1998, the contents of which are hereby incorporated by reference..
  • Known decoders include the maximum likelihood decoder and the soft output decoder.
  • the soft-output decoder differs from the maximum likelihood decoding in that it provides an a posteriori probability for each symbol of the codeword.
  • a problem, however, is that the soft-output decoder is typically more computationally involved than the maximum-likelihood decoder.
  • Gallager therefore proposed the iterative decoding scheme referred to above, based on the (later termed) belief propagation method, details of which are discussed in J. Pearl , "probabilistic reasoning in intelligent systems: Networks of plausible inference", Morgan Kaufmann- 1988, the contents of which are hereby incorporated by reference.
  • the belief propagation method which approximately converges to the a posteriori probability of each symbol, is explained.
  • the method relies on a graph-based representation of codes, where the decoding can be understood as message passing in a factor graph. Belief propagation produces exact probabilities in case of a non-cyclic graph. Unfortunately, the graph associated with an LDPC code is cyclic and therefore belief propagation may produce inaccurate probabilities. Nevertheless, Gallager' s decoding algorithm gives good
  • Gallager's iterative decoding for LDPC codes Gallager's algorithm has two alternating components commonly referred to as the horizontal and vertical steps. More specifically, two binary
  • ⁇ ⁇ (l) represents the probability that the fth
  • bits are statistically independent, with associated distributions q - q .
  • Gallagers algorithm Assuming that the codewords are used with equal probability on an arbitrary binary-input continuous-output channel, Gallagers algorithm can be described
  • a single iteration comprises of updating the ⁇ q based on the outcome
  • the value of the kJh transmitted bit ⁇ k can be estimated as
  • the decoding procedure terminates by declaring a decodmg-failure, if some maximum predetermined number of iterations (e.g. 100) occurs with no successful decoding.
  • US Patents 6,081,918 and 6,073,250 refer to the use of low density parity check matrices in recovering data that has been lost in transmission. It does not consider the problem of improving decoding efficiency.
  • Such a method may be useful in for example applying multimedia to the forum of wireless communications.
  • a method of decoding LDPC encoded data comprising: solving parity check equations defined by a low density parity check matrix having a plurality of rows, until parity is reached, for a data matrix iteratively formed by sequential updates of probability differences directly into a single probability difference matrix.
  • a preferred embodiment further comprises the step of forming, for each non-zero entry of the low density parity check matrix:
  • the probability difference matrix is formed by calculating for
  • a preferred embodiment comprises the step of ending decoding if parity is not detected after a predetermined number of iterations and declaring that the incoming signal is too corrupted for decoding.
  • a method of decoding a data signal using a low density parity check matrix comprising a first stage of iteratively carrying out horizontal and vertical decoding steps to form a matrix ⁇ q ⁇ ⁇ and a second stage of testing for parity,
  • each element ⁇ q tk is employable for subsequent calculations as soon as it is
  • the method preferably comprises forming
  • the method further comprises the step for each non-zero entry of the low density parity check matrix of forming:
  • the method further comprises the step of forming a matrix
  • the method further comprises d e steps of
  • the method comprises the steps of iteratively repeating the above steps using the newly calculated values of ⁇ q, k at each stage until parity
  • the step is also provided of ending decoding if parity is not detected after a predetermined number of iterations.
  • a decoder for receiving a signal comprising data bits and decoding it using a low density parity check matrix, the decoder comprising: a probability assignor for assigning to successive incoming data bits probabilities of respectively being "1" and being "0” and for forming a probability difference matrix therefrom, a probability product difference calculator for producing a probability product difference for each row of said low density parity check matrix, an updater for updating said respective probability product difference
  • a decoder for forming a decoded signal based on said updated probability difference matrix
  • the updater is operable to repeat said updating until either one of a group of conditions is fulfilled, said conditions being that said parity check unit indicates that said decoding is successful, and that a predetermined number of repetitions has been reached.
  • the signal is a high density signal.
  • the signal is a multimedia signal.
  • the signal may be a music signal.
  • the decoder may be a part of a 3 rd generation wireless telephony device.
  • Fig. 1 is a generalized diagram showing a data communication link over a noisy channel
  • Fig. 2 is a generalized diagram showing matrices including a sparse
  • FIG. 3 is a simplified flow diagram showing, as a series of numbered steps, an iterative procedure for decoding using a sparse matrix according to an embodiment of the present invention.
  • Fig. 4 is a simplified diagram illustrating the difference between the
  • a procedure for soft-output decoding of low-density parity-check codes is provided.
  • the decoding procedure is based on a principle known as iterative belief propagation, as will be described in detail below.
  • iterative belief propagation In existing algorithms, as described above, two sets of binary distributions are updated iteratively in a process in which all the random variables associated with one set are updated concurrently based on the variables associated with the other set.
  • an auxiliary buffer is required for the updating mechanism.
  • the updating of the random variables is perfo ⁇ ned in- place, meaning in the same matrix, thereby avoiding the need for an auxiliary buffer.
  • existing decoding methods employ extensive control
  • FIG. 1 is a generalized diagram showing a data communication link over a noisy channel.
  • a sender 10 encodes
  • the data signal is distorted as a result of passing through the channel, and noise is added.
  • One of the purposes of encoding is to make the data following modulation more resistant to distortion and to the addition of noise, and to render it susceptible to error detection and correction.
  • one of the methods of encoding is the low density parity check matrix, which requires decoding using an iterative process which can become a relatively high consumer of resources if the data being used is particularly dense, tens of thousands of bits in a short period of time, as with video and other multimedia data.
  • FIG. 2 is a generalized diagram showing matrices including a sparse matrix, for use in the present invention.
  • a sparse matrix H represents a series of parity check equations for data X, each equation occupying a row of the matrix, and the application of a parity check based on matrix X should give a result q of zero for error-free data X.
  • Fig. 3 is a simplified flow diagram
  • Equation is referred to hereinbelow as the probability difference product of the i* equation.
  • soft-output i.e. the posteriori probability
  • the quantities ⁇ q k (l) ⁇ and ⁇ (0) ⁇ are preferably used to generate a
  • the decoding procedure terminates by declaring a decoding-failure (step 112), if some maximum predetermined number of iterations (e.g. 100) occurs (step 111) with no successful decoding.
  • Fig. 4 is a simplified diagram
  • a first process block 200 illustrates the prior art in which the matrix q is converted firstly into a buffer matrix r and the matrix r is then converted into the matrix q.
  • a second process block 202 illustrates the preferred embodiments of the present invention in that the matrix ⁇ . is converted directly into the matrix q without the need for intermediary buffer matrix r.
  • ⁇ q lk is based on values that do not change in the course of a single iteration.
  • Step 3 of Gallager's algorithm the elements in this array need to be updated in each iteration. In the prior art, all the elements are updated concurrently based on equations (3) and (4). This requires an auxiliary buffer for storing the values ⁇ r lk ⁇ computed in equations
  • Updated information preferably propagates rapidly

Abstract

A method of decoding a data signal using a low density parity check matrix, comprising a first stage of iteratively carrying out horizontal and vertical decoding steps to form a matrix (102) and a second stage of testing for parity (109), characterized in that the elements of the matrix are updated sequentially (104), such that each element of the matrix is employable for subsequent calculations as soon as it is updated.

Description

DECODING OF LOW DENSITY PARITY CHECK CODES
Field of the Invention
The present invention relates to decoding of low density parity check codes and more particularly but not exclusively to a method and apparatus for decoding of low density parity check codes that is suitable for digital data communication such as multimedia.
Background of the Invention Error correcting codes are widely utilized to obtain reliable communications over noisy channels. Generally speaking, a linear error correcting code C can be described by a parity-check matrix H satisfying Hx = 0 for any codeword xe C . H is an mx n matrix where n is the size of a codeword and m is the number of linear constraints that must be satisfied by each code word. Each row of H therefore represents a linear homogeneous parity-check equation. Low-density parity-check (LDPC) codes are a particular class of linear error correcting codes characterized by a highly sparse parity- check matrix. Typically, in a matrix having a relatively large row length, the entire row may consist of just three ones, the remainder being zeroes. LDPC codes were originally introduced and investigated by Gallager in
1962, c.f. R.G. Gallager , "Low-density parity-check codes", IRE Trans. Info. Theory, vol. IT-8, pp 21-28, 1962, the contents of which are hereby
incorporated by reference. A problem with the use of low density parity check matrices has been to provide a method of decoding, and one of the most significant features of Gallager' s work is the introduction of iterative decoding algorithms. He showed that, when applied to sparse parity-check matrices, such algorithms are capable of achieving a significant fraction of the channel capacity at relatively low complexity. Furthermore, the number of computations per bit per iteration is independent of the block length n .
Since Gallager' s prominent contribution, LDPC codes have been rediscovered and further investigated by Tanner, Wiberg, Mackay and Neal and others. Details of these investigations may be found in R.M. Tanner, "A recursive approach to low complexity code", IEEE transactions on information theory, 27)5), pp 533-547, 1981, and DJ.C MacKay and R.M. Neal, "Near Shannon limit performance of low-density parity-check codes", Electronic letters, vol. 32, pp. 1645-1646, 1996, the contents of which are hereby incorporated by reference.
Important modifications to Gallager's codes include:
1) Davey and MacKay, cited in M.C. Davey and DJ.C Mackay, "Low- density parity-check codes over GF(q)", IEEE communication letters, vol.2 , No 6 m, 1998, the contents of which are hereby incorporated by reference. In this citation, there is proposed a non-binary version of LDPC codes;
2) Gallager considered regular codes whose parity-check matrix had fixed row and column weights. These constraints can be relaxed to produce irregular LDPC codes having a variety of row and column weights as described by Mitzenmacher et. al. cited in M. G. Luby, M.Mitzenmacher, M.A. Shokrollahi and D.A. Spiel an, "Improved low density parity-check codes using irregular graphs and belief propagation", proceedings of the IEEE International Symposium on Inforination Theory (ISIT) , pp. 117, 1998, the contents of which are hereby incorporated by reference..
Known decoders include the maximum likelihood decoder and the soft output decoder. The more widely used of the two, the maximum-likelihood decoder involves finding a most probable codeword (where the likelihood of the codeword is dependent on the channel model). The soft-output decoder differs from the maximum likelihood decoding in that it provides an a posteriori probability for each symbol of the codeword. A problem, however, is that the soft-output decoder is typically more computationally involved than the maximum-likelihood decoder.
Gallager therefore proposed the iterative decoding scheme referred to above, based on the (later termed) belief propagation method, details of which are discussed in J. Pearl , "probabilistic reasoning in intelligent systems: Networks of plausible inference", Morgan Kaufmann- 1988, the contents of which are hereby incorporated by reference. In this citation the belief propagation method, which approximately converges to the a posteriori probability of each symbol, is explained. The method relies on a graph-based representation of codes, where the decoding can be understood as message passing in a factor graph. Belief propagation produces exact probabilities in case of a non-cyclic graph. Unfortunately, the graph associated with an LDPC code is cyclic and therefore belief propagation may produce inaccurate probabilities. Nevertheless, Gallager' s decoding algorithm gives good
empirical performance since, in particular, the end product is the decoding, and
so the posterior probabilities need not necessarily be exact.
A brief description of Gallager's iterative algorithm follows. For brevity of exposition, we consider the binary case. The extension to the non-binary case is straightforward.
Gallager's iterative decoding for LDPC codes Gallager's algorithm has two alternating components commonly referred to as the horizontal and vertical steps. More specifically, two binary
distributions, q and γΛ , associated with the non-zero elements hlk of the
sparse parity-check matrix H, are iteratively updated. The quantity q (0)
represents the probability that the k'th bit of the transmitted codeword is zero given the information obtained from all the parity equations other than the fth
equation. In a similar manner, γά(l) represents the probability that the fth
parity-check equation is satisfied given that the k th bit is zero and all the other
bits are statistically independent, with associated distributions q - q .
Assuming that the codewords are used with equal probability on an arbitrary binary-input continuous-output channel, Gallagers algorithm can be described
as follows. 1. Initialization
Denote by p (0) the prior probability that the kJh bit of the transmitted
codeword is zero. This probability can be calculated from the received vector corresponding to the transmitted codeword and the channel model. For each non-zero entry htk of the parity-check matrix H, set:
qιk( ) = pk(0) ; qΛQ) -- pβ) .
2. Horizontal step
For each non-zero entry hΛ of the matrix H:
define Sq = q ) ~q (1) and compute
r. ) = +π^) CO l≠/c
rΛ^→-Uδq (2) l≠k where / runs over the non-zero bit positions of the fth parity equation (i.e. hΛ ≠ 0), excluding the kJh position.
3. Vertical Step
For each non-zero entry hlk of the matrix H, update a in the following
manner:
qιk(0) = a pk(0)ϊl(0) (3) q ) = apk(l)Ylr]i(l) (4)
where j runs over the parity equations for which hJk ≠ 0 , and the scalar
is a normalization factor chosen such that q (0) A-q (1) = 1.
Note that an auxiliary buffer is required for storing the values γ
computed in (1) and (2), for the calculation of q as defined in equation (3)
and (4).
4. Tentative decoding
A single iteration comprises of updating the δ q based on the outcome
of the previous iteration, an application of the horizontal step and then
application of the vertical step (except for the first iteration where δ q is
initialized based on the channel measurements). At the end of any iteration (including the initialization step) one can also update the soft-output decision (i.e. the posteriori probability) of each bit:
qk( ) = pk(0)Urjk(0) (5)
J
q ) =a pk(i)Yl β) (6) j where j runs over the parity equations for which hjk ≠ 0. Using (5) and
(6), the value of the kJh transmitted bit χk can be estimated as
Λ. -/ 10 ? ot'he1)rw>is?e'(0) (7) In this manner a tentative bit-by-bit decoding is performed and a
vectors is obtained. If Hx = 0 , i.e. if x is a codeword, the decoding algorithm
halts declaring x as the output. Otherwise, the iterative process continues by
returning to Step 2 above. The decoding procedure terminates by declaring a decodmg-failure, if some maximum predetermined number of iterations (e.g. 100) occurs with no successful decoding.
As mentioned above, an auxiliary buffer is required for storing the
values γ k computed in (1) and (2), for the calculation of q as defined in
equation (3) and (4). Such a buffer requires a large amount of additional memory and control and thus results in an undesirably high time per iteration. Furthermore, the number of iterations until a result is achieved is also undesirably high. Both of these points render the method unsuitable for use with high volume data such as video and other multimedia related data.
US Patents 6,081,918 and 6,073,250 refer to the use of low density parity check matrices in recovering data that has been lost in transmission. It does not consider the problem of improving decoding efficiency.
US 6,081,909 discusses the use ter alia of low density parity check matrices for encoding data. Again it does not deal with the question of efficient decoding.
Summary of the Invention
It is an object of the present invention to overcome the above-mentioned limitations and to provide a method which is suitable for use with high volume
data such as multimedia-type data which needs to be processed rapidly. Such a method may be useful in for example applying multimedia to the forum of wireless communications.
According to a first aspect of the present invention there is a method of decoding LDPC encoded data comprising: solving parity check equations defined by a low density parity check matrix having a plurality of rows, until parity is reached, for a data matrix iteratively formed by sequential updates of probability differences directly into a single probability difference matrix.
In a preferred embodiment the step of forming a sequential update comprises a step for each row of said parity check matrix of forming a probability difference product
l k
where δq^ is the difference between the probabilities that the i th element in the kft row is a "1" and a "0". A preferred embodiment further comprises the step of forming, for each non-zero entry of the low density parity check matrix:
qιk(0) = apk(0)π δq}k+ Sj) and
Preferably, the probability difference matrix is formed by calculating for
each one of a plurality of positions in said matrix the differences between q(0)
and q(l) for said respective position.
Preferably there are provided steps of forming said data matrix {X} using {δqά },
testing the data matrix {X} for parity, and accepting the matrix {X} as a final data matrix if parity is detected. In an embodiment further iterations are carried out using newly calculated values of δqlk at each stage until parity is detected.
A preferred embodiment comprises the step of ending decoding if parity is not detected after a predetermined number of iterations and declaring that the incoming signal is too corrupted for decoding.
According to a second aspect of the invention there is provided a method of decoding a data signal using a low density parity check matrix, comprising a first stage of iteratively carrying out horizontal and vertical decoding steps to form a matrix {δqΛ} and a second stage of testing for parity,
characterized in that the elements of {δglk} are updated sequentially, such that
each element δqtk is employable for subsequent calculations as soon as it is
updated.
The method preferably comprises forming
S,=ψ k qΛ
where δqΛ is the difference between the probabilities that the 1th element in the k row is a "1" and a "0". Preferably, the method further comprises the step for each non-zero entry of the low density parity check matrix of forming:
Figure imgf000010_0001
Preferably, the method further comprises the step of forming a matrix
{ δqlk } of differences between q(0) and q(l).
Preferably, the method further comprises d e steps of
forming a data matrix {X} using { δqlk },
testing the data matrix {X} for parity, and accepting the matrix {X} as a final data matrix if parity is detected. Preferably the method comprises the steps of iteratively repeating the above steps using the newly calculated values of δq,k at each stage until parity
is detected.
Preferably, the step is also provided of ending decoding if parity is not detected after a predetermined number of iterations.
According to a third aspect of the present invention there is provided a decoder for receiving a signal comprising data bits and decoding it using a low density parity check matrix, the decoder comprising: a probability assignor for assigning to successive incoming data bits probabilities of respectively being "1" and being "0" and for forming a probability difference matrix therefrom, a probability product difference calculator for producing a probability product difference for each row of said low density parity check matrix, an updater for updating said respective probability product difference
and a respective entry of said probability difference matrix for each non-zero entry of said low density parity check matrix,
a decoder for forming a decoded signal based on said updated probability difference matrix, and
a parity check unit for checking the parity of said decoded signal. Preferably, the updater is operable to repeat said updating until either one of a group of conditions is fulfilled, said conditions being that said parity check unit indicates that said decoding is successful, and that a predetermined number of repetitions has been reached.
Preferably, the signal is a high density signal. Preferably, the signal is a multimedia signal. The signal may be a music signal.
The decoder may be a part of a 3rd generation wireless telephony device.
Brief Description of the Drawings For a better understanding of the invention, and to show how the same may be carried into effect, reference will now be made, purely by way of example, to the accompanying drawings, in which:
Fig. 1 is a generalized diagram showing a data communication link over a noisy channel,
Fig. 2 is a generalized diagram showing matrices including a sparse
matrix, for use in the present invention, Fig. 3 is a simplified flow diagram showing, as a series of numbered steps, an iterative procedure for decoding using a sparse matrix according to an embodiment of the present invention, and
Fig. 4 is a simplified diagram illustrating the difference between the
prior art and embodiments of the invention, in that it eliminates the need to store the matrix "r".
Description of the Preferred Embodiments According to a first embodiment of the present invention there is provided a procedure for soft-output decoding of low-density parity-check codes. The decoding procedure is based on a principle known as iterative belief propagation, as will be described in detail below. In existing algorithms, as described above, two sets of binary distributions are updated iteratively in a process in which all the random variables associated with one set are updated concurrently based on the variables associated with the other set. Thus, an auxiliary buffer is required for the updating mechanism. According to the present embodiment, the updating of the random variables is perfoπned in- place, meaning in the same matrix, thereby avoiding the need for an auxiliary buffer. Moreover, while existing decoding methods employ extensive control
mechanisms for administrating the low density matrix, referred to below as the sparse-matrix, the approach of the present embodiments, referred to below as
the in-place approach, completely eliminates the need for such control. The in- place approach consequently propagates the updated information much more rapidly. Thus only a small number of iterations suffice for successful decoding.
Reference is now made to Fig. 1, which is a generalized diagram showing a data communication link over a noisy channel. A sender 10 encodes
data using an encoder 12 for sending via a channel 14 to a receiver 16 who decodes the data using a decoder 18. The data signal is distorted as a result of passing through the channel, and noise is added. One of the purposes of encoding is to make the data following modulation more resistant to distortion and to the addition of noise, and to render it susceptible to error detection and correction.
As discussed in detail in the introduction, one of the methods of encoding is the low density parity check matrix, which requires decoding using an iterative process which can become a relatively high consumer of resources if the data being used is particularly dense, tens of thousands of bits in a short period of time, as with video and other multimedia data.
Reference is now made to Fig. 2, which is a generalized diagram showing matrices including a sparse matrix, for use in the present invention. A sparse matrix H represents a series of parity check equations for data X, each equation occupying a row of the matrix, and the application of a parity check based on matrix X should give a result q of zero for error-free data X. The aim of decoding is therefore to solve H x X = 0, for X using an iterative technique.
Reference is now made to Fig. 3, which is a simplified flow diagram
showing, as a series of numbered steps, an iterative procedure for decoding using a sparse matrix according to an embodiment of the present invention. As
before, the decoding method is described for the binary case, while the extension of the algorithm to the non-binary case is straightforward.
In the following it is assumed that all codewords are used with equal probability on an arbitrary binary-input continuous-output channel.
1. Initialization 101
Following Gallager's initialization step described above, for each nonzero entry hlk of H set:
Figure imgf000015_0001
and we calculate
Sqιk = qιk( )-qιkd) .
For each parity-check equation we then calculate
where k runs over all the non-zero entries hlk of the / Jh parity-check
equation. Thus, ^ is calculated while taking into consideration all the bits that
are associated with the / ft parity-check equation. The quantity fiι of the 1th
equation is referred to hereinbelow as the probability difference product of the i* equation.
2. The Horizontal-Vertical Step 102 In this step the algorithm entities are updated and re-employed within the same iteration for the updating process as described below.
For each non-zero entry hlk of H, update q in the following manner
(step 104):
Figure imgf000016_0001
q ) = c pk (DWq -S) do)
where j runs over the parity equations for which hjk ≠ 0 excluding the
fth check equation, and where the scalar a is chosen as before. Thus, q is
updated while talcing into consideration all the parity-check equations that include the k th bit, excluding the iJh equation.
As soon as q is calculated in equations (9) and (10), it is then possible
to recalculate δqlk and then preferably update gι as defined in equation (8)
using the updated δqlk (step 105). It is pointed out that the updating of $
requires merely 2 multiplications regardless of the number of non-zero entries in the ith check equation (and hence it holds true for any LDPC code). Theoretical motivation for the updating method described by equations (9) and (10) is given below, in the section headed "Theory".
3. Tentative decoding At the end of any iteration (including the initialization step above) the
soft-output (i.e. the posteriori probability) for each bit is preferably calculated (step 107) as follows:
qk( ) =aPk( )U(δq +Sj)
J
Figure imgf000017_0001
where j runs over the parity equations for which hjk ≠ 0. Thus, q is
calculated while taking mto consideration all the parity-check equations that include the k'th bit.
The quantities {qk (l)} and {^(0)} are preferably used to generate a
tentative bit-by-bit decoded vector x (step 108), where each bit xk is given by
equation (7). If H = 0, i.e. if je is a codeword (step 109), the decoding algorithm terminates successfully (step 110), declaring x as the output. Otherwise, the iterative process continues by returning to the Horizontal- Vertical Step above. The decoding procedure terminates by declaring a decoding-failure (step 112), if some maximum predetermined number of iterations (e.g. 100) occurs (step 111) with no successful decoding.
The manner in which the parameters are updated during the horizontal- vertical step 103-106, is based on the following:
According to the common implementation of belief propagation
methods, updating of the probabilities is based on the following formulae:
r,t (θ) = (i +π^„) (ii) l≠k qΛ(θ) = aPk(omrjt(θ) (12)
J≠i
Substituting (11) mto (12) yields:
Figure imgf000018_0001
Figure imgf000018_0002
In a similar manner:
q )-p n 14) j≠iτ A - --U q]k-ψqj) ( o q j≠i i
Recalling that $t = JJδq , and since the normalization factor a can k absorb the common multiplicands in both (13) and (14), the following equations are obtained
Figure imgf000018_0003
q,k®=αPk®ϊlq]k-S)
J≠i
where α is chosen to satisfy αq,k (1) + qlk (0) = 1 , Hence the simplified updating of the present embodiment becomes
possible.
Reference is now made to Fig. 4, which is a simplified diagram
illustrating the difference between the prior art and embodiments of the
invention, in that it eliminates the need to store the matrix "r". A first process block 200 illustrates the prior art in which the matrix q is converted firstly into a buffer matrix r and the matrix r is then converted into the matrix q. A second process block 202 illustrates the preferred embodiments of the present invention in that the matrix α. is converted directly into the matrix q without the need for intermediary buffer matrix r.
In the prior art of LDPC decoding methods, all the relevant parameters,
namely {δqlk}, are updated concurrently. Hence, the updating of each element
δqlk is based on values that do not change in the course of a single iteration.
These values may become stale as more and more elements are updated. By contrast, with in-place decoding, as soon as δqlk is computed, it is used (within
the same iteration) for updating all the subsequently computed parameters. This approach propagates the influence of an updated element on the other parameters in a rapid manner. Consequently, the convergence of the iterative algorithm is accelerated. In other words, on the average, less iterations are
required for successful decoding.
The above-mentioned result, of accelerated convergence, is difficult to prove analytically, however the empirical results of a simulation, that
demonstrate that accelerated convergence in fact occurs, are presented in table 1. The simulation assumes a binary rate V∑, LDPC code of block length 13000 bits, and the results are summarized in Table 1. The average number of iterations required for the prior art and the proposed in-place decoding method are compared as a function of the noise level.
Figure imgf000020_0001
the average number of iterations required for convergence Theory
The following equations show the theoretical justification for the manner in which the parameters are updated during the horizontal-vertical step 103-106 according to the above-described embodiment. According to the common implementation of belief propagation methods, updating of the probabilities is based on the following formulae: r<k(θ) = iA-γiδqιl) (ii)
qlk() = apk(θ)UrJk(θ) (12) j≠i
Substituting (11) into (12) yields:
Figure imgf000021_0001
Figure imgf000021_0002
In a similar manner:
Figure imgf000021_0003
Recalling that S,~ ϊ^ » an<^ sulce me normalization factor a can k absorb the common multiplicands in both (13) and (14), the following equations are obtained
qik ( )-apk (0) U (Sqjk + Sj)
J≠i
Figure imgf000021_0004
where a is chosen to satisfy aq,k (1) A-aqlk (0) = 1. Thus updating of the
matrix according to the above-described procedure becomes possible.
The above embodiments thus improve upon prior art iterative decoding
methods for LDPC codes. The main procedural difference is in the process of a single iteration as described above. An array {δqlk} is used to pass information
from one iteration to the next. As noted in Step 3 of Gallager's algorithm, the elements in this array need to be updated in each iteration. In the prior art, all the elements are updated concurrently based on equations (3) and (4). This requires an auxiliary buffer for storing the values {rlk} computed in equations
(1) and (2). By contrast, according to the above-described embodiments, the elements of {δqlk} are updated sequentially and each element { δqlk } is
employed for subsequent calculations as soon as it is updated. The methods of the preferred embodiments are hence referred to as in-place decoding. The preferred embodiments have several inherent advantages:
1) A small buffer, whose size is proportional to the number of parity-check equations, is employed, rather than the one required for
saving the data {r, whose size is proportional to the number of non-zero
elements in H.
2) The excessive control mechanism required for
administrating a large sparse matrix is preferably avoided due to the
sequential nature of the in-place procedure. 3) Updated information preferably propagates rapidly
through the graph representation of the code and therefore the computed probabilities are more accurate.
4) The average number of iterations required for successful decoding and hence the decoding delay and the overall decoding complexity (operations per decoded bit) is preferably considerably reduced.
There is thus provided a method of decoding of received signals which have been encoded using LDPC matrices, which method does away with an intermediate matrix and which leads to earlier convergence of decoding iterations.
It is appreciated that features described only in respect of one or some of the embodiments are applicable to other embodiments and that for reasons of space it is not possible to detail all possible combinations. Nevertheless, the scope of the above description extends to all reasonable combinations of the above described features.
The present invention is not limited by the above-described embodiments, which are given by way of example only. Rather the invention is defined by the appended claims.

Claims

ClaimsWe claim:
1. A method of decoding LDPC encoded data comprising solving parity check equations defined by a low density parity check matrix having a plurality of rows, until parity is reached, for a data matrix iteratively formed by sequential updates of probability differences directly into a single probability difference matrix.
2. A method according to claim 1, wherein forming a sequential update comprises a step for each row of said parity check matrix of forming a
probability difference product S, ~ Y\.^q k where δq;k is the difference between the probabilities that the 1th element in the k* row is a "1" and a "0".
3. A method according to claim 2, further comprising the step for each non-zero entry of the low density parity check matrix of forming:
) = c pk (θ)Wq +S) and
Figure imgf000024_0001
4. A method according to claim 3, wherein said probability difference matrix is formed by calculating for each one of a plurality of
positions in said matrix the differences between q(0) and q(l) for said
respective position.
5. A method according to claim 3, further comprising the steps of
forming said data matrix {X} using { δqik },
testing the data matrix {X} for parity, and accepting the matrix {X} as a final data matrix if parity is detected.
6. A method according to claim 5, comprising the steps of repeating the steps of claims 2 to 5 using the newly calculated values of δqjk if parity is
not detected.
7. A method according to claim 6, further comprising the step of ending decoding if parity is not detected after a predetermined number of iterations.
8. A method of decoding a data signal using a low density parity check matrix, comprising a first stage of iteratively carrying out horizontal and
vertical decoding steps to form a matrix {δqik} and a second stage of testing for
parity, characterized in that the elements of {δqik} are updated sequentially, such that each element δqlk is employable for subsequent calculations as soon
as it is updated.
9. A method according to claim 8, comprising forming
Figure imgf000026_0001
where δqik is the difference between the probabilities that the i •th ' element in the kth row is a "1" and a "0".
10. A method according to claim 9, further comprising the step for each non-zero entry of the low density parity check matrix of forming:
q,k(0) = apk( )π(δqjk+Sj) and
q^ =aPk®ψq»-S)
11. A method according to claim 10, further comprising the step of
forming a matrix { δqlk } of differences between q(0) and q(l).
12. A method according to claim 11 , further comprising the steps of forming a data matrix {X} using { δq,k },
testing the data matrix {X} for parity, and accepting the matrix {X} as a final data matrix if parity is detected.
13. A method according to claim 12, comprising the steps of
repeatmg the steps of claims 2 to 5 using the newly calculated values of δq!k if
parity is not detected.
14. A method according to claim 13, further comprising the step of ending decoding if parity is not detected after a predetermined number of iterations.
15. A decoder for receiving a signal comprising data bits and decoding it using a low density parity check matrix, the decoder comprising: a probability assignor for assigning to successive incoming data bits probabilities of respectively being "1" and being "0" and for forming a probability difference matrix therefrom, a probability product difference calculator for producing a probability product difference for each row of said low density parity check matrix, an updater for updating said respective probability product difference and a respective entry of said probability difference matrix for each non-zero entry of said low density parity check matrix, a decoder for forming a decoded signal based on said updated probability difference matrix, and a parity check unit for checking the parity of said decoded signal.
16. A decoder according to claim 15, wherein said updater is
operable to repeat said updating until either one of a group of conditions is fulfilled, said conditions being that said parity check unit indicates that said
decoding is successful, and that a predetermined number of repetitions has been reached.
17. A decoder according to claim 15, wherein said signal is a video signal.
18. A decoder according to claim 15, wherein said signal is a
multimedia signal.
19. A decoder according to claim 15, wherein said signal is a music signal.
20. A decoder according to claim 15, which is part of a 3rd generation wireless telephony device.
PCT/IL2001/001017 2000-11-03 2001-11-01 Decoding of low density parity check codes WO2002037731A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002214235A AU2002214235A1 (en) 2000-11-03 2001-11-01 Decoding of low density parity check codes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US70475700A 2000-11-03 2000-11-03
US09/704,757 2000-11-03

Publications (2)

Publication Number Publication Date
WO2002037731A2 true WO2002037731A2 (en) 2002-05-10
WO2002037731A3 WO2002037731A3 (en) 2002-10-24

Family

ID=24830745

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2001/001017 WO2002037731A2 (en) 2000-11-03 2001-11-01 Decoding of low density parity check codes

Country Status (2)

Country Link
AU (1) AU2002214235A1 (en)
WO (1) WO2002037731A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1536568A1 (en) * 2003-11-26 2005-06-01 Matsushita Electric Industrial Co., Ltd. Belief propagation decoder cancelling the exchange of unreliable messages
WO2005053215A1 (en) * 2003-11-28 2005-06-09 Samsung Electronics Co., Ltd. Error correction method and apparatus for low density parity check
KR100891782B1 (en) * 2002-06-11 2009-04-07 삼성전자주식회사 Apparatus and method for correcting of forward error in high data transmission system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US5515387A (en) * 1994-12-12 1996-05-07 Trw Inc. Signal independent pulse code modulation data enhancer and associated method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US5515387A (en) * 1994-12-12 1996-05-07 Trw Inc. Signal independent pulse code modulation data enhancer and associated method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MACKAY D.J.C. AND NEAL R.M.: 'Near Shannon limit performance of low density parity check codes' IEEE ELECTRONIC LETTERS vol. 32, no. 18, 29 August 1996, pages 1645 - 1646, XP000637810 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100891782B1 (en) * 2002-06-11 2009-04-07 삼성전자주식회사 Apparatus and method for correcting of forward error in high data transmission system
EP1536568A1 (en) * 2003-11-26 2005-06-01 Matsushita Electric Industrial Co., Ltd. Belief propagation decoder cancelling the exchange of unreliable messages
WO2005053164A1 (en) * 2003-11-26 2005-06-09 Matsushita Electric Industrial Co.,Ltd. Belief propagation decoder cancelling the exchange of unreliable messages
WO2005053215A1 (en) * 2003-11-28 2005-06-09 Samsung Electronics Co., Ltd. Error correction method and apparatus for low density parity check
KR100975060B1 (en) * 2003-11-28 2010-08-11 삼성전자주식회사 Error collection method for low density parity check and the apparatus thereof

Also Published As

Publication number Publication date
AU2002214235A1 (en) 2002-05-15
WO2002037731A3 (en) 2002-10-24

Similar Documents

Publication Publication Date Title
US8151171B2 (en) Operational parameter adaptable LDPC (low density parity check) decoder
US8010869B2 (en) Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
US7500172B2 (en) AMP (accelerated message passing) decoder adapted for LDPC (low density parity check) codes
US7484158B2 (en) Method for decoding a low-density parity check (LDPC) codeword
US8918694B2 (en) Non-concatenated FEC codes for ultra-high speed optical transport networks
US7774689B2 (en) Encoding and decoding methods and systems
US20070022354A1 (en) Method for encoding low-density parity check code
US20040268205A1 (en) Low-density parity-check codes for multiple code rates
US10374759B2 (en) High throughput communication system
Zimmermann et al. Reduced complexity LDPC decoding using forced convergence
WO2003073621A1 (en) Ldpc code inspection matrix generation method and inspection matrix generation device
EP1687902B1 (en) Belief propagation decoder cancelling the exchange of unreliable messages
US20020002695A1 (en) Method and system for decoding
Chen et al. Low-density parity-check convolutional codes applied to packet based communication systems
Wijekoon et al. LDPC-staircase codes for soft decision decoding
WO2002037731A2 (en) Decoding of low density parity check codes
EP3891897B1 (en) Iterative decoder for decoding a code composed of at least two constraint nodes
Lentmaier et al. Exact erasure channel density evolution for protograph-based generalized LDPC codes
Ullah et al. Two-way normalization of min-sum decoding algorithm for medium and short length low density parity check codes
Bellorado et al. Soft-input, iterative, Reed-Solomon decoding using redundant parity-check equations
Cheng et al. An decoding parameter optimization method for LDPC codes in 5G NR based on 3D EXIT chart
Mathews et al. Decoding LDPC codes with probabilistic local maximum likelihood bit flipping
Tahir Construction and performance of polar codes for transmission over the awgn channel
KR102635444B1 (en) Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code
Chandrasetty et al. A reduced complexity message passing algorithm with improved performance for LDPC decoding

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP