coen 180
Download
Skip this Video
Download Presentation
COEN 180

Loading in 2 Seconds...

play fullscreen
1 / 27

COEN 180 - PowerPoint PPT Presentation


  • 147 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'COEN 180' - armina


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

ad