error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · uses of ecc setting...

21
Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance Error correcting codes Michael Mo 26 January 2016 Error correcting codes Michael Mo 1 van 21

Upload: lamdieu

Post on 28-Apr-2019

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Error correcting codes

Michael Mo

26 January 2016

Error correcting codes Michael Mo 1 van 21

Page 2: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC

Where are error correcting codes needed?

Computer memory

CD’s, DVD’s

Communication from earth to a satellite

Error correcting codes Michael Mo 2 van 21

Page 3: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Setting and model

Normal setting:

Setting with an encoding and decoding scheme:

Error correcting codes Michael Mo 3 van 21

Page 4: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Setting and model

Assumptions

Binary bitstream

Binary symmetric channel

Noise only introduces bitflips

Block code

Encoder encodes fixed number of data bits every time and gives afixed length binary string.

Error correcting codes Michael Mo 4 van 21

Page 5: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Concept block codes

For any two binary strings x and y :

Hamming weight of x : The total number of 1’s which appearin x .

Hamming distance between x and y : The number of positionswhere x and y differ. (Same as Hamming weight of (x ⊕ y))

Error correcting codes Michael Mo 5 van 21

Page 6: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Concept block codes

For every data string, the encoder maps it to a longer binary stringcalled a codeword.

Error correcting codes Michael Mo 6 van 21

Page 7: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Concept block codes

Scenario 1: Two different data strings get mapped to twocodewords which are close to each other.

Error correcting codes Michael Mo 7 van 21

Page 8: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Concept block codes

Scenario 2: Two different data strings get mapped to twocodewords which are far from each other.

Error correcting codes Michael Mo 8 van 21

Page 9: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Concept block codes

Desired property of code

The Hamming distance between all pairs of codewords is big.

Distance of a code: The minimum Hamming distance of allpossible pairs of codewords.

If a code has distance d, then:

can be used as a d − 1 error detecting code

can be used as a bd−12 c error correcting code

mix of the two above

Error correcting codes Michael Mo 9 van 21

Page 10: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Hamming code (7,4)

1-bit error correcting linear block code.4 data bits, 3 parity check bits.

Encoding function:The data string d1d2d3d4 gets encoded as p1p2d1p3d2d3d4 with:

p1 = d1 ⊕ d2 ⊕ d4

p2 = d1 ⊕ d3 ⊕ d4

p3 = d2 ⊕ d3 ⊕ d4

Error correcting codes Michael Mo 10 van 21

Page 11: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Hamming code (7,4)

Error correcting codes Michael Mo 11 van 21

Page 12: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Hamming code (7,4)

See the binary strings as vectors from vectorspaces(with mod 2 addition).(

F2

)4→(F2

)7

x1x2x3x4

7→

x1 + x2 + x4x1 + x3 + x4

x1x2 + x3 + x4

x2x3x4

Error correcting codes Michael Mo 12 van 21

Page 13: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Hamming code (7,4)

The encoding function f is obviously linear, since a + b = a + bwith x defined as x mod 2.

Generator matrix for code f

G =

1 1 0 11 0 1 11 0 0 00 1 1 10 1 0 00 0 1 00 0 0 1

Codeword for x is c = Gx .

Error correcting codes Michael Mo 13 van 21

Page 14: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Hamming code (7,4)

All codewords

0000 0000000 1000 11100000001 1101001 1001 00110010010 0101010 1010 10110100011 1000011 1011 01100110100 1001100 1100 01111000101 0100101 1101 10101010110 1100110 1110 00101100111 0001111 1111 1111111

For any two codewords c1, c2, (c1 + c2) is also a codeword:

c1 + c2 = Gx1 + Gx2 = G (x1 + x2)

So distance of Hamming code [7,4] is indeed 3.Error correcting codes Michael Mo 14 van 21

Page 15: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Hamming code (7,4)

From all parity check equations, we get the parity check matrix

H =

1 0 1 0 1 0 10 1 1 0 0 1 10 0 0 1 1 1 1

Note: For any codeword c, we have Hc = 0.

The decoder receives a binary string v , which can be written asv = c + e with c the original codeword and e the error vector.

Error correcting codes Michael Mo 15 van 21

Page 16: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Hamming code (7,4)

How to decode v?

The syndrome of v is defined as s = Hv , but then we see:

s = Hv = H(c + e) = Hc + He = 0 + He = He

Answer: Solve s = He for the error vector e which has the smallestHamming weight.

Error correcting codes Michael Mo 16 van 21

Page 17: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Hamming code (7,4)

Syndrome table

000 0000000100 1000000010 0100000110 0010000001 0001000101 0000100011 0000010111 0000001

Decoded codeword is v − e = (c + e)− e = c .

Error correcting codes Michael Mo 17 van 21

Page 18: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Extended Hamming code (8,4)

Use 1 extra parity bit to have 1-bit error correcting and 2-bit errordetecting code.

Error correcting codes Michael Mo 18 van 21

Page 19: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Performance

Rate of a block code is (#data bits / blocksize).

Decoding error of source bit:Repetition[3,1]:

pb =3∑

k=2

(3

k

)· f k · (1− f )(3−k) ≈ 3f 2

Hamming[7,4]:

pB =7∑

k=2

(7

k

)· f k · (1− f )(7−k) ≈ 21f 2

pb ≈3

7· pB ≈ 9f 2

Error correcting codes Michael Mo 19 van 21

Page 20: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Performance

With the chance of a bitflip occurring at f = 0.01:

No ECC Repitition[3,1] Hamming[7,4]

Rate 1 1/3 4/7

Decoding error source bit 0.01 3 · 10−4 9 · 10−4

Error correcting codes Michael Mo 20 van 21

Page 21: Error correcting codes - homepages.cwi.nlschaffne/courses/infcom/2015/... · Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Uses of ECC Setting and model Concept block codes Hamming code (7,4) Extended Hamming code (8,4) Performance

Performance

Figuur: David J. C. MacKay. Information Theory, Inference, and LearningAlgorithms.

Error correcting codes Michael Mo 21 van 21