19
Error Correction and LDPC decoding 1

Error Correction and LDPC decoding

  • Upload
    pilis

  • View
    205

  • Download
    1

Embed Size (px)

DESCRIPTION

Error Correction and LDPC decoding. Error Correction in Communication Systems. noise. Transmitter. Receiver. Corrupted. Binary. Corrected. frame. frame. information. information. channel. 3. - PowerPoint PPT Presentation

Citation preview

Page 1: Error Correction and LDPC decoding

Error Correction and LDPC decoding

1

Page 2: Error Correction and LDPC decoding

Error Correction in Communication Systems

2

Error: Given the original frame k and the received frame k’, how many corresponding bits differ? Hamming distance (Hamming, 1950). Example:

Transmitted frame: 1110011 Received frame: 1011001 Number of errors:

noise

TransmitterBinary

informationCorrected

informationframeCorrupted

framechannel Receiver

3

Page 3: Error Correction and LDPC decoding

3

Error Detection and Correction

Add extra information to the original data being transmitted. Frame = k data bits + m bits for error control: n = k + m.

Error detection: enough info to detect error. Need retransmissions.

Error correction: enough info to detect and correct error. Forward error correction (FEC).

Page 4: Error Correction and LDPC decoding

Error Correction in Communication Systems

Encoder(Adding

Redundancy)Channel

