CH 10
CH 10
CH 10
Error Detection
and Correction
10.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Note
10.2
10-1 INTRODUCTION
10.3
Note
10.4
Figure 10.1 Single-bit error
10.5
Note
10.6
Figure 10.2 Burst error of length 8
10.7
Note
10.8
Figure 10.3 The structure of encoder and decoder
10.9
Note
10.10
Figure 10.4 XORing of two single bits or two words
10.11
10-2 BLOCK CODING
10.12
Figure 10.6 Process of error detection in block coding
10.13
Example 10.2
10.14
Note
10.15
Figure 10.7 Structure of encoder and decoder in error correction
10.16
Note
10.17
Example 10.4
10.18
Note
10.19
Example 10.5
10.20
Note
Why?
More than s-bit error is possible to detect,
but not guaranteed.
10.21
Figure 10.8 Geometric concept for finding dmin in error detection
10.22
Figure 10.9 Geometric concept for finding dmin in error correction
10.23
Note
10.24
Example 10.9
Solution
This code guarantees the detection of up to three errors
(s = 3), but it can correct up to one error. In other words,
if this code is used for error correction, part of its capability is
wasted. Error correction codes should have an odd minimum
distance (3, 5, 7, . . . ).
10.25
10-3 LINEAR BLOCK CODES
10.26
Note
10.27
Example 10.10
10.28
Example 10.11
Note
Why?
In our first code (Table 10.1), the numbers of 1s in the
nonzero codewords are 2, 2, and 2. So the minimum
Hamming distance is dmin = 2.
10.29
Note
10.30
Table 10.3 Simple parity-check code C(5, 4)
10.31
Figure 10.10 Encoder and decoder for simple parity-check code
10.32
Note
10.33
Figure 10.11 Two-dimensional parity-check code
10.34
Figure 10.11 Two-dimensional parity-check code
10.35
Figure 10.11 Two-dimensional parity-check code
10.37
Figure 10.12 The structure of the encoder and decoder for a Hamming code
10.38
Hamming Code
Parity checks are created as follow (using modulo-2)
r0 = a2 + a1 + a0
r1 = a3 + a2 + a1
r2 = a1 + a0 + a3
10.39
Hamming Code
The checker in the decoder creates a 3-bit syndrome
(s2s1s0).
In which each bit is the parity check for 4 out of the 7
bits in the received codeword:
s0 = b2 + b1 + b0 + q0
s1 = b3 + b2 + b1 + q1
s2 = b1 + b0 + b3 + q2
The equations used by the checker are the same as
those used by the generator with the parity-check bits
added to the right-hand side of the equation.
10.40
Table 10.5 Logical decision made by the correction logic analyzer
10.41
Figure 10.13 Burst error correction using Hamming code
10.44
Figure 10.14 CRC encoder and decoder
10.45
Figure 10.15 Division in CRC encoder
10.46
Figure 10.16 Division in the CRC decoder for two cases
10.47
Data: 1000 Divisor: 1011
What is the codeword?
10.48
Data: 1010 Divisor: 10111
What is the codeword?
10.49
Figure 10.19 The CRC encoder design using shift registers
Divisor: 1011
Dataword: 1001
10.50
Figure 10.20 General design of encoder and decoder of a CRC code
10.51
Note
10.52
Figure 10.21 A polynomial to represent a binary word
10.53
Table 10.7 Standard polynomials
10.54
10-5 CHECKSUM
10.55
Example 10.18
10.56
Example 10.19
10.57
Example 10.20
Solution
The number 21 in binary is 10101 (it needs five bits). We
can wrap the leftmost bit and add it to the four rightmost
bits. We have (0101 + 1) = 0110 or 6.
10.58
Example 10.21
Solution
In one’s complement arithmetic, the negative or
complement of a number is found by inverting all bits.
Positive 6 is 0110; negative 6 is 1001. If we consider only
unsigned numbers, this is 9. In other words, the
complement of 6 is 9.
10.59
Figure 10.24 Example 10.22
1 1
1 0
10.60
Internet Checksum
Note
Sender site:
1. The message is divided into 16-bit words.
2. The value of the checksum word is set to 0.
3. All words including the checksum are
added using one’s complement addition.
4. The sum is complemented and becomes the
checksum.
5. The checksum is sent with the data.
10.61
Internet Checksum
Note
Receiver site:
1. The message (including checksum) is
divided into 16-bit words.
2. All words are added using one’s
complement addition.
3. The sum is complemented and becomes the
new checksum.
4. If the value of checksum is 0, the message
is accepted; otherwise, it is rejected.
10.62
Internet Checksum Example
Note
When adding numbers, a carryout from the
most significant bit needs to be added to
the result
Example: add two 16-bit integers
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
wraparound 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
sum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1