Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Part 1: Overview of Low Density Parity Check(LDPC) codes."— 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 (  (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


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

Similar presentations


Ads by Google