Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Error Correcting Code

Error Correcting Code

Aleksandrs Cudars

April 08, 2013
Tweet

More Decks by Aleksandrs Cudars

Other Decks in Technology

Transcript

  1. An error-correcting code is an algorithm for expressing a sequence

    of numbers such that any errors which are introduced can be detected and corrected (within certain limitations) based on the remaining numbers.
  2. Error detection is much simpler than error correction, and one

    or more "check" digits are commonly embedded in credit card numbers in order to detect mistakes.
  3. Early space probes like Mariner used a type of error-

    correcting code called a block code, and more recent space probes use convolution codes. Error-correcting codes are also used in CD players, high speed modems, and cellular phones.
  4. Modems use error detection when they compute checksums, which are

    sums of the digits in a given transmission modulo some number. The ISBN used to identify books also incorporates a check digit.
  5. How it works ECC is accomplished by adding redundancy to

    the transmitted information using an algorithm. A redundant bit may be a complex function of many original information bits. The original information may or may not appear literally in the encoded output; codes that include the unmodified input in the output are systematic, while those that do not are non- systematic.
  6. How it works A simplistic example of FEC is to

    transmit each data bit 3 times, which is known as a (3,1) repetition code. Through a noisy channel, a receiver might see 8 versions of the output. This allows an error in any one of the three samples to be corrected by "majority vote" or "democratic voting". The correcting ability of this FEC is: • up to 1 bit of triplet in error, or • up to 2 bits of triplet omitted (cases not shown in table).
  7. The central idea is the sender encodes their message in

    a redundant way by using an error-correcting code (ECC). The American mathematician Richard Hamming pioneered this field in the 1940s and invented the first error-correcting code in 1950: the Hamming code.
  8. Hamming Code Hamming codes are a family of linear error-correcting

    codes that generalize the Hamming(7,4)-code invented by Richard Hamming in 1950. Hamming codes can detect up to two and correct up to one bit errors. By contrast, the simple parity code cannot correct errors, and can detect only an odd number of errors.
  9. Hamming Code Hamming codes are special in that they are

    perfect codes, that is, they achieve the highest possible rate for codes with their block length and minimum distance 3.
  10. List of error-correcting codes distance code 2 (single-error detecting) parity

    3 (single-error correcting) triple modular redundancy 3 (single-error correcting) perfect Hamming such as Hamming(7,4) 4 (SECDED) extended Hamming 7 (three-error correcting) perfect binary Golay code 8 (TECFED) extended binary Golay code
  11. List of error-correcting codes AN codes BCH code Constant-weight code

    Convolutional code Group codes Golay codes, of which the Binary Golay code is of practical interest
  12. List of error-correcting codes Goppa code, used in the McEliece

    cryptosystem Hadamard code Hagelbarger code Hamming code Latin square based code for non-white noise (prevalent for example in broadband over powerlines)
  13. List of error-correcting codes Lexicographic code Long code Low-density parity-check

    code, also known as Gallager code, as the archetype for sparse graph codes LT code, which is a near-optimal rateless erasure correcting code (Fountain code) m of n codes
  14. List of error-correcting codes m of n codes Online code,

    a near-optimal rateless erasure correcting code Polar code (coding theory) Raptor code, a near-optimal rateless erasure correcting code Reed–Solomon error correction Reed–Muller code
  15. List of error-correcting codes Repeat-accumulate code Repetition codes, such as

    Triple modular redundancy Tornado code, a near-optimal erasure correcting code, and the precursor to Fountain codes Turbo code Walsh–Hadamard code