1 / 27

COEN 180

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 Example: CRC code tagged onto IP packets. Example: ISBN number check digit Correct errors

armina
Télécharger la présentation

COEN 180

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Basics • 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)

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

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

  5. Error Detection • 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

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

  7. Error Detection: CRC • Example: 1000101001001000100100010 1000

  8. Error Detection: CRC • Example: 1000101001001000100100010 10001 Most significant bit is 1: XOR 11011 Drop leading 0 01010 1010

  9. Error Detection: CRC • Example: 1000101001001000100100010 Shift contents of register to left, drop in next bit 1010 0 Most significant bit is 0: Drop leading 0 0100

  10. Error Detection: CRC • Example: 1000101001001000100100010 Shift contents of register to left, drop in next bit 0100 1 Most significant bit is 0: Drop leading 0 1001

  11. Error Detection: CRC • 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

  12. Error Detection: CRC • Add CRC of packet in TCP/IP

  13. Error Correction • Transmission Channel • Used for communications channel • Used for storage channel (travel in time)

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

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

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

  17. Error Correction Maximum Likelihood Decoding

  18. Error Correction • Example: • Assume the following (bad) code: 00  -    00100 01  -    01110 10  -    10001 11  -    11000 • Assume we received 11111 How do we decode?

  19. 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. • Encode m symbol data (x1, x2, …,xm) as (x1,x2,…,xm)G

  20. Error Correction : Hamming Code • 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.

  21. Error Correction : Hamming Code Hamming matrix for r = 3.

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

  23. Error Correction: Hamming Code

  24. Error Correction: Hamming Code • Example: • Data is (0,1,0,1) • What is the code word?

  25. Error Correction: Hamming Code • Answer: • (0,1,0,1,0,1,0).

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

  27. Error Correction: Hamming Code • 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).

More Related