A new Algorithm to construct LDPC codes with large stopping sets

784 views

Published on

A new algorithm to construct good
low-density parity-check (LDPC) codes with large
stopping sets is presented. Since the minimum stop-
ping set characterizes an LDPC code, searching for
stopping sets in LDPC codes is an important issue.
Large minimum stopping sets avoid the LDPC code
to get trapped in cycles specially on the binary erasure
channel. Dealing with stopping sets is not an easy task
since their discovering is a well known NP hard prob-
lem. Conversely, we propose an algorithm in order
to construct an LDPC code from a stopping set which
is demonstrated to be large. Results of simulations
showing the performance of the LDPC code obtained
this way are analyzed.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
784
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
61
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

A new Algorithm to construct LDPC codes with large stopping sets

  1. 1. A new Algorithm to construct LDPC codes with large stopping sets A new Algorithm to construct LDPC codes with large stopping sets Juan Camilo Salazar Ripoll† and N´estor R. Barraza‡ nbarraza@untref.edu.ar Septiembre - 2013 †Universidad de los Andes. ‡Universidad Nacional de Tres de Febrero y Facultad de Ingenier´ıa, UBA
  2. 2. A new Algorithm to construct LDPC codes with large stopping sets ´Indice 1 Introduction LDPC codes Bipartite Tanner graph - Stopping set Vertex Edge Incidence Matrix Properties of Graphs - Girth
  3. 3. A new Algorithm to construct LDPC codes with large stopping sets ´Indice 1 Introduction LDPC codes Bipartite Tanner graph - Stopping set Vertex Edge Incidence Matrix Properties of Graphs - Girth 2 The Algorithm The aim The method Getting the LDPC code
  4. 4. A new Algorithm to construct LDPC codes with large stopping sets ´Indice 1 Introduction LDPC codes Bipartite Tanner graph - Stopping set Vertex Edge Incidence Matrix Properties of Graphs - Girth 2 The Algorithm The aim The method Getting the LDPC code 3 Simulation
  5. 5. A new Algorithm to construct LDPC codes with large stopping sets ´Indice 1 Introduction LDPC codes Bipartite Tanner graph - Stopping set Vertex Edge Incidence Matrix Properties of Graphs - Girth 2 The Algorithm The aim The method Getting the LDPC code 3 Simulation 4 Conclusions
  6. 6. A new Algorithm to construct LDPC codes with large stopping sets Introduction LDPC codes H =       1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1       x1 + x3 + x5 = 0 x2 + x4 + x6 = 0 x4 + x6 + x7 = 0 x1 + x3 + x6 = 0 x2 + x5 + x7 = 0 (1)
  7. 7. A new Algorithm to construct LDPC codes with large stopping sets Introduction Bipartite Tanner graph - Stopping set 1 2 3 4 5 6 7 8 9 10 11 12 x1 + x3 + x5 = 0 Variable nodes Check nodes
  8. 8. A new Algorithm to construct LDPC codes with large stopping sets Introduction Bipartite Tanner graph - Stopping set 1 2 3 4 5 6 7 8 9 10 11 12 x1 + x3 + x5 = 0 x2 + x4 + x6 = 0 Variable nodes Check nodes
  9. 9. A new Algorithm to construct LDPC codes with large stopping sets Introduction Bipartite Tanner graph - Stopping set 1 2 3 4 5 6 7 8 9 10 11 12 x1 + x3 + x5 = 0 x2 + x4 + x6 = 0 x4 + x6 + x7 = 0 Variable nodes Check nodes
  10. 10. A new Algorithm to construct LDPC codes with large stopping sets Introduction Bipartite Tanner graph - Stopping set 1 2 3 4 5 6 7 8 9 10 11 12 x1 + x3 + x5 = 0 x2 + x4 + x6 = 0 x4 + x6 + x7 = 0 x1 + x3 + x6 = 0 Variable nodes Check nodes
  11. 11. A new Algorithm to construct LDPC codes with large stopping sets Introduction Bipartite Tanner graph - Stopping set 1 2 3 4 5 6 7 8 9 10 11 12 x1 + x3 + x5 = 0 x2 + x4 + x6 = 0 x4 + x6 + x7 = 0 x1 + x3 + x6 = 0 x2 + x5 + x7 = 0 Variable nodes Check nodes
  12. 12. A new Algorithm to construct LDPC codes with large stopping sets Introduction Bipartite Tanner graph - Stopping set 1 2 3 4 5 6 7 8 9 10 11 12 Stopping Set Variable nodes Check nodes
  13. 13. A new Algorithm to construct LDPC codes with large stopping sets Introduction Bipartite Tanner graph - Stopping set 1 2 3 4 5 6 7 8 9 10 11 12 Stopping Set Message Passing Variable nodes Check nodes
  14. 14. A new Algorithm to construct LDPC codes with large stopping sets Introduction Bipartite Tanner graph - Stopping set 1 2 3 4 5 6 7 8 9 10 11 12 Stopping Set Message Passing Variable nodes Check nodes
  15. 15. A new Algorithm to construct LDPC codes with large stopping sets Introduction Vertex Edge Incidence Matrix 1 2 4 3 6 5 a c b e d VE =         a b c d e 1 1 0 0 0 0 2 1 1 1 0 0 3 0 1 0 0 0 4 0 0 1 1 1 5 0 0 0 1 0 6 0 0 0 0 1        
  16. 16. A new Algorithm to construct LDPC codes with large stopping sets Introduction Vertex Edge Incidence Matrix 1 2 4 3 6 5 a c b e d VE =         a b c d e 1 1 0 0 0 0 2 1 1 1 0 0 3 0 1 0 0 0 4 0 0 1 1 1 5 0 0 0 1 0 6 0 0 0 0 1         H ? = VE(T)
  17. 17. A new Algorithm to construct LDPC codes with large stopping sets Introduction Properties of Graphs - Girth 3 6 2 4 1 5 9 7 10 8 Petersen Graph. Girth = 5
  18. 18. A new Algorithm to construct LDPC codes with large stopping sets Introduction Properties of Graphs - Girth 3 6 2 4 1 5 9 7 10 8 Petersen Graph. Girth = 5 VE =                a b c d e e f g h i j k l m n o 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 4 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 5 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 6 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 7 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 8 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 9 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1               
  19. 19. A new Algorithm to construct LDPC codes with large stopping sets Introduction Properties of Graphs - Girth 3 6 2 4 1 5 9 7 10 8 Petersen Graph. Girth = 5 Tanner Graph. H = VET . a b c d e f g h i j k l m n o 1 2 3 4 5 6 7 8 9 10
  20. 20. A new Algorithm to construct LDPC codes with large stopping sets Introduction Properties of Graphs - Girth 3 6 2 4 1 5 9 7 10 8 Petersen Graph. Girth = 5 Tanner Graph. H = VET . Cycles in graph → Stopping sets. a b c d e f g h i j k l m n o 1 2 3 4 5 6 7 8 9 10
  21. 21. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The aim Construct a big graph with a big girth Generate the LDPC code from the transpose of the vertex-edge incidence matrix
  22. 22. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method
  23. 23. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method
  24. 24. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method
  25. 25. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method
  26. 26. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method
  27. 27. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method
  28. 28. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method The aim is to get a graph which determines the minimum stopping set of the obtained code.
  29. 29. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method The aim is to get a graph which determines the minimum stopping set of the obtained code. The parity check matrix of the code is obtained as the transpose of the vertex-edge incidence matrix of the graph.
  30. 30. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method The aim is to get a graph which determines the minimum stopping set of the obtained code. The parity check matrix of the code is obtained as the transpose of the vertex-edge incidence matrix of the graph. This method allows to construct LDPC codes up to a stopping set size of 12, and with a slight variation the girth can be increased to 14.
  31. 31. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method Take a core C which is a simple graph, its girth determines the stopping set size of the LDPC code.
  32. 32. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method Take a core C which is a simple graph, its girth determines the stopping set size of the LDPC code. Make 2|C|+1 copies of the core obtaining 2|C|+2 subgraphs.
  33. 33. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method Take a core C which is a simple graph, its girth determines the stopping set size of the LDPC code. Make 2|C|+1 copies of the core obtaining 2|C|+2 subgraphs. Divide the subgraphs into two sets: a left set and a right set, each one of |C| + 1 subgraphs. Lets name the subgraphs in the left set 0, 1, · · · , |C| and the subgraphs in the right set 0 , 1 , · · · , |C| .
  34. 34. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method Take a core C which is a simple graph, its girth determines the stopping set size of the LDPC code. Make 2|C|+1 copies of the core obtaining 2|C|+2 subgraphs. Divide the subgraphs into two sets: a left set and a right set, each one of |C| + 1 subgraphs. Lets name the subgraphs in the left set 0, 1, · · · , |C| and the subgraphs in the right set 0 , 1 , · · · , |C| . Connecting the nodes
  35. 35. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method Take a core C which is a simple graph, its girth determines the stopping set size of the LDPC code. Make 2|C|+1 copies of the core obtaining 2|C|+2 subgraphs. Divide the subgraphs into two sets: a left set and a right set, each one of |C| + 1 subgraphs. Lets name the subgraphs in the left set 0, 1, · · · , |C| and the subgraphs in the right set 0 , 1 , · · · , |C| . Connecting the nodes Take the node i from the graph j and connect it to the node j of the graph i for i = j with 1 ≤ i, j ≤ |C|.
  36. 36. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method Take a core C which is a simple graph, its girth determines the stopping set size of the LDPC code. Make 2|C|+1 copies of the core obtaining 2|C|+2 subgraphs. Divide the subgraphs into two sets: a left set and a right set, each one of |C| + 1 subgraphs. Lets name the subgraphs in the left set 0, 1, · · · , |C| and the subgraphs in the right set 0 , 1 , · · · , |C| . Connecting the nodes Take the node i from the graph j and connect it to the node j of the graph i for i = j with 1 ≤ i, j ≤ |C|. Connect the node i from the graph i to the node i of the graph 0 , in a similar way connect the node i from the graph i to the node i of the graph 0.
  37. 37. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method Take a core C which is a simple graph, its girth determines the stopping set size of the LDPC code. Make 2|C|+1 copies of the core obtaining 2|C|+2 subgraphs. Divide the subgraphs into two sets: a left set and a right set, each one of |C| + 1 subgraphs. Lets name the subgraphs in the left set 0, 1, · · · , |C| and the subgraphs in the right set 0 , 1 , · · · , |C| . Connecting the nodes Take the node i from the graph j and connect it to the node j of the graph i for i = j with 1 ≤ i, j ≤ |C|. Connect the node i from the graph i to the node i of the graph 0 , in a similar way connect the node i from the graph i to the node i of the graph 0.
  38. 38. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method Take a core C which is a simple graph, its girth determines the stopping set size of the LDPC code. Make 2|C|+1 copies of the core obtaining 2|C|+2 subgraphs. Divide the subgraphs into two sets: a left set and a right set, each one of |C| + 1 subgraphs. Lets name the subgraphs in the left set 0, 1, · · · , |C| and the subgraphs in the right set 0 , 1 , · · · , |C| . Connecting the nodes Take the node i from the graph j and connect it to the node j of the graph i for i = j with 1 ≤ i, j ≤ |C|. Connect the node i from the graph i to the node i of the graph 0 , in a similar way connect the node i from the graph i to the node i of the graph 0. A graph with 2|C|(|C| + 1) nodes and girth(graph) = m´ın(girth(core),12) is obtained. The degree of each node is increased by one.
  39. 39. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j i j’ j i i ji 0’ ij 0 i j j i j i’ The shortest cycle involving 0 and 0’ subgraphs
  40. 40. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j i j’ j i i ji 0’ ij 0 i j j i j i’ The shortest cycle involving 0 and 0’ subgraphs
  41. 41. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j i j’ j i i ji 0’ ij 0 i j j i j i’ The shortest cycle involving 0 and 0’ subgraphs
  42. 42. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j i j’ j i i ji 0’ ij 0 i j j i j i’ The shortest cycle involving 0 and 0’ subgraphs
  43. 43. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j k i j i k’ k i j j ki j j’ k j i’ i j k The shortest cycle not involving 0 and 0’ subgraphs
  44. 44. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j k i j i k’ k i j j ki j j’ k j i’ i j k The shortest cycle not involving 0 and 0’ subgraphs
  45. 45. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j i j’ j i i ji 0’ ij 0 i j j i j i’ The shortest cycle involving 0 and 0’ subgraphs after permutation in nodes in 0 and 0’
  46. 46. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j i j’ j i i ji 0’ ij 0 i j j i j i’ The shortest cycle involving 0 and 0’ subgraphs after permutation in nodes in 0 and 0’
  47. 47. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j i j’ j i i ji 0’ ij 0 i j j i j i’ The shortest cycle involving 0 and 0’ subgraphs after permutation in nodes in 0 and 0’
  48. 48. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm The method j i j’ j i i ji 0’ ij 0 i j j i j i’ The shortest cycle involving 0 and 0’ subgraphs after permutation in nodes in 0 and 0’
  49. 49. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm Getting the LDPC code The parity check matrix H is obtained as the transpose of the vertex-edge incidence matrix of the graph.
  50. 50. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm Getting the LDPC code The parity check matrix H is obtained as the transpose of the vertex-edge incidence matrix of the graph. The nodes of the graph are the check nodes of the code and the edges of the graph are the variable nodes.
  51. 51. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm Getting the LDPC code The parity check matrix H is obtained as the transpose of the vertex-edge incidence matrix of the graph. The nodes of the graph are the check nodes of the code and the edges of the graph are the variable nodes. Cycles of length k give cycles of length 2k in the Tanner graph. Then, the size of the stopping set in the LDPC code will not be less than the girth of the graph.
  52. 52. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm Getting the LDPC code The parity check matrix H is obtained as the transpose of the vertex-edge incidence matrix of the graph. The nodes of the graph are the check nodes of the code and the edges of the graph are the variable nodes. Cycles of length k give cycles of length 2k in the Tanner graph. Then, the size of the stopping set in the LDPC code will not be less than the girth of the graph. If a regular graph is chosen as the core, being dv the degree of each node, the number of nodes in the generated graph is (|C|) (2 |C| + 2) and the number of edges is (dv + 1)(|C|)(|C| + 1).
  53. 53. A new Algorithm to construct LDPC codes with large stopping sets The Algorithm Getting the LDPC code The parity check matrix H is obtained as the transpose of the vertex-edge incidence matrix of the graph. The nodes of the graph are the check nodes of the code and the edges of the graph are the variable nodes. Cycles of length k give cycles of length 2k in the Tanner graph. Then, the size of the stopping set in the LDPC code will not be less than the girth of the graph. If a regular graph is chosen as the core, being dv the degree of each node, the number of nodes in the generated graph is (|C|) (2 |C| + 2) and the number of edges is (dv + 1)(|C|)(|C| + 1). As a consequence, we get an LDPC code with n = (dv + 1)(|C|)(|C| + 1) and rate R = dv −1 dv +1.
  54. 54. A new Algorithm to construct LDPC codes with large stopping sets Simulation 22 21 20 19 18 1716 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Regular core |C| = 22, dv = 2 0 0 * 1 1 1 − 1 − Binary erasure channel (BEC).
  55. 55. A new Algorithm to construct LDPC codes with large stopping sets Simulation Core Generated graph LDPC code Regular Regular Regular, variable node degree = 2 |C| = 22 |C|(2|C|+2) = 1012 no- des 1012 check nodes dv = 2 node degree = dv +1 = 3 check nodes degree = 3 dv +1 2 |C|(2|C| + 2) = 1518 edges 1518 variable nodes girth = 22 girth = 14 stopping set size = 14 R = dv −1 dv +1 = 1 3
  56. 56. A new Algorithm to construct LDPC codes with large stopping sets Simulation 0,10,20,30,40,50,6 10−5 10−4 10−3 10−2 10−1 100 BER Performance of the regular LDPC code in a BEC (R = 1/3, n = 1518, girth = 28) with error probability .
  57. 57. A new Algorithm to construct LDPC codes with large stopping sets Simulation 0,10,20,30,40,50,6 10−5 10−4 10−3 10−2 10−1 100 BER Performance of the regular LDPC code in a BEC (R = 1/3, n = 1518, girth = 28) with error probability .
  58. 58. A new Algorithm to construct LDPC codes with large stopping sets Conclusions A new algorithm to construct an LDPC code from a generated graph was presented
  59. 59. A new Algorithm to construct LDPC codes with large stopping sets Conclusions A new algorithm to construct an LDPC code from a generated graph was presented This graph is generated by making some connections between several copies of a given core
  60. 60. A new Algorithm to construct LDPC codes with large stopping sets Conclusions A new algorithm to construct an LDPC code from a generated graph was presented This graph is generated by making some connections between several copies of a given core Since the stopping set of the LDPC code is related to the girth of the graph, a large stopping set size is obtained
  61. 61. A new Algorithm to construct LDPC codes with large stopping sets Conclusions A new algorithm to construct an LDPC code from a generated graph was presented This graph is generated by making some connections between several copies of a given core Since the stopping set of the LDPC code is related to the girth of the graph, a large stopping set size is obtained The parity check matrix is quite sparse, then, the generated LDPC code converges in just a few iterations
  62. 62. A new Algorithm to construct LDPC codes with large stopping sets Conclusions A new algorithm to construct an LDPC code from a generated graph was presented This graph is generated by making some connections between several copies of a given core Since the stopping set of the LDPC code is related to the girth of the graph, a large stopping set size is obtained The parity check matrix is quite sparse, then, the generated LDPC code converges in just a few iterations It is possible to generate bigger codes using the obtained graph as the core. We are working now on this issue and it will be shown in a future work

×