Unit-3 Linear Block Coding
Unit-3 Linear Block Coding
Unit-3 Linear Block Coding
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
Types of
Errors
10.5
Figure 10.1 Single-bit error
10.6
Note
10.7
Figure 10.2 Burst error of length 8
10.8
Note
10.9
Detection versus Correction
10.10
Coding
Redundancy is achieved through various coding
schemes.
We can divide coding schemes into two broad
categories: block coding and convolution coding.
Our concentration will be on block coding only.
To perform coding, we need encoding and decoding
which is shown in next figure.
The receiver can detect error/ a change in the original
codeword, if it follows these two conditions:
1. The receiver has (or can find) a list of valid
codewords.
2. The original codeword has changed to an invalid one
10.11
Figure 10.3 The structure of encoder and decoder
10.12
Figure 10.4 XORing of two single bits or two words
10.13
Detection Methods:
Detection methods
VRC(Vertical Redundancy Check)
LRC(Longitudinal Redundancy Check)
CRC(Cyclical redundancy Check)
Checksum
VRC
CRC generator
uses modular-2 division.
Binary Division
in a CRC Generator
CRC Checker
Binary Division
in a
CRC Checker
One more example
Calculation of
the polynomial
code checksum.
Checksum:
Checksum is used by the higher layer protocols
And is based on the concept of redundancy(VRC, LRC,
CRC …. Hamming code)
To create the checksum the sender does the following:
– The unit is divided into K sections, each of n bits.
– Section 1 and 2 are added together using one’s
complement.
– Section 3 is added to the result of the previous step.
– Section 4 is added to the result of the previous step.
– The process repeats until section k is added to the result of
the previous step.
– The final result is complemented to make the checksum.
Checksum Example
Hamming code and Error
Redundancy for error handling
m data bits and r redundant bits
for m + r bits only one correct value of r for
a given m
one correct bit pattern requires m + r
incorrect patterns
m + r + 1 < 2r
7 bit data 4 bit redundant bits makes it
11
Hamming code calculations
R1,R2,R3 and R4 calculations
10.34
Figure 10.5 Datawords and codewords in block coding
10.35
Figure 10.6 Process of error detection in block coding
10.36
Example 10.2
10.37
Example 10.2 (continued)
10.38
Table 10.1 A code for error detection (Example 10.2)
10.39
Note
10.40
Figure 10.7 Structure of encoder and decoder in error correction
10.41
Example 10.3
10.42
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.44
Note
10.45
Example 10.4
10.46
Note
10.47
Example 10.5
10.48
Example 10.6
Solution
We first find all the Hamming distances.
10.49
Note
10.50
Example 10.7
10.51
Example 10.8
10.52
Figure 10.8 Geometric concept for finding dmin in error detection
10.53
Figure 10.9 Geometric concept for finding dmin in error correction
10.54
Note
10.55
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.56
10-3 LINEAR BLOCK CODES
10.57
Note
10.58
Example 10.10
10.60
Note
10.61
Table 10.3 Simple parity-check code C(5, 4)
10.62
Figure 10.10 Encoder and decoder for simple parity-check code
10.63
Example 10.12
10.65
Note
10.66
Note
10.67
Figure 10.11 Two-dimensional parity-check code
10.68
Figure 10.11 Two-dimensional parity-check code
10.69
Figure 10.11 Two-dimensional parity-check code
10.70
Table 10.4 Hamming code C(7, 4)
10.71
Figure 10.12 The structure of the encoder and decoder for a Hamming code
10.72
Table 10.5 Logical decision made by the correction logic analyzer
10.73
Example 10.13
10.75
Figure 10.13 Burst error correction using Hamming code
10.76
10-4 CYCLIC CODES
10.78
Figure 10.14 CRC encoder and decoder
10.79
Figure 10.15 Division in CRC encoder
10.80
Figure 10.16 Division in the CRC decoder for two cases
10.81
Figure 10.17 Hardwired design of the divisor in CRC
10.82
Figure 10.18 Simulation of division in CRC encoder
10.83
Figure 10.19 The CRC encoder design using shift registers
10.84
Figure 10.20 General design of encoder and decoder of a CRC code
10.85
Figure 10.21 A polynomial to represent a binary word
10.86
Figure 10.22 CRC division using polynomials
10.87
Note
10.88
Note
In a cyclic code,
If s(x) ≠ 0, one or more bits is corrupted.
If s(x) = 0, either
a. No bit is corrupted. or
b. Some bits are corrupted, but the
decoder failed to detect them.
10.89
Note
10.90
Note
10.91
Example 10.15
10.92
Figure 10.23 Representation of two isolated single-bit errors using polynomials
10.93
Note
10.94
Example 10.16
10.96
Note
10.97
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.
10.98
Example 10.17 (continued)
10.99
Note
10.100
Table 10.7 Standard polynomials
10.101
10-5 CHECKSUM
10.102
Example 10.18
10.103
Example 10.19
10.104
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.105
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.106
Example 10.22
10.108
Figure 10.24 Example 10.22
10.109
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.110
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.111