Review - PowerPoint PPT Presentation

About This Presentation
Title:

Review

Description:

How to design codes that have error correction/detection capability? ... How many bits of errors can be corrected? Example: 00000000, 00001111, 11110000, 11111111. ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 12
Provided by: xyu
Learn more at: http://www.cs.fsu.edu
Category:
Tags: corrected | review

less

Transcript and Presenter's Notes

Title: Review


1
  • Review

2
  • Error correction and error detection.
  • What is an error? Bits missed or altered.
  • How to find an error?
  • Make sure that when errors occur, the resulting
    message is invalid.
  • E.g two bits message 00, 01, 10, 11 or 00, 11?

3
  • How to find an error?
  • Introducing redundancy -- using 2 bits message to
    send 1 bit information in the previous example.
  • Message information bits redundant bits
    (checksum).
  • How to design codes that have error
    correction/detection capability?
  • Hamming distance between two code words the
    number of different bits between the two code
    words.
  • E.g 010101 and 111000? Hamming distance ?
  • Hamming distance of a complete code the minimum
    Hamming distance any of the two codewords in the
    code.
  • E.g 010101, 111000, 000111, 111111
    Hamming_distance ?

4
  • Relation between Hamming distance of a code and
    the codes error detection/correction capability
  • Hamming distance N
  • How many bits of errors can be detected?
  • How many bits of errors can be corrected?
  • Example 00000000, 00001111, 11110000, 11111111.
  • Hamming distance ? How many bits of errors can
    be detected? How many bits of errors can be
    corrected?
  • Example 2 Parity code (Even parity code)?
  • Let number of information bits 2, How to
    construct the even parity code? Hamming distance
    ?

5
  • Error correction code
  • How many (r) redundant bits do we need to correct
    a single error for the m information bits?
  • A message contains mr bits
  • total number of possible codewords 2(mr)
  • total number of valid codewords 2(m)
  • To correct single error, each single error must
    results in a different (invalid) codeword.
  • Total number of (invalid) codewords for one bit
    error (mr)2m
  • total number of valid codewords plus the total
    number of (invalid) codewords for single bit
    error must be less than the total number of
    possible codewords.
  • 2m(mr)2m lt 2(rm)
  • mr1 lt 2r

6
  • Error correction code
  • How many (r) redundant bits do we need to correct
    single error for the m information bits?
  • mr1 lt 2r
  • m 1, r 2
  • m 2, r 3
  • m 3, r 3
  • m 1000, r 10
  • This formula gives the lower bound of the
    redundant bits to correct a single error. Hamming
    code achieves this lower bound (Chapter 3.2.1).
  • How many redundant bits are needed to detect a
    single error?

7
  • Error correction code/error detection code which
    code is more efficient?
  • Consider only the single bit error
  • Assumption error rate 10(-6), one error in 1
    million bits
  • packet size 1000 bits for information, total 1000
    packets.
  • Error correction 1000 (100010)
  • Error detection 1000(10001) (10001)
  • Error correction code is in general NOT
    efficient!!!

8
  • Error detection code
  • parity code detect single error, not good
    enough.
  • To detect N errors, we need to have a code whose
    hamming distance gtN1. How to get this kind of
    code?
  • The most commonly used error detection code is
    called polynomial code, or cyclic redundancy code
    or CRC code.
  • A bit stream is treated as a polynomial with
    coefficients 0s and 1s
  • k bits gt k-terms polynomial
  • 11001 ---gt x4x30x20x1
    x0
  • The sender and the receiver have a generator
    polynomial G(X) with degree r
  • Add the checksum bits to make sure that the final
    message is divisible by G(X).

9
  • How to compute the checksum?
  • Let r be the degree of G(x). Append r zero to the
    low-order end of data bits (m bits) so that the
    frame contains mr bits corresponding to xrM(x)
  • Using modulo 2 division to divide the bit stream
    corresponding to xrM(x) by the bit stream
    string corresponding to G(x).
  • Add the remainder back to the frame xrM(x).
  • Example Data 1101011011, Generator 10011
  • What would be the final data frame?

10
  • The power of the CRC code
  • Depends on the selection of the generator, G(x)
  • T(x) frame polynomial,
  • E(x) error polynomial
  • G(x) generator polynomial
  • T(x) E(x) / G(x) E(x) / G(x)
  • Single error E(x) xj
  • G(x) has more than two terms, guarantee to detect
    single error.
  • Double error E(x) xjxkxk(x(j-k)1)
  • xk1 (klt32768) cannot be divisiable by
    x15x141.
  • x1 cannot divide any polynomial with odd number
    of terms (detect all odd number of errors).
  • xr can detect all less than r number of burst
    errors.

11
  • Three standard polynomials
  • CRC-12 x12x11x3x2x1
  • CRC-16 x16x15x21
  • CRC-CCITT x16x12x51
  • What is the hamming distance for the code
    generated by CRC-16?
Write a Comment
User Comments (0)
About PowerShow.com