Digital Coding Techniques

Hey!  This article has a simple purpose, to teach you basic functionality and terminology related to modern UMTS-CDMA digital coding techniques.  One swift read of this information-packed kick in the face will leave you trembling at the knees with curiosity for more.  Well, maybe not.  But the first step in the UMTS-CDMA system applies error correction techniques so that any errors at the receiver can be corrected.  Various techniques can be employed to prevent errors at the transmitter.  You have probably studied one or more of these in your days if your an electrical or computer engineering student, professor, or professional.  One of these techniques is the use of Forward Error Codes, which are applied to the data before it is transmitted via the physical layer.

It is known that wireless is an inherently error-prone medium in which to operate our delicate signals.  Therefore, many error correction techniques are employed.  In the UMTS-CDMA systems, due to the large bandwidth available, a variety of coding techniques are employed.  The following three error correcting methods come to mind:

Convolutional Encoding

Convolutional encoding provides the ability to correct errors at the receiver.  So, the errors are removed from the signal by the receiver via convolutional encoding.  As a result, lower transmission power is required, which can result in more errors.  Some amount of errors can be tolerated since they can be recovered through convolutional encoding.  The convolutional encoder encodes input data bits int output symbols.  The data bits are entered into the first register at each clock cycle and the data bit in the last register is dumped out.  Data bits are tapped at various positions and XORed to provide encoded bits.  It is typically used for voice and low data rate applications.  Here are the main points to keep in mind:

  • Provides the ability to detect and correct errors at the receiver.
  • 10^(-3)  BER, typically used for voice and low data rates.
  • Uses history of bits to recover from errors.

Turbo Encoding

Turbo codes are a new class of error correction codes used in digital comm systems.  Turbo codes have been shown to perform better for high-rate data services (which is what we crave for) with stringent error rate requirements on the order of 10-6 Bit Error Rate (BER).  The turbo encoder consists of two constituent convolutional encoders.  Both constituent encoders use and code the same data.  The first one is fed data in the same order as the input data.  The second encoder uses a permuted form of the input data and the permuting is accomplished by the use of an interleaver, which will be discussed in detail in the following post(s).  Again, main points:

  • 10^(-6)  BER, suitable for high data rates.
  • Uses convolutional encoders in parallel to increase reliability.
  • Increased delays but better error correction capabilities.

Block Interleaving

Block interleaving protects data against fading and prevents bursty errors (so imagine a sudden burst in the amplitude of a received signal, think that might saturate you and ruin your signal? You bet.)  This is accomplished by providing time diversity, where the bits are separated in time before transmission over the air.  This is typically used with FEC codes, since FEC codes are not well suited to handle these bursty errors.

  • Method to shuffle bits to prevent errors during deep fade.
  • Provides time diversity.

All of these techniques will be described in detail, separately, in the following three articles.