Low Density Parity Check Codes1 Ppt

41
LOW DENSITY PARITY CHECK CODES

Transcript of Low Density Parity Check Codes1 Ppt

Page 1: Low Density Parity Check Codes1 Ppt

LOW DENSITY PARITY CHECK CODES

Page 2: Low Density Parity Check Codes1 Ppt

PRESENTATION OVERVIEW

Digital Communication System Why Coding? Shannon’s Coding Theorems Error Correction Codes LDPC Codes Summery

Page 3: Low Density Parity Check Codes1 Ppt

DIGITAL COMMUNICATION SYSTEM

Information Source

Source Encoder

Channel Encoder

Modulator

Channel

Demodu-lator

Channel Decoder

Source Decoder

Data Sink

rb rc

rs

JPEG, MPEG, etc.

RS code, Turbo code, LDPC

QPSK, QAM, BPSK, etc.

Page 4: Low Density Parity Check Codes1 Ppt

CHANNEL CODING

Channel encoding : The application of redundant symbols to correct data errors.

Modulation : Conversion of symbols to a waveform for transmission.

Demodulation : Conversion of the waveform back to symbols, usually one at a time.

Decoding: Using the redundant symbols to correct errors.

Page 5: Low Density Parity Check Codes1 Ppt

WHAT IS CODING?

Coding is the conversion of information to another form for some purpose.

Source Coding : The purpose is lowering the redundancy in the information. (e.g. ZIP, JPEG, MPEG2)

Channel Coding : The purpose is to defeat channel noise.

Page 6: Low Density Parity Check Codes1 Ppt

WHY CHANNEL CODING?

Trade-off between Bandwidth, Energy and Complexity. Coding provides the means of patterning signals so as to

reduce their energy or bandwidth consumption for a given error performance.

Page 7: Low Density Parity Check Codes1 Ppt

CHANNELS The Binary Symmetric Channel(BSC) The Binary Erasure Channel (BEC)

Page 8: Low Density Parity Check Codes1 Ppt

HOW TO EVALUATE CODE PERFORMANCE? Need to consider Code Rate (R), SNR (Eb/No), and Bit Error

Rate (BER). Coding Gain is the saving in Eb/No required to achieve a

given BER when coding is used vs. that with no coding. Generally the lower the code rate, the higher the coding

gain. Better Codes provides better coding gains. Better Codes usually are more complicated and have higher

complexity.

Page 9: Low Density Parity Check Codes1 Ppt

SHANNON’S CODING THEOREMS

• If C is a code with rate R>C, then the probability of error in decoding this code is bounded away from 0. (In other words, at any rate R>C, reliable communication is not possible.)

• It Tells the maximum rate at which information can be transmitted over a communications channel of a specified bandwidth in the presence of noise.

Page 10: Low Density Parity Check Codes1 Ppt

SHANNON’S CODING THEOREMS

Page 11: Low Density Parity Check Codes1 Ppt

STATEMENT OF THE THEOREM

Where, C is the channel capacity in bits per second. B is the bandwidth of the channel in hertz.  S is the average received signal power over the bandwidth N is the average noise or interference power over the bandwidth S/N is the signal-to-noise ratio (SNR) or the carrier-to-noise ratio

 (CNR) of the communication signal.

Page 12: Low Density Parity Check Codes1 Ppt

COMMON ERROR CORRECTION CODES

Convolutional Codes Block Codes (e.g. Reed-Solomon Code) Trellis-Coded-Modulation (TCM) Concatenated Codes Low density Parity Check Codes

Page 13: Low Density Parity Check Codes1 Ppt

THE ERROR-CONTROL PARADIGM

Noisy channels give rise to data errors: transmission or storage systems

Need powerful error-control coding (ECC) schemes: like linear or non-linear

Linear EC Codes: Generated through simple generator or parity-check matrix

Binary information vector (length k)

Code vector (word): (length n)

Key property: “Minimum distance of the code”, , smallest separation between two codewords.

Rate of the code R= k/n

1 0 0 0 1 0 11 1 1 0 1 0 0

0 1 0 0 1 1 00 1 1 1 0 1 0

0 0 1 0 1 1 11 0 1 1 0 0 1

0 0 0 1 0 1 1

G H

mind

1 2 3 4( , , , )u u u u u

, 0Tx uG Hx

Binary linear codes:

Page 14: Low Density Parity Check Codes1 Ppt

HISTORY OF LDPC CODES

Low Density Parity Check Code A class of Linear Block Codes

Invented by Robert Gallager in his 1960 MIT Ph. D. dissertation Being ignored for long time due to

Requirement of high complexity computation Introduction of Reed-Solomon codes and Turbo Codes The concatenated RS and convolutional codes were considered

