We have noted a number of times that the mobile radio environment is a hostile one. This was particularly spelled out in Chapter 2, in our discussion of fading phenomena in that environment. We shall see, in our discussion of voice-oriented second-generation (2G) cellular systems in the next chapter, Chapter 8, that extensive use is made of coding techniques to mitigate the effect of transmission vagaries such as fading on the information transmitted. By “coding” is meant the purposeful introduction of additional bits in a digital message stream to allow correction and/or detection of bits in the message stream that may have been received in error. In Chapter 10, describing packet-switched data transmission in third-generation (3G) cellular systems, as well as Chapter 12 on wireless local-area networks, we shall see that coding techniques are commonly used as well. Three such techniques have been adopted for wireless systems: block coding for error detection, with error-detection bits added to each message to be transmitted; convolutional coding for error correction; and, in high-speed 3G systems, the use of turbo coding in place of the convolutional coding procedure. (Turbo coding is a relatively recent, and particularly effective, coding technique.) Although block codes are used extensively in telecommunications systems to correct errors, as we shall see in Section 7.1 following, wireless systems in particular use block codes most frequently to detect errors not corrected by such error-correction procedures as convolutional and turbo coding.