Library

4.2.3 Simple Coding Example

The basic principles of coding can be illustrated using a simple repetition code, which demonstrates how redundancy can be used to reduce the probability of transmission errors. This example follows the standard 3-bit repetition model commonly used to illustrate basic error-control principles.

Consider a binary data stream in which each bit is repeated three times before transmission. That is, a logical ‘0’ is transmitted as ‘000’, and a logical ‘1’ as ‘111’. At the receiver, each group of three received bits is decoded by majority decision, as shown conceptually in Figure 4.2.

Figure 4.2. The number of possible errors in the output for the transmitted sequence ‘000’.

For example, if the probability of a single-bit error in the channel is p=10–2, the receiver can still recover the original bit correctly whenever only one of the three bits is received in error (e.g., sequences 001, 010, or 100 for a transmitted 000).

An error occurs only when two or more bits are corrupted. The total probability of an incorrect decision, Pe, is:

Pe=P(2 errors)+P(3 errors)=3p2(1p)+p3    =3(102)2(1102)+(102)3    =2.98×104

Thus, the use of a simple threefold repetition code reduces the probability of error from 10−2 to approximately 3×10−4, albeit at the cost of tripling the bandwidth or data rate.

Theoretically, as illustrated in Figure 4.3 any desired level of reliability could be achieved by repeating each symbol multiple times. However, for a fixed data rate, the effective information rate would decrease in direct proportion to the repetition factor. Conversely, maintaining the same information rate would require a proportional increase in the transmitted data rate.

Figure 4.3. Error probability achieved by a repetition code.

Of course, repeating each bit an infinite number of times is not practical, since it would require either infinite time or infinite bandwidth. The lesson of this brute-force example, however, is clear: the error rate can be reduced to an arbitrarily low level, provided that we are willing to pay the price in transmission time or bandwidth.

Fortunately, far more efficient coding schemes exist than simple bit repetition. Nevertheless, several useful general points about error-control codes can be noted, even from this simple case:

Finally, note that comparing the received sequence against every valid codeword to find the closest match is computationally impractical for real-world codes. Many practical codes contain on the order of 21000 (10300) to 22000 (10600) possible codewords. Fortunately, these codes are highly structured, and their internal mathematical properties can be exploited to locate the nearest valid codeword efficiently during decoding.