1 / 49

Part 1: Overview of Low Density Parity Check(LDPC) codes

Part 1: Overview of Low Density Parity Check(LDPC) codes. Low density parity check codes. R. G. Gallager , “Low-Density Parity Check Codes,” in 1962 , Simple parity-check code specified by a parity-check matrix or Tanner graph .

chinue
Download Presentation

Part 1: Overview of Low Density Parity Check(LDPC) codes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Part 1:Overview of Low Density Parity Check(LDPC) codes

  2. Low density parity check codes R. G. Gallager, “Low-Density Parity Check Codes,” in 1962, Simple parity-check code specified by a parity-check matrix or Tanner graph. An ‘optimal’ LDPC can get within ~.005 db of channel capacity

  3. Low density parity check codes R. G. Gallager, “Low-Density Parity Check Codes,” in 1962, Simple parity-check code specified by a parity-check matrix or Tanner graph. An ‘optimal’ LDPC can get within ~.005 db of channel capacity

  4. Low density parity check codes R. G. Gallager, “Low-Density Parity Check Codes,” in 1962, Simple parity-check code specified by a parity-check matrix or Tanner graph. An ‘optimal’ LDPC can get within ~.005 db of channel capacity

  5. Low density parity check codes R. G. Gallager, “Low-Density Parity Check Codes,” in 1962, Simple parity-check code specified by a parity-check matrix or Tanner graph. An ‘optimal’ LDPC code can get within ~.005 db of channel capacity

  6. Low density parity check codes • Low density parity check - H matrix has a large number of columns (n> 1000 or 10,000) - Number of 1’s in H is small ( <<1%) - H is constructed pseudorandomly subject to some constraints

  7. Low density parity check codes • Low density parity check - H is constructed pseudorandomly subject to some constraints: - fixed number of rows and columns - this fixes the rate - randomly fill H with 1’s - e.g. fixed number of 1’s per row/column

  8. Encoding (Cont’d) • Encoding in graph

  9. Decoding • Message passing decoder • Iterative algorithm • Amenable to highly parallelized hardware implementation

  10. Code design ‘Optimal’ LPDC codes can be described by distributions (x) and (x)

  11. Optimization • Basic idea • Optimize the triple ( r(x), l(x), p(x) ) x) x)

  12. Optimization recursion x) x)

  13. Simulation Results

  14. Simulation Results 2-IID capacity One encoder/one decoder

  15. Simulation Results 2-IID capacity One encoder/one decoder A single LDPC code designed for one rate and then punctured for a range of rates can be optimal for “all rates”

  16. Part 2:Details of Low Density Parity Check(LDPC) codes: binary symmetric channels

  17. Details: Encoding • Encoder is derived from the the parity check matrix H • Row reduction of H into systematic form -- get G from this • If H is sparse then with high probability G will be dense • Not addressed here, but this continues to be a topic of great concern

  18. Details: Decoding • the channel output can be either hard or soft information • Use the properties of the graph to decode • Decoding will be done in an iterative way: iterate between variable (bit) nodes and checks nodes

  19. Low density parity check codes Consider the MAP rule discussed in the context of convolutional codes

  20. Low density parity check codes Transmit Receive

  21. Bit flipping decoder 0 1 0 ••• 1 0 0 0 ••• 0 Receive

  22. Motivating example • Hard decoder: bit flipping decoder Bit (variable) nodes Check nodes

  23. Motivating example • All 0’s codeword is sent 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit (variable) nodes Check nodes

  24. 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Example 1: single error Assume all 0’s codeword and a single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d

  25. 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Example 1: single error Step 1: Check node: Identify which parity checks are in error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d

  26. 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Example 1: single error Step 1: Parity node check: Identify which parity checks are in error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d

  27. Example 1: single error Step 1: Parity node check: Identify bits that are connected to those checks 0 1 0 000 0 0 0 0 0 0 0 0 0 0 Rec’d

  28. Example 1: single error Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node 0 1 0 000 0 0 0 0 0 0 0 0 0 0 Rec’d

  29. Example 1: single error Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node 0 1 0 000 0 0 0 0 0 0 0 0 0 0 Rec’d

  30. Example 1: single error Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node Number of unsatisfied checks for this bit 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 000 0 0 0 0 0 0 0 0 0 0 Rec’d

  31. Example 1: single error Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node Number of unsatisfied checks for this bit 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 000 0 0 0 0 0 0 0 0 0 0 Rec’d

  32. Example 1: single error Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node Number of unsatisfied checks for all bits 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 000 0 0 0 0 0 0 0 0 0 0 Rec’d

  33. Example 1: single error Step 2: Bit node check: Flip the bits with the most unsatisfied checks 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 000 0 0 0 0 0 0 0 0 0 0 Rec’d

  34. Example 1: single error Step 2: Bit node check: Flip the bits with the most unsatisfied checks 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 000 0 0 0 0 0 0 0 0 0 0 Rec’d

  35. Example 1: single error Step 2: Bit node check: Flip the bits with the most unsatisfied checks 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d

  36. Example 1: single error Step 3: parity node check: Check if all parities are satisfied 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d

  37. Example 1: single error Step 3: parity node check: Check if all parities are satisfied 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d

  38. Example 1: single error Step 3: parity node check: Check if all parities are satisfied Done! 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d

  39. Example 2: Double error Iteration #1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

  40. Example 2: Double error Iteration #1 1 0 00 0 000 0 00 0 0 001

  41. Example 2: Double error Iteration #1 2 0 1 1 0 1 1 1 0 2 1 1 0 1 1 2 1 0 00 0 000 0 00 0 0 001

  42. Example 2: Double error Iteration #1 2 0 1 1 0 1 1 1 0 2 1 1 0 1 1 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

  43. Example 2: Double error Iteration #2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

  44. Example 2: Double error Iteration #2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

  45. Example 2: Double error Iteration #2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

  46. Example 2: Double error Iteration #2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

  47. Example 2: Double error Iteration #2 1 0 0 0 0 1 1 0 0 2 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

  48. Example 2: Double error Iteration #2 1 0 0 0 0 1 1 0 0 2 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

  49. Example 2: Double error Iteration #2 Done 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

More Related