Professional Documents
Culture Documents
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
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
Note
10.11
Figure 10.4 XORing of two single bits or two words
10.12
10--2 BLOCK CODING
10
In block coding,
coding we divide our message into blocks,
blocks
each of k bits, called datawords
datawords.. We add r redundant
bits to each block to make the length n = k + r. The
resulting n-bit blocks are called codewords
codewords..
10.13
Figure 10.5 Datawords and codewords in block coding
10.14
Example 10.1
10.15
Figure 10.6 Process of error detection in block coding
10.16
Example 10.2
Assume the
A h sender
d encodesd the
h dataword
d d 01 as 011 andd
sends it to the receiver. Consider the following cases:
10.17
Example 10.2 (continued)
10.18
Table 10.1 A code for error detection (Example 10.2)
10.19
Note
10.20
Figure 10.7 Structure of encoder and decoder in error correction
10.21
Example 10.3
10.22
Example 10.3 (continued)
1. Comparing the received codeword with the first
codeword in the table (01001 versus 00000), the
receiver decides that the first codeword is not the one
that was sent because there are two different bits.
10.24
Note
10.25
Example 10.4
1. The
h Hamming
i di
distance d(
d(000, 011)) is
i 2 because
b
2 The
2. Th Hamming
H i distance
di d(10101 11110) is
d(10101, i 3 because
b
10.26
Note
10.27
Example 10.5
10.28
Example 10.6
Solution
We first find all the Hamming distances.
10.29
Note
10.30
Example 10.7
10.31
Example 10.8
10.32
Figure 10.8 Geometric concept for finding dmin in error detection
10.33
Figure 10.9 Geometric concept for finding dmin in error correction
10.34
Note
10.35
Example 10.9
Solution
This code guarantees the detection of up to three errors
(s = 3),
3) but it can correct up to one error.
error In other words,
words
if this code is used for error correction, part of its capability
is wasted.
wasted Error correction codes need to have an odd
minimum distance (3, 5, 7, . . . ).
10.36
10--3 LINEAR BLOCK CODES
10
10.37
Note
10.38
Example 10.10
1. The
h scheme
h i Table
in bl 10.1 is i a linear
li bl k code
block d
because the result of XORing any codeword with any
other
h codeword
d d is
i a valid
lid codeword.
d d For example,
l the
h
XORing of the second and third codewords creates the
f
fourth
h one.
2 Th
2. The scheme
h i Table
in T bl 10.2
10 2 is
i also
l a linear
li bl k code.
block d
We can create all four codewords by XORing two
other
h codewords.
d d
10.39
Example 10.11
10.40
Note
10.41
Table 10.3 Simple parity-check code C(5, 4)
10.42
Figure 10.10 Encoder and decoder for simple parity-check code
10.43
Example 10.12
10.45
Note
10.46
Note
10.47
Figure 10.11 Two-dimensional parity-check code
10.48
Figure 10.11 Two-dimensional parity-check code
10.49
Figure 10.11 Two-dimensional parity-check code
10.50
Table 10.4 Hamming code C(7, 4)
10.51
Figure 10.12 The structure of the encoder and decoder for a Hamming code
10.52
Table 10.5 Logical decision made by the correction logic analyzer
10.53
Example 10.13
10.55
Figure 10.13 Burst error correction using Hamming code
10.56
10--4 CYCLIC CODES
10
10.58
Figure 10.14 CRC encoder and decoder
10.59
Figure 10.15 Division in CRC encoder
10.60
Figure 10.16 Division in the CRC decoder for two cases
10.61
Figure 10.17 Hardwired design of the divisor in CRC
10.62
Figure 10.18 Simulation of division in CRC encoder
10.63
Figure 10.19 The CRC encoder design using shift registers
10.64
Figure
g 10.20 General design of encoder and decoder of a CRC code
10.65
Figure 10.21 A polynomial to represent a binary word
10.66
Figure 10.22 CRC division using polynomials
10.67
Note
10.68
Note
In a cyclic code,
If s(x) ≠ 0, one or more bits is corrupted.
If s(x) = 0,
0 either
a. No
N bit is
i corrupted.
t d or
b. Some bits are corrupted, but the
decoder failed to detect them.
10.69
Note
10.70
Note
10.71
Example 10.15
10.72
Figure 10.23 Representation of two isolated single-bit errors using polynomials
10.73
Note
If a generator
t cannott divide
di id xt + 1
(t between 0 and n – 1),
then all isolated double errors
can be detected
ca detected.
10.74
Example 10.16
10.76
Note
10.77
Example 10.17
Solution
a. This generator can detect all burst errors with a length
less than or equal to 6 bits; 3 out of 100 burst errors
with length 7 will slip by; 16 out of 1000 burst errors of
length 8 or more will slip by.
by
10.78
Example 10.17 (continued)
10.79
Note
10.80
Table 10.7 Standard polynomials
10.81
10--5 CHECKSUM
10
Th last
The l t error detection
d t ti method
th d we discuss
di here
h i
is
called the checksum
checksum.. The checksum is used in the
Internet
I t t by
b severall protocols
t l although
lth h nott att the
th data
d t
link layer
layer.. However, we briefly discuss it here to
complete
l t our discussion
di i on error checking
h ki
10.82
Example 10.18
10.83
Example 10.19
10.84
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.85
Example 10.21
Solution
In one’s complement arithmetic, the negative or
complement of a number is found by inverting all bits. bits
Positive 6 is 0110; negative 6 is 1001. If we consider only
unsigned numbers,
numbers this is 9. 9 In other words,
words the
complement of 6 is 9. Another way to find the
complement of a number in one one’ss complement arithmetic
is to subtract the number from 2n − 1 (16 − 1 in this case).
10.86
Example 10.22
10.88
Figure 10.24 Example 10.22
10.89
Note
Sender site:
1. The
1 Th message is i divided
di id d into
i t 16-bit
16 bit words.
d
2. The value of the checksum word is set to 0.
3 All words
3. d including
i l di theth checksum
h k are
added using one’s complement addition.
4 The
4. Th sum isi complemented
l t d and d becomes
b the
th
checksum.
5 The checksum
5. checks m is sent with
ith the data.
data
10.90
Note
Receiver site:
1 The
1. Th message (including
(i l di checksum)
h k ) is
i
divided into 16-bit words.
2 All words
2. d are added
dd d using
i one’s ’
complement addition.
3 The
3. Th sum is i complemented
l t d and d becomes
b the
th
new checksum.
4 If the
4. th value
l off checksum
h k is
i 0,
0 the
th message
is accepted; otherwise, it is rejected.
10.91
Example 10.23
10.93