Decoder(Error Detectionand Correction

Noise

Binary information

Corrected information

Encoded information

Corruptedinformationwith noise

Reed Solomon codes

Hamming codes

LDPC Introduced

Convolutional codes

BCH codes

Renewed interest in LDPC

Turbo codes

197019601950 1990 20001980

Practical implementation

of codes LDPC beats Turbo and

convolutional codes

Page 5: Error Correction and LDPC decoding

Key terms

Encoder : adds redundant bits to the sender's bit stream to create a codeword. Decoder: uses the redundant bits to detect and/or correct as many bit errors

as the particular error-control code will allow. Communication Channel: the part of the communication system that

introduces errors. Ex: radio, twisted wire pair, coaxial cable, fiber optic cable, magnetic tape, optical discs, or

any other noisy medium

Additive white Gaussian noise (AWGN)

Larger noise makes the distribution wider

5

Page 6: Error Correction and LDPC decoding

Important metrics

Bit error rate (BER): The probability of bit error. We want to keep this number small Ex: BER=10-4 means if we have transmitted10,000 bits, there is 1 bit error. BER is a useful indicator of system performance independent of error channel

Signal to noise ratio (SNR): quantifies how much a signal has been corrupted by noise. defined as the ratio of signal power to the noise power corrupting the signal. A ratio

higher than 1:1 indicates more signal than noise often expressed using the logarithmic decibel scale:

Important number: 3dB means

6

signal power is two times noise power

Page 7: Error Correction and LDPC decoding

Error Correction in Communication Systems

Goal: Attain lower BER at smaller SNR Error correction is a key component

in communication and storage applications.

Coding example: Convolutional, Turbo, and Reed-Solomon codes

What can 3 dB of coding gain buy? A satellite can send data with half the

required transmit power A cellphone can operate reliably with

half the required receive power Signal to Noise Ratio (dB)

Figure courtesy of B. Nikolic, 2003 (modified)

Bit

Err

or P

roba

bilit

y

100

10-1

10-2

10-3

10-4

0 1 2 3 4 5 6 7 8

3 dBConvolutional code

Uncoded system

noise

7

Information k-bit

channel

Codewordn-bit

Receivedword n-bit

Decoder (check parity,detect error)

Encoder(add parity)

CorrectedInformation

k-bit

Page 8: Error Correction and LDPC decoding

LDPC Codes and Their Applications

Low Density Parity Check (LDPC) codes have superior error performance 4 dB coding gain over convolutional codes

Standards and applications 10 Gigabit Ethernet (10GBASE-T) Digital Video Broadcasting

(DVB-S2, DVB-T2, DVB-C2) Next-Gen Wired Home

Networking (G.hn) WiMAX (802.16e) WiFi (802.11n) Hard disks Deep-space satellite missions

Signal to Noise Ratio (dB)

Bit

Err

or P

roba

bilit

y

100

10-1

10-2

10-3

10-4

0 1 2 3 4 5 6 7 8

4 dBConv. code

Uncoded

Figure courtesy of B. Nikolic, 2003 (modified) 8

Page 9: Error Correction and LDPC decoding

Future Wireless Devices Requirements

Increased throughput 1Gbps for next generation of WiMAX

(802.16m) and LTE (Advanced LTE) 2.2 Gbps WirelessHD UWB [Ref]

Power budget likely Current smart phones require 100 GOPS

within 1 Watt [Ref]

Required reconfigurability for different environments A rate-compatible LDPC code is proposed

for 802.16m [Ref]

Required reconfigurability for different communication standards Ex: LTE/WiMax dual-mode cellphones

require Turbo codes (used in LTE) and LDPC codes (used in WiMAX)

Requires hardware sharing for silicon area saving

Page 10: Error Correction and LDPC decoding

Future Digital TV Broadcasting Requirements

High definition television for stationery and mobile users

DTMB/DMB-TH (terrestrial/mobile), ABS-S (satellite), CMMB (multimedia/mobile)

Current Digital TV (DTV) standards are not well-suited for mobile devices

Require more sophisticated signal processing and correction algorithms

Require Low power Require Low error floor

Remove multi-level coding Recently proposed ABS-S

LDPC codes (15,360-bit code length, 11 code rates) achieves FER < 10-7 without concatenation [Ref]

Page 11: Error Correction and LDPC decoding

Future Storage Devices Requirements

Ultra high-density storage 2 Terabit per square inch [ref]

Worsening InterSymbol Interference (ISI) [ref] High throughput

Larger than 5 Gbps [ref] Low error floor

Lower than 10-15 [ref] Remove multi-level coding

Next generation of Hitachi IDRC read-channel technology [9]

Page 12: Error Correction and LDPC decoding

Encoding Picture Example

H×ViT=0

1 0 1 1 1 0 1 1 0 0 0 0 … 1 1 1 1 0 0 0 1 1 1 1 10 1 0 0 1 0 0 0 1 0 1 1 … 0 1 1 0 0 1 0 0 0 1 1 00 1 0 1 0 0 0 1 1 1 1 1 … 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 … 0 1 0 0 1 1 1 0 0 1 0 0

… ...

V =

1 0 0 0 0 0 0 0 0 0 . . .1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 00 1 0 0 0 0 0 0 0 0 . . .1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 . . .0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 . . .0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 1

… ...

H=

Parity Image

V=

Binary multiplication called syndrome check

Page 13: Error Correction and LDPC decoding

Decoding Picture Example

20 40 60 80 100 120 140 160 180 200

50

100

150

200

250

20 40 60 80 100 120 140 160 180 200

50

100

150

200

250

50 100 150 200

50

100

150

200

250

20 40 60 80 100 120 140 160 180 200

50

100

150

200

250

Iterative message passing decoding

Receivernoise

Iteration 1

Transmitter

Iteration 5 Iteration 15 Iteration 16

channel

Ethernet cable,

Wireless,

or Hard disk

Page 14: Error Correction and LDPC decoding

LDPC Codes—Parity Check Matrix

Defined by a large binary matrix, called a parity check matrix or H matrix Each row is defined by a parity equation Each parity is generated by a few (not all) information bits

Example: 6x 12 H matrix for a12-bit LDPC code No. of columns=12 (i.e. Receivedword (V) = 12 bit) No. of rows= 6 No. of ones per row=3 (row weight) No. of ones per col= 2 (column weight)

14

100001010

010100001

001001100

001100010

100010001

10010100

H =

C1

V3 V4 V8V1 V2 V5 V6 V7 V9

C2

C3

C4

C5

C6

001

010

010

100

001

100

V11V10 V12

0

Page 15: Error Correction and LDPC decoding

LDPC Codes—Tanner Graph Interconnect representation of H matrix

Two sets of nodes: Check nodes and Variable nodes Each row of the matrix is represented by a Check node Each column of matrix is represented by a Variable node

A message passing method is used between nodes to correct errors

(1) Initialization with Receivedword(2) Messages passing until correct Example: V3 to C1, V5 to C1, V8 to C1, V10 to C1 C2 to V1, C5 to V1

15

C1 C2 C3 C4 C5 C6

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12

Check nodes

Variable nodes

Receivedword from channel

C1 C2 C3 C4 C5 C6

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12

Check nodes

Variable nodes

C1 C2 C3 C4 C5 C6

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12

Check nodes

Variable nodes

Page 16: Error Correction and LDPC decoding

Message Passing: Variable node processing

100001010

010100001

001001100

001100010

100010001

10010100

H

001

010

010

100

001

100

0

C1 C2 C3 C4 C5 C6

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12

jijhj

ij

ij

'1,' '

λ is the original received information from the channel16

α: message from check to variable node

β: message from variable to check node

Variable processing

β

α

Check processingλ

channel

Page 17: Error Correction and LDPC decoding

Message Passing: Check node processing (MinSum)

100001010

010100001

001001100

001100010

100010001

10010100

H

001

010

010

100

001

100

0

C1 C2 C3 C4 C5 C6

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12

Check nodes

Variable nodes

Sfactorsign ijjjhjjjhj

ijMSijijij

'

',1,'',1,'' min

''

17

Sign Magnitude

After check node processing, the next

iteration starts with another variable node processing

(begins a new iteration)

Variable processing

α

Check processingλ

β

channel

Page 18: Error Correction and LDPC decoding

Example

Encoded information V= [1 0 1 0 1 0 1 0 1 1 1 1]

18

100001010

010100001

001010100

001100010

100010001

10001100

H

001

010

010

100

001

100

0

BPSK modulated= [-1 1 -1 1 -1 1 -1 1 -1 -1 -1 -1] λ (Received data from channel)= [ -9.1 4.9 -3.2 3.6 -1.4 3.1 0.3 1.6 -6.1 -2.5 -7.8 -6.8]

Estimated code= V= 1 0 1 0 1 0 0 0 1 1 1 1^

Page 19: Error Correction and LDPC decoding

Syndrome computation

19

100001010

010100001

001010100

001100010

100010001

10001100

H

001

010

010

100

001

100

0

Estimated code= V= 1 0 1 0 1 0 0 0 1 1 1 1

Syndrome = [0 0 1 1 0 0]

Sumsyndrome=2 Not ZERO then Error

ii

hhjji

SyndromeSyndromSum

vXORSyndromeijij 0|

)(

Step 1: syndrome check: H.Vt=0?

^