Coen 180
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

COEN 180 PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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

Presentation Transcript


Coen 180

COEN 180

Erasure Correcting,

Error Detecting, and

Error Correcting Codes


Basics

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)


Basics1

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

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 detection1

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


Error detection crc

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 crc1

Error Detection: CRC

  • Example:

    1000101001001000100100010

1000


Error detection crc2

Error Detection: CRC

  • Example:

    1000101001001000100100010

10001

Most significant bit is 1:

XOR 11011

Drop leading 0

01010

1010


Error detection crc3

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


Error detection crc4

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


Error detection crc5

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


Error detection crc6

Error Detection: CRC

  • Add CRC of packet in TCP/IP


Error correction

Error Correction

  • Transmission Channel

    • Used for communications channel

    • Used for storage channel (travel in time)


Error correction1

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


Error correction2

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 correction3

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 correction4

Error Correction

Maximum Likelihood Decoding


Error correction5

Error Correction

  • Example:

    • Assume the following (bad) code:

      00  -    00100

      01  -    01110

      10  -    10001

      11  -    11000

    • Assume we received

      11111

      How do we decode?


Error correction6

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


Error correction hamming code

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.


Error correction hamming code1

Error Correction : Hamming Code

Hamming matrix for r = 3.


Error correction hamming code2

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 code3

Error Correction: Hamming Code


Error correction hamming code4

Error Correction: Hamming Code

  • Example:

    • Data is (0,1,0,1)

    • What is the code word?


Error correction hamming code5

Error Correction: Hamming Code

  • Answer:

    • (0,1,0,1,0,1,0).


Error correction hamming code6

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 code7

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


  • Login