2 Error control
Communication channels always suffer from noise, and consequently errors are unavoidable in digital communication. For example, you saw in Section 1 how noise can lead to QAM constellation points being misinterpreted for neighbouring points. The more noise there is, the greater is the likelihood of this kind of misinterpretation. Although the likelihood of errors can be reduced, for example by transmitting a more powerful signal, it can never be eliminated. Strategies such as using more powerful signals can, in any case, lead to further problems, such as increased interference with other communication channels or additional running costs.
When errors occur, they can sometimes be detected or corrected. This is error control. An everyday example of error control is the barcode, as in Figure 2.1. Figure 2.1 is known as an EAN-13 code. These codes are widely used as identifiers for articles such as books and other consumer items. The pattern of narrow and broad lines represent the 13-digit number shown below the lines. Scanners can read the pattern of lines and work out the number represented. Sometimes, though, the pattern is misread – perhaps because the code is unclear or damaged, or the scanner was not used properly.
A misread code produces an incorrect number, which the scanning system recognises as incorrect. Usually a warning sound then indicates that re-scanning is needed. How does the system know that the number has been misread? I will look at this in more detail shortly, but in essence only certain EAN-13 codes are valid, and valid codes are greatly outnumbered by invalid codes. Although a valid code could conceivably be misread as a different but valid code (so that, for example, a box of biscuits might be mistaken for a book), it is much more likely that misreading code will produce an invalid code – just as a random assortment of letters is more likely to be nonsense than a valid word.
The error control incorporated in EAN-13 codes is known as error detection. Another type of error control is error correction. Error correction not only allows you to know if there is an error in a code, but also corrects the error and recovers the intended data. Later on, we will look at Reed-Solomon coding, which is a widely-used method for error correction.
In this audio Allan Jones talks to David Chapman, the author of Section 2, about some of these issues.