COEN 180 Erasure Correcting, Error Detecting, and Error Correcting Codes

Download Report

Transcript COEN 180 Erasure Correcting, Error Detecting, and Error Correcting Codes

COEN 180
Erasure Correcting,
Error Detecting, and
Error Correcting Codes
Basics

Use encoding to protect data



for storage
for transmission.
Encode in order to

Discover errors



Correct errors


Example: CRC code tagged onto IP packets.
Example: ISBN number check digit
Example: Disk Drives, Communications Protocols
Correct erasures

Redundant storage of data (e.g. in Disk Arrays)
Basics

Rich Mathematical Theory
 Block
codes, burst codes, …
 Uses heavily Galois fields

Mathematical structure with addition, multiplication,
… in which we manipulate objects according to the
same rules as the more popular fields of real
numbers, complex numbers, rational numbers,
Error Detection

Basic Principle:
 Calculate
a small “signature” from a data
object and store it with the data object.
 For verification, recalculate the signature.

Example: CRC codes
 Cyclic
Redundancy Codes
 Fast calculation
Error Detection

Parity code
 Block code of l bits
 Adds parity bit to block
 Example:
 Message:


1011 1000 0100 1
Encoded message after one error:


1011 1000 0100
Encoded message:


code.
1111 1000 0100 1  Parity is Off
Encoded message after two errors:

1111 1100 0100 1  Parity is correct, error undetected
Error Detection: CRC

Example:
 Need

a CRC polynomial (a bit string for us)
Example 11011 (with leading 1)
 Cyclically
shift through the message with a
field the length of the CRC polynomial
Example 1000101001001000100100010
 Whenever most significant bit is 1, XOR CRC
polynomial.

Error Detection: CRC

Example:
1000101001001000100100010
1000
Error Detection: CRC

Example:
1000101001001000100100010
10001
Most significant bit is 1:
XOR 11011
Drop leading 0
01010
1010
Error Detection: CRC

Example:
1000101001001000100100010
1010 0
Shift contents of
register to left, drop in
next bit
Most significant bit is 0:
Drop leading 0
0100
Error Detection: CRC

Example:
1000101001001000100100010
0100 1
Shift contents of
register to left, drop in
next bit
Most significant bit is 0:
Drop leading 0
1001
Error Detection: CRC

Example:
1000101001001000100100010
10100
Shift contents of
register to left, drop in
next bit
Most significant bit is 1:
XOR 11011
Drop leading 0
01111
1111
Error Detection: CRC

Add CRC of packet in TCP/IP
Error Correction

Transmission Channel
 Used
for communications channel
 Used for storage channel (travel in time)
Error Correction



Encode an object with additional parity bits.
Use parity bits to detect and correct an error.
Trivial Example: Replication Code




Encodes messages of length 1b
Add to bit two copies of the bit.
When all three bits in the received message coincide, conclude
that no error has occurred.
Otherwise, use a majority rule to decide.
Decoding Table
000
0
100
0
001
0
101
1
010
0
110
1
011
1
111
1
Error Correction

Hamming Distance
 Defined
to be the number of different bits in a
bit string of length l.
 Examples:
0011 1110 and 0101 1110 have distance 2
 0011 1110 and 1100 0001 have distance 8

Error Correction
Code Word: a word that can be obtained
by encoding a piece of datum.
 There are many fewer code words than
possible.
 Maximum Likelihood Decoding:

 When
receiving a message, decode it with the
code word closest in Hamming distance.
Error Correction
Maximum Likelihood Decoding
Error Correction

Example:
 Assume
00
01
10
11
-
the following (bad) code:
00100
01110
10001
11000
 Assume
we received
11111
How do we decode?
Error Correction

Linear Codes
 Based
on Reed Solomon.
 Encode symbols: bit-strings of length l.
 Generate an m by n matrix G such that


any m by m submatrix is invertible.
such that G is of the form (1|P)


where 1 is the m by m identity matrix
P is the so-called parity matrix.
m symbol data (x1, x2, …,xm) as
(x1,x2,…,xm)G
 Encode
Error Correction : Hamming Code

Hamming Code
 Systematic:

Code word is data word + parity
m message bits and r parity bits
 Linear
matrix of size 2r-1 by r.
 Populate rows with binary encoding of all numbers
from 1 to 2r
 If desired, arrange them so that the identity matrix is
the lower part of the matrix.
 Create
Error Correction : Hamming Code
Hamming matrix for r = 3.
Error Correction: Hamming Code
If data word is (a,b,c,d), then code word is
(a,b,c,d,x,y,z) where the parity bits are
chosen such that
(a,b,c,d)H=(0,0,0,0,0,0,0).

Error Correction: Hamming Code
Error Correction: Hamming Code

Example:
 Data
is (0,1,0,1)
 What is the code word?
Error Correction: Hamming Code

Answer:
 (0,1,0,1,0,1,0).
Error Correction: Hamming Code
To correct an error, apply H to the received
vector.
 The result is the binary encoding of a row
in H.
 The corresponding coefficient in the vector
is were the error most likely was.

Error Correction: Hamming Code


Assume that we received (0100010).
We apply H to this vector:
(0100010)· H = (111).



Therefore, the error is given by row
(111).
That is, in the fourth row.
Hence, error is in bit position 4.