Lesson 3.1 Error Detection Correction
Lesson 3.1 Error Detection Correction
Lesson 3.1 Error Detection Correction
10.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Outline
10.4
3-1 INTRODUCTION
10.5
Note
10.6
Figure 10.1 Single-bit error
10.7
Note
10.8
Figure 10.2 Burst error of length 8
10.9
Note
10.10
Figure 10.3 The structure of encoder and decoder
10.11
Detection Versus Correction
10.12
Coding
10.13
Note
10.14
Figure 10.4 XORing of two single bits or two words (Modulo-2)
10.15
3-2 BLOCK CODING
10.16
Figure 10.5 Datawords and codewords in block coding
10.17
Example 10.1
10.18
Error Detection
◼ How can errors be detected by using block coding? If
the following two conditions are met, the receiver
can detect a change in the original codeword.
1. The receiver has a list of valid codewords.
2. The original codeword has changed to an invalid one
10.19
Figure 10.6 Process of error detection in block coding
10.20
Example 10.2
10.21
Note
10.22
Figure 10.7 Structure of encoder and decoder in error correction
10.23
Example 10.3
10.24
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.26
Note
10.
Example 10.4
10.
Note
10.
Example 10.5
10.
Example 10.6
Solution
We first find all the Hamming distances.
10.
Note
10.
Geometric concept explaining dmin in error detection
We can look at this criteria geometrically. Let us assume that the sent
codeword x is at the center of a circle with radius s. All received
codewords that are created by 0 to s errors are points inside the circle or
on the perimeter of the circle. All other valid codewords must be outside
the circle. This means that dmin must be an integer greater than s or dmin
= s + 1.
10.
Example 10.7
10.
Note
10.
Geometric concept for finding dmin in error correction
10.
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.
10-3 LINEAR BLOCK CODES
10.
Note
10.
Note
10.
Table 10.3 Simple parity-check code C(5, 4)
10.
Figure 10.10 Encoder and decoder for simple parity-check code
10.
Example 10.12
10.
Note
10.
Figure 10.11 Two-dimensional parity-check code
10.
Figure 10.11 Two-dimensional parity-check code
10.
Figure 10.11 Two-dimensional parity-check code
10.
Note
10.
Figure 10.12 The structure of the encoder and decoder for a Hamming code
10.
Figure 10.11 Two-dimensional parity-check code
Create r: Calculate s:
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.
Example 10.13
10.
Example 10.14
10.
Burst Errors
◼ Burst errors are very common, in particular in
wireless environments where a fade will
affect a group of bits in transit. The length of
the burst is dependent on the duration of the
fade.
◼ One way to counter burst errors, is to break
up a transmission into shorter words and
create a block (one word per row), then have
a parity check per word.
◼ The words are then sent column by column.
When a burst error occurs, it will affect 1 bit
in several words as the transmission is read
back into the block format and each word is
checked individually.
Figure 10.13 Burst error correction using Hamming code
10.
10-4 CYCLIC CODES
10.
Table 10.6 A CRC code with C(7, 4)
10.
Figure 10.14 CRC encoder and decoder
10.
Figure 10.15 Division in CRC encoder
10.
Figure 10.16 Division in the CRC decoder for two cases
10.
10-5 CHECKSUM
10.
Example 10.18
10.
Example 10.19
10.
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.
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.
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.
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.