15-853:Algorithms in the Real World Error Correcting Codes 15-853 - - PowerPoint PPT Presentation

15 853 algorithms in the real world error correcting codes
SMART_READER_LITE
LIVE PREVIEW

15-853:Algorithms in the Real World Error Correcting Codes 15-853 - - PowerPoint PPT Presentation

15-853:Algorithms in the Real World Error Correcting Codes 15-853 Page1 Welc**e t* t*e fi*st clas* o* t*is course. Y*u a** in f*r a f*n rid* th*s se*est*r! What do these sentences say? Why did this work?


slide-1
SLIDE 1

15-853 Page1

15-853:Algorithms in the Real World Error Correcting Codes

slide-2
SLIDE 2

What do these sentences say? Welc**e t* t*e fi*st clas* o* t*is course. Y*u a** in f*r a f*n rid* th*s se*est*r! Why did this work?

Redundancy!

Codes are clever ways of judiciously adding redundancy to enable recovery under “noise”.

slide-3
SLIDE 3

15-853 Page3

General Model

codeword (c)

encoder noisy channel decoder

message (m) message or error codeword’ (c’)

“Noise” introduced by the channel:

  • changed fields in the codeword

vector (e.g. a flipped bit).

  • Called errors
  • missing fields in the codeword

vector (e.g. a lost byte).

  • Called erasures

How the decoder deals with errors and/or erasures?

  • detection (only needed for

errors)

  • correction
slide-4
SLIDE 4

15-853 Page4

Applications

  • Storage: CDs, DVDs, hard disks, Flash,…
  • Wireless: Cell phones, wireless links,..
  • Satellite and Space: TV, Mars rover, …
  • Digital Television: DVD, MPEG2 layover,

Reed-Solomon codes were traditionally the most used in practice. LDPC codes used for 4G (and 5G) communication. Algorithms for decoding are quite sophisticated.

slide-5
SLIDE 5

15-853 Page5

Block Codes

… s2k … sk+2 s5 … sk sk+1 s1 s2 s3 s4

block 1 block 2 message 1 message 2

symbols (e.g., bits)

Other kind: convolutional codes (we won’t cover it)…

slide-6
SLIDE 6

15-853 Page6

Block Codes

  • Each message and codeword is of fixed

size

  • Notation:

k = |m| length of the message n = |c| length of the codeword C = “code” = set of codewords

codeword (c)

encoder noisy channel decoder

message (m) message or error codeword’ (c’)

slide-7
SLIDE 7

Simple Examples

3-Repetition code: k=1, n=3 <board>

  • How many erasures can be recovered?
  • How many errors can be detected?
  • Up to how many errors can be corrected?

Errors are much harder to deal with than erasures. Why? Need to find out where the errors are!

15-853 Page7

slide-8
SLIDE 8

Simple Examples

Single parity check code: k=2, n=3 <board>

15-853 Page8

Consider codewords as vertices on a hypercube.

000 001 111 100 101 011 110 010

codeword n = 3 = dimensionality 2n = 8 = number of nodes

slide-9
SLIDE 9

Simple Examples

Single parity check code: k=2, n=3

  • How many erasures can be recovered?
  • How many errors can be detected?
  • Up to how many errors can be corrected?

Cannot even correct single error. Why? Codewords are too “close by” Let’s formalize this notion of distance..

15-853 Page9

000 001 111 100 101 011 110 010

slide-10
SLIDE 10

15-853 Page10

Block Codes

In general, symbols come from an “alphabet” Notation:  = alphabet q = || = alphabet size Question: What alphabet did we use so far? C  Sn (codewords)

codeword (c)

coder noisy channel decoder

message (m) message or error codeword’ (c’)

slide-11
SLIDE 11

15-853 Page11

Block Codes

Notion of distance between codewords: D(x,y) = number of positions s.t. xi  yi minimum distance of a code d = min{D(x,y) : x,y C, x  y} Code described as: (n, k, d)q

codeword (c)

coder noisy channel decoder

message (m) message or error codeword’ (c’)

slide-12
SLIDE 12

15-853 Page12

Binary Codes

slide-13
SLIDE 13

15-853 Page13

Example of (6,3,3)2 systematic code

Definition: A Systematic code is one in which the message appears in the codeword message codeword 000 000000 001 001011 010 010101 011 011110 100 100110 101 101101 110 110011 111 111000

slide-14
SLIDE 14

15-853 Page14

Error Correcting One Bit Messages

How many bits do we need to correct a one bit error on a one bit message?

000 001 111 100 101 011 110 010 00 01 11 10

2 bits 0 -> 00, 1-> 11 (n=2,k=1,d=2) 3 bits 0 -> 000, 1-> 111 (n=3,k=1,d=3) In general need d  3 to correct one error. Why?

slide-15
SLIDE 15

Role of Minimum Distance

Theorem: A code C with minimum distance “d” can:

  • 1. detect any (d-1) errors
  • 2. recover any (d-1) erasures
  • 3. correct any <write> errors

Proof: <Will be part of homework> Intuition here.. minimum-distance-decoding..

15-853 Page15

slide-16
SLIDE 16

Desiderata

We look for codes with the following properties:

  • 1. Good rate: k/n should be high (low overhead)
  • 2. Good distance: d should be large (good error correction)
  • 3. Small block size k
  • 4. Fast encoding and decoding
  • 5. Others: want to handle bursty/random errors, local

decodability, ...

15-853 Page16

slide-17
SLIDE 17

15-853 Page17

We will begin next class with Hamming Codes