Error Detection (Data Communication)
Error Detection (Data Communication)
Error Detection
and
Correction
10.1
10-1 INTRODUCTION
10.2
Figure 10.1 Single-bit error
10.3
Figure 10.2 Burst error of length 8
10.5
Figure 10.3 The structure of encoder and decoder
10.7
Figure 10.4 XORing of two single bits or two words
10.8
10-2 BLOCK CODING
10.9
Figure 10.5 Datawords and codewords in block coding
10.10
Example 10.1
10.11
Figure 10.6 Process of error detection in block coding
10.12
Table 10.1 A code for error detection (Example 10.2)
10.13
Figure 10.7 Structure of encoder and decoder in error correction
10.14
Table 10.2 A code for error correction (Example 10.3)
10.15
Hamming Distance
The Hamming distance between two
words is the number of differences
between corresponding bits.
The minimum Hamming distance is the
smallest Hamming distance between
all possible pairs in a set of words.
10.16
We can count the number of 1s in the Xoring of two
words
10.17
Example 10.5
Solution
We first find all Hamming distances.
Solution
We first find all the Hamming distances.
The
10.19
d min in this case is 3.
Minimum Distance for
Error Detection
To guarantee the detection of up to s
errors in all cases, the minimum Hamming
distance in a block code must be dmin = s
+ 1.
Why?
10.20
Example 10.7
10.22
Figure 10.8 Geometric concept for finding dmin in error detection
10.23
Figure 10.9 Geometric concept for finding dmin in error correction
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 need to have an odd
minimum distance (3, 5, 7, . . . ).
10.25
10-3 LINEAR BLOCK CODES
10.26
Example 10.10
10.28
Linear Block Codes
Simple parity-check code
Hamming codes
10.29
Table 10.3 Simple parity-check code C(5, 4)
10.31
Example 10.12
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.36
Table 10.4 Hamming code C(7, 4)
10.38
Table 10.5 Logical decision made by the correction logic analyzer
r0=a2+a1+a0 S0=b2+b1+b0+q0
r1=a3+a2+a1 S1=b3+b2+b1+q1
r2=a1+a0+a3 S2=b1+b0+b3+q2
10.39
Example 10.13
10.41
Table 10.6 A CRC code with C(7, 4)
10.42
Figure 10.14 CRC encoder and decoder
10.43
Figure 10.21 A polynomial to represent a binary word
10.44
10-5 CHECKSUM
10.45
Example 10.18
10.46
Example 10.19
10.47
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.48
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. Another way to find the
complement of a number in one’s complement arithmetic
is to subtract the number from 2n − 1 (16 − 1 in this case).
10.49
Figure 10.24 Example 10.22
1 1 1 1
0 0 0 0
10.50
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.51
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.52
Example 10.23
10.54