- 114 Views
- Uploaded on
- Presentation posted in: General

COEN 180

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

COEN 180

Erasure Correcting,

Error Detecting, and

Error Correcting Codes

- Use encoding to protect data
- for storage
- for transmission.

- Encode in order to
- Discover errors
- Example: CRC code tagged onto IP packets.
- Example: ISBN number check digit

- Correct errors
- Example: Disk Drives, Communications Protocols

- Correct erasures
- Redundant storage of data (e.g. in Disk Arrays)

- Discover errors

- 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,

- 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

- Parity code
- Block code of l bits
- Adds parity bit to block code.
- Example:
- Message:
- 1011 1000 0100

- Encoded message:
- 1011 1000 0100 1

- Encoded message after one error:
- 1111 1000 0100 1 Parity is Off

- Encoded message after two errors:
- 1111 1100 0100 1 Parity is correct, error undetected

- Message:

- 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.

- Need a CRC polynomial (a bit string for us)

- Example:
1000101001001000100100010

1000

- Example:
1000101001001000100100010

10001

Most significant bit is 1:

XOR 11011

Drop leading 0

01010

1010

- Example:
1000101001001000100100010

Shift contents of register to left, drop in next bit

1010

0

Most significant bit is 0:

Drop leading 0

0100

- Example:
1000101001001000100100010

Shift contents of register to left, drop in next bit

0100

1

Most significant bit is 0:

Drop leading 0

1001

- Example:
1000101001001000100100010

Shift contents of register to left, drop in next bit

10100

Most significant bit is 1:

XOR 11011

Drop leading 0

01111

1111

- Add CRC of packet in TCP/IP

- Transmission Channel
- Used for communications channel
- Used for storage channel (travel in time)

- 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

- 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

- 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.

Maximum Likelihood Decoding

- Example:
- Assume the following (bad) code:
00 - 00100

01 - 01110

10 - 10001

11 - 11000

- Assume we received
11111

How do we decode?

- Assume the following (bad) code:

- 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.

- Encode m symbol data (x1, x2, …,xm) as (x1,x2,…,xm)G

- Hamming Code
- Systematic: Code word is data word + parity
- m message bits and r parity bits

- Linear
- Create matrix of size 2r-1by 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.

- Systematic: Code word is data word + parity

Hamming matrix for r = 3.

- 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).

- Example:
- Data is (0,1,0,1)
- What is the code word?

- Answer:
- (0,1,0,1,0,1,0).

- 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.

- Assume that we received (0100010).
- We apply H to this vector:
- Therefore, the error is given by row (111).
- That is, in the fourth row.
- Hence, error is in bit position 4.

(0100010)· H = (111).