perfectly suitable for error control coding Rediscovered by MacKay(1996) and

Richardson/Urbanke(1998).

Page 15: Low Density Parity Check Codes1 Ppt

FEATURES OF LDPC CODES

Approaching Shannon capacity For example, 0.3 dB from Shannon limit Irregular LDPC code with code length 1 million.

(Richardson:1999) An closer design from (Chung:2001), 0.04 dB away from

capacity (block size of 107 bits, 1000 iterations) Good block error correcting performance. Decoding complexity is reduced. Suitable for parallel implementation

Page 16: Low Density Parity Check Codes1 Ppt

FEATURES OF LDPC CODES

BER

Page 17: Low Density Parity Check Codes1 Ppt
Page 18: Low Density Parity Check Codes1 Ppt

LOW-DENSITY PARITY-CHECK CODES Regular LDPC codes

- All rows and columns contain the same number of ones

Irregular LDPC codes- The reverse of the statement of regular LDPC codes

Regular LDPC codes are the primary concern in this presentation

Page 19: Low Density Parity Check Codes1 Ppt

LINEAR BLOCK CODES

A Linear Code can be described by a generator matrix G or a parity check matrix H.

A (N,K) block encoder accepts K-bit input and produces N-bit codeword

c= xG, and cHT = 0 where c = codeword, x = information G = Generator matrix, H = parity check matrix

Page 20: Low Density Parity Check Codes1 Ppt

PROPERTIES OF LDPC CODES

LDPC codes are defined by a sparse parity-check matrix Parity Check Matrix (H) for decoding is sparse

Very few 1's in each row and column. Expected large minimum distance.

Regular LDPC codes H: m x n where (n-m) information bits are encoded into n codewords H contains exactly Wc 1's per column and exactly Wr = Wc(n/m) 1's per row,

where Wc << m. The above definition implies that Wr << n. Wc ≥ 3 is necessary for good codes.

If the number of 1's per column or row is not constant, the code is an irregular LDPC code. Usually irregular LDPC codes outperforms regular LDPC codes.

Page 21: Low Density Parity Check Codes1 Ppt

A SIMPLE LDPC CODE

Parity Check Matrix Wc = 3 n = 10 and m = 5 Wr = 3 * (10/5) = 6

G can be found by Gaussian elimination.

H

Page 22: Low Density Parity Check Codes1 Ppt

SIMPLE REGULAR LDPC CODES

We can represent a LDPC code in two ways Tanner graph Matrix

Page 23: Low Density Parity Check Codes1 Ppt

REPRESENTING REGULAR LDPC CODES notation and its length N : the number of one’s in a column : the number of one’s in a row

If the dimension of H is ,

: the number of 1’s in H

