As the block length becomes larger, more error correction will be needed. Do
codes exist that can correct all errors? Perhaps the crowning achievement of Claude Shannon's creation of information theory answers this question.
His result comes in two complementary forms: the Noisy Channel Coding Theorem and its converse.
Let EE denote
the efficiency of an error-correcting code: the ratio of the number of data bits to the total
number of bits used to represent them. If the efficiency is less than the
capacity of the
digital channel, an error-correcting code exists that has the property that as the length of
the code increases, the probability of an error occurring in the decoded block approaches
zero.
∀E,E<C:limN→∞Prblock error=0
E
EC
N
N
Prblock error
0
(1)
If
E>C
EC
, the probability of an error in a decoded block must approach one regardless of the code that might
be chosen.
limN→∞Prblock error=1
N
N
Prblock error
1
(2)
These results mean that it is possible to transmit digital information over a noisy channel
(one that introduces errors) and receive the information without error
if the code is
sufficiently
inefficient compared to the channel's characteristics. Generally, a channel's capacity changes with the signal-to-noise ratio: As one increases or decreases so does the other. The capacity measures the overall error characteristics of a channel—the smaller the capacity the more frequently errors occur—and an overly efficient error-correcting
code will not build in enough error correction capability to counteract channel
errors.
This result astounded communication engineers when Shannon published it in 1948.
Analog communication always yields a noisy version of the transmitted signal; in digital
communication, error correction can be powerful enough to correct all errors as the block
length increases. The key for this capability to exist is that the code's efficiency be less
than the channel's capacity. For a binary symmetric channel, the capacity is given by
C=1+pelog2pe+1-pelog21-pe
bits/transmission
C
1
pe
2
pe
1
pe
2
1
pe
bits/transmission(3)
Figure 1
shows how capacity varies with error probability. For example, our
74
7
4
Hamming code has an efficiency of
.57.57,
and codes having the same efficiency but longer block sizes can be used
on additive noise channels where the signal-to-noise ratio exceeds
0dB0dB.