Download presentation
Presentation is loading. Please wait.
Published byAdam Williams Modified over 9 years ago
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 ( (x), (x), (x) ) x) x)
12
Optimization recursion x) x)
13
Simulation Results
14
One encoder/one decoder 2-IID capacity
15
Simulation Results 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” 2-IID capacity
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 Receive 0 0 0 1
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 Bit (variable) nodes Check nodes
24
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Assume all 0’s codeword and a single error
25
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Step 1: Check node: Identify which parity checks are in error
26
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Step 1: Parity node check: Identify which parity checks are in error
27
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Step 1: Parity node check: Identify bits that are connected to those checks
28
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node
29
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node
30
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 Number of unsatisfied checks for this bit
31
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 Number of unsatisfied checks for this bit
32
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d Step 2: Bit node check: For each bit node that is potentially in error - identify number of unsatisfied checks for that bit node 0 2 0 1 1 1 0 0 0 0 1 0 1 1 0 0 Number of unsatisfied checks for all bits
33
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d 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
34
Example 1: single error 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Rec’d 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
35
Example 1: single error 0 0 0 0 0 0 0 0 Rec’d 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
36
Example 1: single error 0 0 0 0 0 0 0 0 Rec’d Step 3: parity node check: Check if all parities are satisfied
37
Example 1: single error 0 0 0 0 0 0 0 0 Rec’d Step 3: parity node check: Check if all parities are satisfied
38
Example 1: single error 0 0 0 0 0 0 0 0 Rec’d Step 3: parity node check: Check if all parities are satisfied Done!
39
Example 2: Double error 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Iteration #1
40
Example 2: Double error 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Iteration #1
41
Example 2: Double error 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Iteration #1 2 0 1 1 0 1 1 1 0 2 1 1 0 1 1 2
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 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 2 0 1 0 1 0 1
48
Example 2: Double error Iteration #2 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 2 0 1 0 1 0 1
49
Example 2: Double error Iteration #2 0 0 0 0 0 0 0 0 Done
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.