Rate R =

),( cv dd

NM

vc NdMd

NMdd cv /1/1

vdcd

Page 24: Low Density Parity Check Codes1 Ppt

BIPARTITE GRAPH REPRESENTATION

N variable nodes

- circular shape - each connected with check nodes

M check nodes - rectangular shape - each connected with variable nodes Edge e = {v,c}

Nivi ,,1,

vd

cd

Mjc j ,,1,

Page 25: Low Density Parity Check Codes1 Ppt

ENCODING OF LDPC CODES

General encoding of systematic linear block codes

Issues with LDPC codes The size of G is very large. G is not generally sparse. Example: A (10000, 5000) LDPC code.

P is 5000 x5000. If we assume that the density of 1's in P is 0.5 There are 12.5x106 1's in P 12.5x106 addition operations are required to encode one code word.

An alternative approach to simplified encoding is to design the LDPC code via algebraic or geometric methods Such “structured” codes can be encoded with shift registers

Page 26: Low Density Parity Check Codes1 Ppt

DECODING OF LDPC CODES

General decoding of linear block codes Only if c is a valid code word, we have

c HT = 0 For binary symmetric channel (BSC), the received code word is c

added with an error vector e The decoder needs to find out e and flip the corresponding bits The decoding algorithm is usually based on linear algebra

Graph-based Algorithms Sum-product algorithm for general graph-based codes MAP algorithm for trellis graph-based codes Message passing algorithm for bipartite graph-based codes

Page 27: Low Density Parity Check Codes1 Ppt

We have code bits x = {x1,x2,x3…….xn} We have observation bits y={y1,y2,y3……yn} We have the probability between x and y f(x,y)=f(x1,x2,x3…….xn,y1,y2,y3……yn) =f(y1,y2,y3……yn|x1,x2,x3……..xn)f(x1,x2,x3….xn) For discrete memor yless channel

f(x,y)=

Page 28: Low Density Parity Check Codes1 Ppt

X1 X2 X3 X4 X5 X6 X7

Y1 Y2 Y3 Y4 Y5 Y6 Y7

H3H2H1

1

1

1

1

1

1

1

1

1

1

1

00

0

0

0 0

0

0

0

H1

X3X2 X5X4 X7X6X1

1

H2H3

H =

1

1

1

1

1

1

1

1

1

1

1

H1

X3X2 X5X4 X7X6X1

1

H2H3

H =

Page 29: Low Density Parity Check Codes1 Ppt

X1

Y1

1 23

X2

Y2

4 56

X3

Y3

7 89

XN

YN

n-2 n-1 n

H1 H2 H3 Hm

dV = Weight of the variable Nodes.

dC = Weight of the check Nodes.

Page 30: Low Density Parity Check Codes1 Ppt

µi(xi)………µdv-1(xi) is incoming message bits from yi. Xi is identical to yi(xi)µout(xi)=product of all incoming messages µout(xi)=

Xi

μ1(X

i)

μ2(Xi)

μdv-

1 (X

i)

Yi

μOUT(Xi)

Yi(Xi)

Observations

dv-1

Page 31: Low Density Parity Check Codes1 Ppt

µi(xi)………µdv-1(xi) is incoming message bits. Xi is variable code.µout(xout)= X1

X2

Xdv

μ1(X

i)

μ2(Xi)

μdc-1 (Xi)XOUT

μOUT(XOUT)

(X1+x2+x3+x4+……..xdc-1+xout)= 0I(Xi,x2……Xout) = 1, check is satisfied

0, otherwise

Page 32: Low Density Parity Check Codes1 Ppt

MESSAGE PASSING SCHEDULES

Iterative Decoding Procedure1. What order we have to star the procedure.2. What order we have to pass the message.3. How do we know when to stop.

Initially we get yi and Lc Execute the sum product algorithm on each variable and pass

messages to all attachment checks. Exectute the sum product algorithm each parity check, pass msgs

to all attachement variables Goto Start until stop Stop if

1. Valid Code word is found2. Maximum number of Iterations reached.

Page 33: Low Density Parity Check Codes1 Ppt

SUM PRODUCT ALGORITHM AT VARIABLE NODE

Xi

L1

L2

Ldv-

1

Yi

LOUT

Yi(Xi)

Observations

dv-1Check

Lout = Lc +

Page 34: Low Density Parity Check Codes1 Ppt

SUM PRODUCT ALGORITHM AT CHECK NODE

L1

L2

Ldc-

1LOUTdc-1

Lout = 2 tanh-1

Page 35: Low Density Parity Check Codes1 Ppt

HOW DOES STANDARD MESSAGE PASSING ALGORITHM WORK?

Variable nodes…………. ………..

. . . . . . . . . …………….

check nodes

…………….

error bits

?

Page 36: Low Density Parity Check Codes1 Ppt

HOW DOES STANDARD MESSAGE PASSING ALGORITHM WORK?

variable nodes…………. ………..

. . . . . . . . . …………….

check nodes

…………….

Lout = 2 tanh-1

Page 37: Low Density Parity Check Codes1 Ppt

ADVANTAGES OF LDPC BLOCK CODES

These are suited for implementations that make heavy use of parallelism Consequently, error-correcting codes with very long code lengths are feasible.

No tail bits are required for block coding providing additional bits for data transmission.

LDPC has excellent BER performance under AWGN. LDPC is extremely useful for large values of data bits N.

Page 38: Low Density Parity Check Codes1 Ppt

SUMMARY

Low-density-parity-check codes have been studied a lot in the last years and huge progresses have been made in the understanding and ability to design iterative coding systems.

The iterative decoding approach is already used in turbo codes but the structure of LDPC codes give even better results.

In many cases they allow a higher code rate and also a lower error floor rate.

The main disadvantages are that encoders are somehow more complex and that the code length has to be rather long to yield good results.

Page 39: Low Density Parity Check Codes1 Ppt

RESEARCH OPPORTUNITY

LDPC Code Design Efficient Implementation on FPGA LDPC Application for next generation communication

systems (Wireless, OFDM, ADSL).

Page 40: Low Density Parity Check Codes1 Ppt

REFERENCES http://www.csee.wvu.edu/wcrl/ldpc.htm R. G. Gallager, Low-Density Parity Check Codes. Cambridge, MA: MIT Press, 1963. LDPC Codes: An Introduction by Amin Shokrollahi (Digital Fountain, Inc.) T. Richardson and R. Urbanke, “The capacity of low-density parity-check codes under

message-passing decoding,” IEEE Trans. Inform. Theory, Feb. 2001.

Page 41: Low Density Parity Check Codes1 Ppt

THANK YOU!