7. 7
Coding
Process of adding redundancy for error detection
or correction
Two types:
Block codes
Divides the data to be sent into a set of blocks
Extra information attached to each block
Memoryless
Convolutional codes
Treats data as a series of bits, and computes a code over a
continuous series
The code computed for a set of bits depends on the current
and previous input
8. 8
XOR Operation
Main operation for computing error
detection/correction codes
Similar to modulo-2 addition
9. 9
Block Coding
Message is divided into k-bit blocks
Known as datawords
r redundant bits are added
Blocks become n=k+r bits
Known as codewords
12. 12
Notes
An error-detecting code can detect
only the types of errors for which it is
designed
Other types of errors may remain undetected.
There is no way to detect every possible
error
15. 15
Hamming Distance
d(01, 00) = ?
d(11, 00) = ?
d(010, 100) = ?
d(0011, 1000) = ?
How many 8-bit words are n bits away
from 10000111?
Hamming Distance between two words is the
number of differences between corresponding bits.
16. 16
Minimum Hamming Distance
Find the minimum Hamming Distance of
the following codebook
The minimum Hamming distance is the
smallest Hamming distance between
all possible pairs in a set of words.
00000
01011
10101
11110
17. 17
Detection Capability of Code
To guarantee the detection of up to s-bit
errors, the minimum Hamming distance in
a block code must be
dmin = s + 1
18. 18
Correction Capability of Code
To guarantee the correction of up to t-bit
errors, the minimum Hamming distance in
a block code must be
dmin = 2t + 1
19. 19
Example: Hamming Distance
A code scheme has a Hamming distance
dmin = 4. What is the error detection and
correction capability of this scheme?
21. 21
Parity Check
Most common, least complex
Single bit is added to a block
Two schemes:
Even parity – Maintain even number of 1s
E.g., 1011 10111
Odd parity – Maintain odd number of 1s
E.g., 1011 10110
22. 22
Example: Parity Check
Suppose the sender wants to send the word world. In
ASCII the five characters are coded (with even parity) as
1110111 1101111 1110010 1101100 1100100
The following shows the actual bits sent
11101110 11011110 11100100 11011000 11001001
23. 23
Example: Parity Check
Receiver receives this sequence of words:
11111110 11011110 11101100 11011000 11001001
Which blocks are accepted? Which are rejected?
35. 35
Strength of CRC
Can be analyzed using polynomial
M(x) – Original message
G(x) – Generator polynomial of degree n
R(x) – Generated CRC
Transmitted message is
M(x)xn – R(x)
which is divisible by G(x)
M(x)xn = Q(x)G(x) + R(x)
36. 36
Strength of CRC
Received message is
M(x)xn – R(x) + E(x)
where E(x) represents bit errors
Receiver does not detect any error when
E(x) is divisible by G(x), which means
either:
E(x) 0 No error
E(x) 0 Undetectable error
37. 37
Strength of CRC
If G(x) contains at least two terms, then
all single-bit errors can be detected
If G(x) cannot divide xt + 1 (0 t < n), then
all isolated double errors can be detected
If G(x) contains a factor of (x+1), all odd-
numbered errors can be detected
38. 38
Properties of Good Polynomial
It should have at least two terms
The coefficient of the term x0 should be 1
It should not divide xt + 1, for t between 2
and n − 1
It should have the factor x + 1
39. 39
CRC's Strength Summary
All burst errors with L ≤ n will be detected
All burst errors with L = n + 1 will be
detected with probability 1 – (1/2)n–1
All burst errors with L > n + 1 will be
detected with probability 1 – (1/2)n
40. 40
Example: CRC Generators
Which of the following polynomials
guarantees that a single-bit error can be
detected
(a) x+1
(b) x3
(c) 1
43. 43
Error Correction
Two methods
Retransmission after detecting error
Forward error correction (FEC)
44. 44
Forward Error Correction
Consider only a single-bit error in k bits of data
k possibilities for an error
One possibility for no error
#possibilities = k + 1
Add r redundant bits to distinguish these
possibilities; we need
2r k+1
But the r bits are also transmitted along with
data; hence
2r k+r+1
45. 45
Number of Redundant Bits
Number of
data bits
k
Number of
redundancy bits
r
Total
bits
k + r
1 2 3
2 3 5
3 3 6
4 3 7
5 4 9
6 4 10
7 4 11
46. 46
Hamming Code
Simple, powerful FEC
Widely used in computer memory
Known as ECC memory
error-correcting bits
50. 50
Strength of Hamming Code
Minimum Hamming Distance is 3
It can correct at most 1 bit error
It can detect at most 2 bit error
But… not both!!! (Why?)
SECDED – Extended Hamming code with
one extra parity bit
Achieves minimum Hamming distance of 4
Can distinguish between one bit and two bit
errors