+ All Categories
Home > Documents > Part 1: Overview of Low Density Parity Check(LDPC) codes.

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

Date post: 18-Jan-2016
Category:
Upload: adam-williams
View: 236 times
Download: 2 times
Share this document with a friend
49
Part 1: Overview of Low Density Parity Check(LDPC) codes
Transcript
Page 1: Part 1: Overview of Low Density Parity Check(LDPC) codes.

Part 1:Overview of Low Density

Parity Check(LDPC) codes

Page 2: 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.

An ‘optimal’ LDPC can get within ~.005 db of channel capacity

Page 3: 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.

An ‘optimal’ LDPC can get within ~.005 db of channel capacity

Page 4: 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.

An ‘optimal’ LDPC can get within ~.005 db of channel capacity

Page 5: 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.

An ‘optimal’ LDPC code can get within ~.005 db of channel capacity

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

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

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

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

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

Encoding (Cont’d)

• Encoding in graph

m1,1 m1,2 m1,k-1 p1

Degree k

m1,1 m1,2 m1,k-1 p1

Degree k

m2,1 m2,2 m2,c-1 p2

Degree c

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

Decoding

• Message passing decoder– Iterative algorithm

• Amenable to highly parallelized hardware implementation

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

Code design

‘Optimal’ LPDC codes can be describedby distributions (x) and (x)

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

Optimization

• Basic idea– Optimize the triple ( (x), (x), (x) )

f (0)(v) = π jΔ(v)+ g(0)(v)

x)

x)

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

Optimization recursion

f (0)(v) = π jΔ(v)+ g(0)(v)

x)

x)

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

Simulation Results

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

Simulation Results

One encoder/one decoder

2-IID capacity

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

Simulation Results

One encoder/one decoder

A single LDPC code designed for one rate and then punctured for a range of rates canbe optimal for “all rates”

2-IID capacity

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

Part 2:Details of Low Density Parity Check(LDPC) codes: binary

symmetric channels

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

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

rn

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

Details: Decoding

• the channel output can be either hardor 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

rn = (r1,r2 ,...,rn )

rn

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

Low density parity check codes

rn = (r1,r2 ,...,rn )

If p(x j = 0 | rn ) > p(x j =1| rn ) choose x j = 0

If p(x j =1| rn ) > p(x j = 0 | rn ) choose x j =1

Consider the MAP rule discussed in the context of convolutional codes

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

Low density parity check codes

Transmit

cn = (c1,c2 ,...,cn )

rn = (r1,r2 ,...,rn )

Receive

rn

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

Bit flipping decoder

cn = (c1,c2 ,...,cn )

rn = (r1,r2 ,...,rn )

Receive

rn

0 0 0 ••• 0 0 1 0 ••• 1

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

Motivating example

• Hard decoder: bit flipping decoder

Bit (variable)nodes

Checknodes

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

Motivating example

• All 0’s codeword is sent0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bit (variable)nodes

Checknodes

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Assume all 0’s codeword and a single error

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Step 1: Check node: Identify which parity checks are in error

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Step 1: Parity node check:Identify which parity checks are in error

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Step 1: Parity node check:Identify bits that are connected to those checks

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Step 2: Bit node check:For each bit node that is potentially in error -

identify number of unsatisfied checks for that bit node

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Step 2: Bit node check:For each bit node that is potentially in error -

identify number of unsatisfied checks for that bit node

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’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

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’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

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’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

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’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

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

Example 1: single error

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’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

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

Example 1: single error

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’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

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

Example 1: single error

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Step 3: parity node check:Check if all parities are satisfied

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

Example 1: single error

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Step 3: parity node check:Check if all parities are satisfied

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

Example 1: single error

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Rec’d

Step 3: parity node check:Check if all parities are satisfied

Done!

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

Example 2: Double error

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

Iteration #1

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

Example 2: Double error

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

Iteration #1

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

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

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

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

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

Example 2: Double error

Iteration #2

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

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

Example 2: Double error

Iteration #2

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

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

Example 2: Double error

Iteration #2

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

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

Example 2: Double error

Iteration #2

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

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

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

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

Example 2: Double error

Iteration #2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 1 1 0 0 2 0 1 0 1 0 1

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

Example 2: Double error

Iteration #2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Done


Recommended