GOOD2 L05_LDPCCode

download GOOD2  L05_LDPCCode

of 53

Transcript of GOOD2 L05_LDPCCode

  • 7/27/2019 GOOD2 L05_LDPCCode

    1/53

    Introduction to Low Density Parity Check (LDPC) CodesESE576: Digital Communications

    Charles Jeon1

    1Student at Department of Electrical & Systems Engineering

    University of Pennsylvania

    June 15, 2012

    http://find/http://goback/
  • 7/27/2019 GOOD2 L05_LDPCCode

    2/53

    Outline

    1 History

    2 Encoding LDPC Codes

    3 DecodingHard-Decision DecodingSoft-Decision Decoding

    4

    Performance

    5 Summary

    http://find/http://goback/
  • 7/27/2019 GOOD2 L05_LDPCCode

    3/53

    History of LDPC Codes

    LDPC codes were developed by Robert E. Gallager in his doctoraldissertation at MIT in 1960

    Some people refer to LDPC codes as Gallager codes in his honor

    They were forgotten at that time because they were considered tooimpractical to implement

    LDPC codes were rediscovered by MacKay and Neal in 1996

    Similar to Turbo codes, LDPC codes are a class of codes that aredecoded iteratively and perform very close to the Shannon limit

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    4/53

    History of LDPC Codes

    LDPC codes were developed by Robert E. Gallager in his doctoraldissertation at MIT in 1960

    Some people refer to LDPC codes as Gallager codes in his honor

    They were forgotten at that time because they were considered tooimpractical to implement

    LDPC codes were rediscovered by MacKay and Neal in 1996

    Similar to Turbo codes, LDPC codes are a class of codes that aredecoded iteratively and perform very close to the Shannon limit

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    5/53

    History of LDPC Codes

    LDPC codes were developed by Robert E. Gallager in his doctoraldissertation at MIT in 1960

    Some people refer to LDPC codes as Gallager codes in his honor

    They were forgotten at that time because they were considered tooimpractical to implement

    LDPC codes were rediscovered by MacKay and Neal in 1996

    Similar to Turbo codes, LDPC codes are a class of codes that aredecoded iteratively and perform very close to the Shannon limit

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    6/53

    History of LDPC Codes

    LDPC codes were developed by Robert E. Gallager in his doctoraldissertation at MIT in 1960

    Some people refer to LDPC codes as Gallager codes in his honor

    They were forgotten at that time because they were considered tooimpractical to implement

    LDPC codes were rediscovered by MacKay and Neal in 1996

    Similar to Turbo codes, LDPC codes are a class of codes that aredecoded iteratively and perform very close to the Shannon limit

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    7/53

    History of LDPC Codes

    LDPC codes were developed by Robert E. Gallager in his doctoraldissertation at MIT in 1960

    Some people refer to LDPC codes as Gallager codes in his honor

    They were forgotten at that time because they were considered tooimpractical to implement

    LDPC codes were rediscovered by MacKay and Neal in 1996

    Similar to Turbo codes, LDPC codes are a class of codes that aredecoded iteratively and perform very close to the Shannon limit

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    8/53

    Overview of Linear Block Codes

    A (n,k) linear block code with data input vector x with length k, and

    codeword vector c with length n is a k dimensional vector subspace of{0,1}n

    For any linear block code, the codeword vectors c are given by c = xGwhere x is the k-bit input vector and G is the kn generator matrix.

    The generator matrix G can be expressed as G = [Ik|P] where Ik is thekk identity matrix and P is a k (n k) matrix

    The (n k) n parity check matrix H is defined to be some matrixsuch that cHT = 0 for all codeword vectors c

    Each row of H gives a parity check equation for each code bits withsum (modulo-2) of zero

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    9/53

    Overview of Linear Block Codes

    A (n,k) linear block code with data input vector x with length k, and

    codeword vector c with length n is a k dimensional vector subspace of{0,1}n

    For any linear block code, the codeword vectors c are given by c = xGwhere x is the k-bit input vector and G is the kn generator matrix.

    The generator matrix G can be expressed as G = [Ik|P] where Ik is thekk identity matrix and P is a k (n k) matrix

    The (n k) n parity check matrix H is defined to be some matrixsuch that cHT = 0 for all codeword vectors c

    Each row of H gives a parity check equation for each code bits withsum (modulo-2) of zero

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    10/53

    Overview of Linear Block Codes

    A (n,k) linear block code with data input vector x with length k, and

    codeword vector c with length n is a k dimensional vector subspace of{0,1}n

    For any linear block code, the codeword vectors c are given by c = xGwhere x is the k-bit input vector and G is the kn generator matrix.

    The generator matrix G can be expressed as G = [Ik|P] where Ik is thekk identity matrix and P is a k (n k) matrix

    The (n k) n parity check matrix H is defined to be some matrix

    such that cHT = 0 for all codeword vectors c

    Each row of H gives a parity check equation for each code bits withsum (modulo-2) of zero

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    11/53

    Overview of Linear Block Codes

    A (n,k) linear block code with data input vector x with length k, and

    codeword vector c with length n is a k dimensional vector subspace of{0,1}n

    For any linear block code, the codeword vectors c are given by c = xGwhere x is the k-bit input vector and G is the kn generator matrix.

    The generator matrix G can be expressed as G = [Ik|P] where Ik is thekk identity matrix and P is a k (n k) matrix

    The (n k) n parity check matrix H is defined to be some matrix

    such that cHT = 0 for all codeword vectors c

    Each row of H gives a parity check equation for each code bits withsum (modulo-2) of zero

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    12/53

    Overview of Linear Block Codes

    A (n,k) linear block code with data input vector x with length k, and

    codeword vector c with length n is a k dimensional vector subspace of{0,1}n

    For any linear block code, the codeword vectors c are given by c = xGwhere x is the k-bit input vector and G is the kn generator matrix.

    The generator matrix G can be expressed as G = [Ik|P] where Ik is thekk identity matrix and P is a k (n k) matrix

    The (n k) n parity check matrix H is defined to be some matrix

    such that cHT = 0 for all codeword vectors c

    Each row of H gives a parity check equation for each code bits withsum (modulo-2) of zero

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    13/53

    LDPC Codes are Type of Linear Block Codes

    LDPC codes are a class of linear block codes characterized by a sparseparity check matrix H

    Sparse implies that most of the elements ofH are 0; therefore, H haslow density of 1s

    Expect a large dmin distance

    LDPC codes are regular LDPC codes if H has uniform number of 1s

    in columns and rows Ifwc and wr are number of 1s in columns and rows, wc n k and

    wr n for H to be sparse Usually irregular LDPC codes perform better than regular codes

    Sample parity check matrix H

    H =

    0 1 0 1 1 0 0 11 1 1 0 0 1 0 00 0 1 0 0 1 1 1

    1 0 0 1 1 0 1 0

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    14/53

    LDPC Codes are Type of Linear Block Codes

    LDPC codes are a class of linear block codes characterized by a sparseparity check matrix H

    Sparse implies that most of the elements ofH are 0; therefore, H haslow density of 1s

    Expect a large dmin distance

    LDPC codes are regular LDPC codes if H has uniform number of 1s

    in columns and rows Ifwc and wr are number of 1s in columns and rows, wc n k and

    wr n for H to be sparse Usually irregular LDPC codes perform better than regular codes

    Sample parity check matrix H

    H =

    0 1 0 1 1 0 0 11 1 1 0 0 1 0 00 0 1 0 0 1 1 1

    1 0 0 1 1 0 1 0

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    15/53

    LDPC Codes are Type of Linear Block Codes

    LDPC codes are a class of linear block codes characterized by a sparseparity check matrix H

    Sparse implies that most of the elements ofH are 0; therefore, H haslow density of 1s

    Expect a large dmin distance

    LDPC codes are regular LDPC codes if H has uniform number of 1s

    in columns and rows Ifwc and wr are number of 1s in columns and rows, wc n k and

    wr n for H to be sparse Usually irregular LDPC codes perform better than regular codes

    Sample parity check matrix H

    H =

    0 1 0 1 1 0 0 11 1 1 0 0 1 0 00 0 1 0 0 1 1 1

    1 0 0 1 1 0 1 0

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    16/53

    Encoding LDPC Codes

    Given some sparse parity check matrix H, we can use row and columnoperations to set H =

    PT|Ink

    and find the generator matrix G

    Since G = [Ik|P], codeword vector c = xG = [x|xP]

    Some practical issues with this:

    Size ofG becomes very large G is generally not sparse

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    17/53

    Encoding LDPC Codes

    Given some sparse parity check matrix H, we can use row and columnoperations to set H =

    PT|Ink

    and find the generator matrix G

    Since G = [Ik|P], codeword vector c = xG = [x|xP]

    Some practical issues with this:

    Size ofG becomes very large G is generally not sparse

    d d

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    18/53

    Encoding LDPC Codes

    Given some sparse parity check matrix H, we can use row and columnoperations to set H =

    PT|Ink

    and find the generator matrix G

    Since G = [Ik|P], codeword vector c = xG = [x|xP]

    Some practical issues with this:

    Size ofG becomes very large G is generally not sparse

    T G h

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    19/53

    Tanner Graph

    Alternative geometric approach to LDPC codes

    Michael Tanner showed that parity check matrix H can be representedeffectively by using a bipartite graph or Tanner graph

    Unidirectional graph whose nodes are separated into two classes, where

    the edges only connect two nodes that are not in the same class

    Tanner Graph has two classes of nodes:

    Variable nodes (v): correspond to bit/symbol nodes to columns ofH

    For (n

    k)

    nmatrix

    H, we have

    n vnodes

    Check nodes (c): correspond to parity check equations to the rows ofH

    We have n k c nodes

    T G h

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    20/53

    Tanner Graph

    Alternative geometric approach to LDPC codes

    Michael Tanner showed that parity check matrix H can be representedeffectively by using a bipartite graph or Tanner graph

    Unidirectional graph whose nodes are separated into two classes, where

    the edges only connect two nodes that are not in the same class

    Tanner Graph has two classes of nodes:

    Variable nodes (v): correspond to bit/symbol nodes to columns ofH

    For (n

    k)

    nmatrix

    H, we have

    n vnodes

    Check nodes (c): correspond to parity check equations to the rows ofH

    We have n k c nodes

    T G h

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    21/53

    Tanner Graph

    Alternative geometric approach to LDPC codes

    Michael Tanner showed that parity check matrix H can be representedeffectively by using a bipartite graph or Tanner graph

    Unidirectional graph whose nodes are separated into two classes, where

    the edges only connect two nodes that are not in the same class

    Tanner Graph has two classes of nodes:

    Variable nodes (v): correspond to bit/symbol nodes to columns ofH

    For (n

    k

    )n

    matrixH

    , we haven v

    nodes Check nodes (c): correspond to parity check equations to the rows ofH

    We have n k c nodes

    E l f T G h

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    22/53

    Example of Tanner Graph

    Example

    H =

    0 1 0 1 1 0 0 11 1 1 0 0 1 0 00 0 1 0 0 1 1 11 0 0 1 1 0 1 0

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 c1 c2 c3

    LDPC D di i N t A E T k

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    23/53

    LDPC Decoding is Not An Easy Task

    Similar to Decoding for Turbo Codes, there are two types of iterativedecoding: Hard and Soft Decision Decoding

    Has been shown that iterative decoding algorithms of sparse codesperform very close to optimal decoder

    Some common algorithms:

    Bit-flipping Algorithm Sum-Product Algorithm (Message passing/Belief Propagation

    Algorithm) Min-Sum Algorithm

    Reduced complexity approximation to the Sum-Product Algorithm

    In general, per-iteration complexity of LDPC code is less than that forTurbo codes

    More iterations maybe required

    LDPC Decoding is Not An Easy Task

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    24/53

    LDPC Decoding is Not An Easy Task

    Similar to Decoding for Turbo Codes, there are two types of iterativedecoding: Hard and Soft Decision Decoding

    Has been shown that iterative decoding algorithms of sparse codesperform very close to optimal decoder

    Some common algorithms:

    Bit-flipping Algorithm Sum-Product Algorithm (Message passing/Belief Propagation

    Algorithm) Min-Sum Algorithm

    Reduced complexity approximation to the Sum-Product Algorithm

    In general, per-iteration complexity of LDPC code is less than that forTurbo codes

    More iterations maybe required

    LDPC Decoding is Not An Easy Task

    http://find/http://goback/
  • 7/27/2019 GOOD2 L05_LDPCCode

    25/53

    LDPC Decoding is Not An Easy Task

    Similar to Decoding for Turbo Codes, there are two types of iterativedecoding: Hard and Soft Decision Decoding

    Has been shown that iterative decoding algorithms of sparse codesperform very close to optimal decoder

    Some common algorithms:

    Bit-flipping Algorithm Sum-Product Algorithm (Message passing/Belief Propagation

    Algorithm) Min-Sum Algorithm

    Reduced complexity approximation to the Sum-Product Algorithm

    In general, per-iteration complexity of LDPC code is less than that forTurbo codes

    More iterations maybe required

    LDPC Decoding is Not An Easy Task

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    26/53

    LDPC Decoding is Not An Easy Task

    Similar to Decoding for Turbo Codes, there are two types of iterativedecoding: Hard and Soft Decision Decoding

    Has been shown that iterative decoding algorithms of sparse codesperform very close to optimal decoder

    Some common algorithms:

    Bit-flipping Algorithm Sum-Product Algorithm (Message passing/Belief Propagation

    Algorithm) Min-Sum Algorithm

    Reduced complexity approximation to the Sum-Product Algorithm

    In general, per-iteration complexity of LDPC code is less than that forTurbo codes

    More iterations maybe required

    Bit Flipping Algorithm

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    27/53

    Bit-Flipping Algorithm

    As the name suggests, bits are continually flipped by the algorithm

    Algorithm:

    Step 1: For each received variable nodes vi, calculate the parity checknode c

    j. Terminate the algorithm if all check node c

    jare 0.

    Step 2: For each check node cj, j= 1,2, . . . consecutively, we flip thebits of the connected variables nodes {vk} in order ifcj = 1 andconverts back to received bits ifcj = 0

    Step 3: Go back to Step 1

    We will show by a simple example

    Bit-Flipping Algorithm

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    28/53

    Bit-Flipping Algorithm

    As the name suggests, bits are continually flipped by the algorithm

    Algorithm:

    Step 1: For each received variable nodes vi, calculate the parity checknode c

    j. Terminate the algorithm if all check node c

    jare 0.

    Step 2: For each check node cj, j= 1,2, . . . consecutively, we flip thebits of the connected variables nodes {vk} in order ifcj = 1 andconverts back to received bits ifcj = 0

    Step 3: Go back to Step 1

    We will show by a simple example

    Bit-Flipping Algorithm

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    29/53

    Bit Flipping Algorithm

    As the name suggests, bits are continually flipped by the algorithm

    Algorithm:

    Step 1: For each received variable nodes vi, calculate the parity checknode c

    j. Terminate the algorithm if all check node c

    jare 0.

    Step 2: For each check node cj, j= 1,2, . . . consecutively, we flip thebits of the connected variables nodes {vk} in order ifcj = 1 andconverts back to received bits ifcj = 0

    Step 3: Go back to Step 1

    We will show by a simple example

    Bit-Flipping Algorithm (Contd )

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    30/53

    Bit Flipping Algorithm (Contd.)

    For the Matrix H =

    0 1 0 1 1 0 0 11 1 1 0 0 1 0 00 0 1 0 0 1 1 11 0 0 1 1 0 1 0

    , assume that anerror free received code word would be c = [1 0 0 1 0 1 0 1]

    Since cHT = 0, this is a valid codeword!

    Denote blue arrows as 0 and red arrows as 1

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 c1 c2 c3

    Bit-Flipping Algorithm (Contd )

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    31/53

    Bit Flipping Algorithm (Contd.)

    For the Matrix H =

    0 1 0 1 1 0 0 11 1 1 0 0 1 0 00 0 1 0 0 1 1 11 0 0 1 1 0 1 0

    , assume that anerror free received code word would be c = [1 0 0 1 0 1 0 1]

    Since cHT = 0, this is a valid codeword!

    Denote blue arrows as 0 and red arrows as 1

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 c1 c2 c3

    Bit-Flipping Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    32/53

    Bit Flipping Algorithm (Contd.)

    Now, let us suppose that we have a binary channel and received thecodeword with one error, bit c1 flipped to 1, c

    = [1 1 0 1 0 1 0 1]

    Following Step 1, we calculate the parity check node cj for all j. Sincec0,c1 = 1, we proceed to Step 2.

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 = 1 c1 = 1 c2 = 0 c3 = 0

    Note: blue arrows are 0 and red arrows are 1

    Bit-Flipping Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    33/53

    t pp g go t (Co td )

    Following the Step 2 in the algorithm, we first flip all the {vk}associated with c0, that is {vk} = {v1,v3,v4,v7}

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 = 1 c1 = 1 c2 = 0 c3 = 0

    Note: blue arrows are 0 and red arrows are 1

    Bit-Flipping Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    34/53

    pp g g ( )

    We then flip the the {vk} associated with c1, since c1 = 1. Similarly,{vk} = {v0,v1,v2,v5}

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 = 1 c1 = 1 c2 = 0 c3 = 0

    Note: blue arrows are 0 and red arrows are 1

    Bit-Flipping Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    35/53

    pp g g ( )

    Proceeding, since c2 = 0, we convert the associated nodes back to thereceived configuration, {vk} = {v2,v5,v6,v7} = {0,1,0,1}

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 = 1 c1 = 1 c2 = 0 c3 = 0

    Note: blue arrows are 0 and red arrows are 1

    Bit-Flipping Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    36/53

    pp g g ( )

    Finally, c3 = 0 and we also convert the associated nodes back to thereceived configuration, {vk} = {v0,v3,v4,v6} = {1,1,0,0}

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 = 1 c1 = 1 c2 = 0 c3 = 0

    Note: blue arrows are 0 and red arrows are 1

    Bit-Flipping Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    37/53

    g g ( )

    Going back to Step 1, we have that c0,c1,c2,c3 = 0 and the Algorithmterminates.

    We decide on the code c = [1 0 0 1 0 1 0 1], which is the originalerror-free code

    v0 v1 v2 v3 v4 v5 v6 v7

    c0 = 0 c1 = 0 c2 = 0 c3 = 0

    Note: blue arrows are 0 and red arrows are 1

    Bit-Flipping Algorithm Summary

    http://find/http://goback/
  • 7/27/2019 GOOD2 L05_LDPCCode

    38/53

    Therefore, what our algorithm did is the following:

    c node received/sent

    c0received: v1 1 v3 1 v4 0 v7 1

    sent: 0 v1 0 v3 1 v4 0 v7

    c1received: v0 1 v1 1 v2 0 v5 1

    sent: 0 v0 0 v1 0 v2 0 v5

    c2received: v2 0 v5 1 v6 0 v7 1

    sent: 0 v2 1 v5 0 v6 1 v7

    c3received: v0 1 v3 1 v4 0 v6 0

    sent: 1 v0 1 v3 0 v4 0 v6

    Belief Propagation Algorithm

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    39/53

    BPA builds on the Bit-flipping Algorithm by taking the likelihood of 1and 0 into account

    Two stages, one for probabilities of bit nodes vi and one forprobabilities of check nodes cj

    Let us denote the following for b {0,1}:

    Pi = P{ci = 1|yi} where yi denotes the i-th received bit

    qij(b) as the message sent by variable node vi to check node ci rji(b) as the message sent by the check node cj to variable node vi

    cj

    vi

    rji(b)

    qij(b)

    cj

    vi

    qji(b)

    rji(b)yi

    For Step 1 in the Hard Decision, we have that all the variable nodes visend their qij messages. Since no other information is available, we

    initialize qij(1) = Pi and qij(0) = 1 Pi

    Belief Propagation Algorithm

    http://find/http://goback/
  • 7/27/2019 GOOD2 L05_LDPCCode

    40/53

    BPA builds on the Bit-flipping Algorithm by taking the likelihood of 1and 0 into account

    Two stages, one for probabilities of bit nodes vi and one forprobabilities of check nodes cj

    Let us denote the following for b {0,1}:

    Pi = P{ci = 1|yi} where yi denotes the i-th received bit

    qij(b) as the message sent by variable node vi to check node ci rji(b) as the message sent by the check node cj to variable node vi

    cj

    vi

    rji(b)

    qij(b)

    cj

    vi

    qji(b)

    rji(b)yi

    For Step 1 in the Hard Decision, we have that all the variable nodes visend their qij messages. Since no other information is available, we

    initialize qij(1) = Pi and qij(0) = 1 Pi

    Belief Propagation Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    41/53

    For Step 2, the check nodes cj calculates their response messages rjiby formula by Gallager,

    rji(0) =1

    2+

    1

    2 iVj\i

    1 2qij(1)

    where rji(1) = 1 rji(0)

    This equation is the probability that there are even number of 1samong the variable nodes except vi

    cj

    vi

    rji(b)qij(b)

    Belief Propagation Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    42/53

    Using this information, we use the values of rji(0) and rji(1) to findqij(0) and qij(1) given by

    qij(0) = Kij(1 Pi) jCi\j

    rji(0)

    andqij(1) = KijPi

    j

    Ci\j

    rji(1)

    where Kij are chosen to ensure qij(0) +qij(1) = 1

    Note that Ci\j designates all the check nodes except for cj.

    cj

    vi

    qji(b)

    rji(b)yi

    Belief Propagation Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    43/53

    Finally, we have all the variable nodes vi update their currentestimation of ci of the codeword ci

    Using the ideas of previous slide,

    Qi(0) = Ki(1 Pi)jCi

    rji(0)

    andQi(1) = KiPi

    jCi

    rji(1)

    which calculates the likelihood from 0 and 1 from all check nodes cj

    We then have decide on ci by,

    ci =

    1 ifQi(1) > Qi(0)

    0 otherwise

    Belief Propagation Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    44/53

    Finally, we have all the variable nodes vi update their currentestimation of ci of the codeword ci

    Using the ideas of previous slide,

    Qi(0) = Ki(1 Pi)jCi

    rji(0)

    andQi(1) = KiPi

    jCi

    rji(1)

    which calculates the likelihood from 0 and 1 from all check nodes cj

    We then have decide on ci by,

    ci =

    1 ifQi(1) > Qi(0)

    0 otherwise

    Belief Propagation Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    45/53

    Finally, we have all the variable nodes vi update their currentestimation of ci of the codeword ci

    Using the ideas of previous slide,

    Qi(0) = Ki(1 Pi)jCi

    rji(0)

    andQi(1) = KiPi

    jCi

    rji(1)

    which calculates the likelihood from 0 and 1 from all check nodes cj

    We then have decide on ci by,

    ci =

    1 ifQi(1) > Qi(0)

    0 otherwise

    Belief Propagation Algorithm (Contd.)

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    46/53

    If the estimated codeword vector c does equal 1, the algorithmterminates.

    Otherwise the algorithm goes back to Step 2 and repeats the processuntil termination is ensured either by equaling 1, or reaching maximumnumber of iterations

    Performance of LDPC Codes

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    47/53

    LDPC Codes are very powerful, perform similar to Turbo codes

    1

    1P. Jagatheeswari and M. Rajaram

    Performance Depends on the Soft-Decision Algorithms

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    48/53

    Although we do not have BER Performance of Hard-Decision

    decoding, simulations show that performance depends on the selectionof Soft-Decision algorithms

    2

    2S. Lee

    LDPC Codes approach Shannon Capacity

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    49/53

    LDPC Codes have the potential to offer both better performance and

    lower decoding complexity in many cases3

    3Comtech EF Data

    DVB-S2 LDPC Codes

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    50/53

    The latest version of the standard DVB-S2 uses a combination of anouter BCH code and inner LDPC code a significant upgrade over

    DVB-S DVB-S used combination of outer RS code and inner convolutional

    code

    The codeword length may have either n = 64800 (normal) or

    n = 16200 (short)

    Summary

    http://find/http://goback/
  • 7/27/2019 GOOD2 L05_LDPCCode

    51/53

    Turbo and LDPC Codes approach very closely to the Shannon limit

    S. Chung et al. showed that their LDPC code can reach 0.0045 dB ofthe Shannon Limit (2001)

    Some examples of Turbo and LDPC codes used today:

    Binary Turbo 8-state: CDMA2000, Universal MobileTelecommunications System (UMTS) Duo-Binary Turbo 8-state: DVB-RCS, DVB-RCT, IEEE 802.16

    WiMAX LDPC: DVB-S2

    Current research focuses on reducing complexity, Richardson andUrbanke (2001) show the complexity can become almost a linearfunction ofn, rather than n2

    Summary

    http://find/http://goback/
  • 7/27/2019 GOOD2 L05_LDPCCode

    52/53

    Turbo and LDPC Codes approach very closely to the Shannon limit

    S. Chung et al. showed that their LDPC code can reach 0.0045 dB ofthe Shannon Limit (2001)

    Some examples of Turbo and LDPC codes used today:

    Binary Turbo 8-state: CDMA2000, Universal MobileTelecommunications System (UMTS) Duo-Binary Turbo 8-state: DVB-RCS, DVB-RCT, IEEE 802.16

    WiMAX LDPC: DVB-S2

    Current research focuses on reducing complexity, Richardson andUrbanke (2001) show the complexity can become almost a linearfunction ofn, rather than n2

    Summary

    http://find/
  • 7/27/2019 GOOD2 L05_LDPCCode

    53/53

    Turbo and LDPC Codes approach very closely to the Shannon limit

    S. Chung et al. showed that their LDPC code can reach 0.0045 dB ofthe Shannon Limit (2001)

    Some examples of Turbo and LDPC codes used today:

    Binary Turbo 8-state: CDMA2000, Universal MobileTelecommunications System (UMTS) Duo-Binary Turbo 8-state: DVB-RCS, DVB-RCT, IEEE 802.16

    WiMAX LDPC: DVB-S2

    Current research focuses on reducing complexity, Richardson andUrbanke (2001) show the complexity can become almost a linearfunction ofn, rather than n2

    http://find/