Review. Error correction and error detection. What is an error? Bits missed or altered. How to find...

11
• Review

Transcript of Review. Error correction and error detection. What is an error? Bits missed or altered. How to find...

Page 1: Review. 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.

• Review

Page 2: Review. 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.

• 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?

Page 3: Review. 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.

• 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= ?

Page 4: Review. 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.

– Relation between Hamming distance of a code and the code’s 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 = ?

Page 5: Review. 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.

– Error correction code:• How many (r) redundant bits do we need to correct

a single error for the m information bits?– A message contains m+r bits

– total number of possible codewords: 2^(m+r)

– 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 = (m+r)2^m

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

2^m+(m+r)2^m <= 2^(r+m)

m+r+1 <= 2^r

Page 6: Review. 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.

– Error correction code:• How many (r) redundant bits do we need to correct

single error for the m information bits?m+r+1 <= 2^r

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?

Page 7: Review. 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.

– 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* (1000+10)

– Error detection: 1000*(1000+1) + (1000+1)

• Error correction code is in general NOT efficient!!!

Page 8: Review. 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.

• Error detection code:– parity code: detect single error, not good enough.

– To detect N errors, we need to have a code whose hamming distance >=N+1. 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 => k-terms polynomial

11001 ---> x^4+x^3+0*x^2+0*x^1+x^0

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

Page 9: Review. 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.

• 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 m+r bits corresponding to x^r*M(x)

• Using modulo 2 division to divide the bit stream corresponding to x^r*M(x) by the bit stream string corresponding to G(x).

• Add the remainder back to the frame x^r*M(x).– Example: Data: 1101011011, Generator: 10011

– What would be the final data frame?

Page 10: Review. 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.

• 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) = x^j

» G(x) has more than two terms, guarantee to detect single error.

– Double error: E(x) = x^j+x^k=x^k(x^(j-k)+1)

» x^k+1 (k<32768) cannot be divisiable by x^15+x^14+1.

– x+1 cannot divide any polynomial with odd number of terms (detect all odd number of errors).

– x^r+…+ can detect all less than r number of burst errors.

Page 11: Review. 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.

• Three standard polynomials:– CRC-12 = x^12+x^11+x^3+x^2+x+1– CRC-16 = x^16+x^15+x^2+1– CRC-CCITT = x^16+x^12+x^5+1

• What is the hamming distance for the code generated by CRC-16?