![]() |
|||||||
| GSM Speech and Channel Coding |
| In order to send our voice across a radio network, we have to turn our voice into a digital signal. GSM uses a method called RPE-LPC (Regular Pulse Excited - Linear Predictive Coder with a Long Term Predictor Loop) to turn our analog voice into a compressed digital equivalent. Once we have a digital signal we have to add some sort of redundancy so that we can recover from errors when we trams our digital voice over the radio channel. GSM uses a convolution codes to encode digital speech representations. |
| Speech Encoding | ||
| RPE-LPC | ||
| In modern land-line telephone systems, digital coding is used. The electrical variations induced into the microphone are sampled and each sample is then converted into a digital code. The voice waveform is then sampled at a rate of 8 kHz. Each sample is then converted into an 8 bit binary number representing 256 distinct values. Since we sample 8000 times per second and each sample is 8 binary bits, we have a bitrate of 8kHz X 8 bits = 64kbps. This bitrate is unrealistic to transmit across a radio network since interference will likely ruin the transmitted waveform. GSM speech encoding works to compress the speech waveform into a sample that results in a lower bitrate using RPE-LPC. | ||
| A [1] LPC encoder fits a given speech signal against a set of vocal characteristics. The best-fit parameters are transmitted and used by the decoder to generate synthetic speech that is similar to the original. Information from previous samples is used to predict the current sample. The coefficients of the linear combination of the previous samples, plus an encoded form of the residual, the difference between the predicted and actual sample, represent the signal. Speech is divided into 20 millisecond samples, each of which is encoded as 260 bits, giving a total bit rate of 13 kbps. This way GSM can transmit 4 times (floor[64kbps/13kbps]) as many phone calls as a regular land-line telephone. See Figure 1 for a representation of RPE-LPC | ||
![]() |
||
|
Figure 1- A block diagram detailing how an analog
voice is digitized and encoded to produce a digital voice signal.
|
||
| Channel Encoding | |
| Once we have a compressed digital signal, we must add a number of bits for error control to protect the signal from interference. These bits are called redundancy bits. The GSM system uses convolutional encoding to achieve this protection. The exact algorithms used differ for speech and for different data rates. The method used for speech blocks will be described below. | |
| Bit Composition of the Speech Signal | |
| Recall that the RPE-LPC Encoder produces a block of 260 bits every 20 ms. It was found (though testing) that some of the 260 bits were more important when compared to others. Below is the composition of these 260 bits. | |
|
Class Ia - 50 bits (most sensitive to bit errors)
|
|
| Class Ib - 132 bits (moderately sensitive to bit errors) | |
| Class II - 78 bits (least sensitive to error) | |
|
As a result of some bits being more important than others,
GSM adds redundancy bits to each of the three Classes differently. The
Class IA bits are encoded in a cyclic encoder. The Class Ib bits (together
with the encoded Class IA bits) are encoded using convolutional encoding.
Finally, the Class II bits are merely added to the result of the convolutional
encoder. Below is the operation of each encoder as related to each Class
of bits.
|
|
|
Cyclic Encoding
|
|
|
The Class IA bits are encoded using a cyclic encoder
to add three bits of redundancy. The resulting Class IA bits are of
the form:
where b0,b1,b2 are the three redundancy bits added by
the cyclic encoder and m0,...,m49 are the original Class IA bits. The
cyclic encoder produces 50+3=53 bits.
|
|
| Cyclic codes are linear codes (the sum of any two codes is also a codeword), as we have seen in class. In addition to being linear, a cyclic shift, or rotate, of a codeward produces another codeword Since the code used in GSM is a (53,50) code the generator polynomial used in the encoding is of degree 53-50 = 3. The specific polynomial used in GSM is x^3 + x + 1 [3] . The following block diagram can produce the codeword. Once the data has been completely shifted through the system, the contents of Reg0 through Reg2 will contain the three additional bits. | |
![]() |
|
|
GSM chose to use cyclic encoding due to the ability
to quickly determine if errors are present. The three redundancy bits
produced by the cyclic encoder enable the receiver to quickly determine
if an error was produced. If an error was produced the current 53 bit
frame is discarded and replaced by the last known "good" frame.
|
|
| Convolutional Encoding | |
| The resulting 53 bits of the cyclic encoder are added to the 132 Class Ib bits (plus a tail of 4 extra bits so that the encoder may be flushed) and encoded using the convolutional encoder. The convolutional encoder adds one redundancy bit for every bit that it sees based on the last four bits in the sequence. Below is a block diagram detailing the convolutional encoder. | |
![]() |
|
|
Figure 2 - A block diagram of a convolutional encoder.
|
|
| The convolutional encoder retains a memory of the last four bits in the sequence (a single bit is retained in each flip-flop). These four bits are added together using a modulo-2 adder. The resulting bit is sent to the output via path 1. The encoder sends a second bit to the output via path 2. As a result, the convolutional encoder encodes one input bit into two output bits. | |
| In GSM there are 4 flip-flops, and the the convolution performed is of D^4 +D^3 + 1 and D^4 +D^3 + D + 1 [3]. | |
|
GSM chose to employ a convolutional encoder due to its
ability to efficiently correct errors. In order to correct errors, GSM
employs the use of Trellis Diagrams.
|
|
|
Once the convolutional encoder has encoded the bits,
a new bit sequence of 378 ( 2(53+132+4=189)=378) bits is produced. These
378 bits are directly added to the 78 Class II bits (directly added
since these bits are least sensetive to error). As a result, the channel
encoded bit sequence is now 378+78=456 bits long. Therefore, each 20
ms burst produces 456 bits at a bit rate of 22.8 kbps.
|
|
|
To further protect against bit errors, the 456 bit sequence
is then diagonally interleaved. See the interleaving
section
|
|
| Bibliography | ||
| [1] D. Pan, "Digital Audio Compression," Digital Technical Journal, Vol. 5 No. 2, Spring 1993, pp. 28-40, ftp://ftp.digital.com/pub/Digital/info/DTJ/mm-05-audio-compress.ps. | ||
| [2] S. Haykin, Communication Systems, 4th Edition, New York: John Wiley & Sons, Inc., 2001, pp. 641-656. | ||
| [3] S. Grech ,"Channel Coding Standards in Mobile Communications," [Online document], September 1999, Available HTTP: http://www.tml.hut.fi/Studies/Tik-110.300/1999/Wireless/channel_1.html | ||