Channel Coding Standards in Mobile Communications

05-Sept-1999

Sandro Grech
Department of Electrical and Communications Engineering
Helsinki University of Technology
sandro@cc.hut.fi


Abstract

Channel coding aims at improving transmission quality when the signal encounters disturbances (noise, interference, multipath propagation, Doppler shift, etc.), at the expense of an increased number of bits. This report focuses on the GSM standard, which uses convolutional encoding and block interleaving to achieve this protection. A brief outline of the ciphering of the mobile communications channel is also given. Finally a quick shot at the current research areas is given.  


Contents

Introduction

1 Convolutional Codes and Block Codes

2 Fire Codes

3 Parity Codes

4 GSM Channel Coding Standards

5 Interleaving

6 Ciphering

7 Current Research

References

Further Information



 

Introduction

Coding consists of adding to the source data some redundant information calculated from this source information. Decoding makes use of this redundancy to detect the presence of errors or estimate the most probable emitted bits given the received bits. Errors are detected when the transmitted redundancy is different from the one calculated with the received data.

Depending on the transmission mode, radio path transmission uses different codes. Moreover, several codes are "concatenated" in certain cases, i.e., redundancy is added by applying a given code, then more redundancy is added by applying another code.

The codes used in GSM are:

  • Block Convolutional Codes: these codes are only used for correction purposes. They achieve tremendous efficiency when they are combined with likelihood estimation such as that coming from the demodulator,
  • Fire Code: this code is dedicated to the detection and correction of 'bursty' errors, i.e., errors that occur in a short time interval. It is used in concatenation after a block convolutional code, for which residual errors often appear in short time intervals.
  • simple Parity Codes: used for error detection.


Figure 1 - 1 audio block consisting of 260 bits (20ms)

1 Convolutional Codes and Block Codes

A convolutional code consists in transmitting the results of convolutions of the source sequence using c different convolutional formulas. As an example, for c = 2, two result sequences would be transmitted. The first one would be obtained by applying the 'exclusive or' operation to respectively:
  • the source sequence, the source sequence delayed by one bit period, and the source sequence delayed by 3 bit periods,
  • the source sequence, the source sequence delayed by two bit periods, and the source sequence delayed by 3 bit periods.
The transmission bit rate after coding is twice the original information rate and is then redundant. Each information bit is 'sent' 6 times, each time as a part of a sum with two other information bits. This multiplicity of sending will be used by the receiver to check the received flow, and possibly recover the original information flow even if transmission errors occurred.

The condensed form used to describe these codes consists in using polynomials, which in the above example are  and , where ' + ' denotes the exclusive-or operator and D represents a delay unit.

This method, as described here, has two drawbacks: it is adapted to infinite sequences, and it results in an efficiency ratio which is limited to fractions of the form 1/c.

Two modifications of this basic schemes are used in GSM. First, the source sequence consists of finite blocks of p bits. They can be coded as described above, but with the addition of a few known bits at both ends of the block, called tail bits. Second, an efficiency of the form p/q was needed in one case, and is obtained by puncturing the code, i.e., by keeping only q bits among pn, through a pre-determined rule.

For instance, if we want to apply the code described above to a block of b = 12 bits, we could add 3 bits set to '0' at the start and at the end of the sequence and thus get bc = 30 bits. In order to get a convolutional efficiency of e.g., 2/3, alternate bits of the second sequence could be omitted. The coded result uses 23 bits. This is illustrated in the table below.
 
 

Source Block       1 0 0 1 0 0 1 1 0 1 0 1          
Addition of Tail Bits 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0    
Delay = 1 bit period 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0    
Delay = 2 bit Periods   0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0  
Delay = 3 bit periods     0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0
1st conv. sequence (15 bits)     1 1 0 0 1 0 0 0 1 0 0 1 0 0 1      
2nd conv. sequence (15 bits)     1 0 1 0 0 1 0 1 1 1 1 0 1 1 1      
punctured 2nd sequence (8 bits)     1   1   0   0   1   1   1   1      
transmitted block (23 bits)    
1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 1
     

Table 1 – Example of a punctured convolutional code. Every bit of the first convolutional sequence is kept, but only every alternate bit of the second convolutional sequence is kept. The convolutional sequences ere obtained by applying an 'exclusive or' operation to the sequence and delayed versions of it, after addition of fixed bits at both ends of the original sequence.

The actual efficiency coefficient is slightly smaller than the convolutional efficiency, because of the tail bits, and in this case amounts to 12/13.

The convolutional codes used in GSM are not much complex than this. The maximum degree of the corresponding polynomials is 4. Now, convolutional codes of larger degrees usually have better performance, at the price of decoder complexity. In GSM, however, simple codes have been chosen because the performance gain is limited by the interleaving depth. The span of a code can be understood in broad terms as the length of the sequence of coded bits which must be analyzed to decode one information bit. It can be shown, with the assumption that bursts are mostly all good or all bad, that little gain is obtained if the span is greater than the interleaving depth. The GSM convolutional codes have been chosen as simple as possible, with a span just big enough (e.g., 22 for the 9.6 kbps data transmission mode).
 
 

2 Fire Code

A Fire code is a conventional linear binary block code, i.e., it consists in transmitting, in addition to the information bits, k a number or redundant bits computed by exclusive-or manipulations on the information bits. Moreover Fire codes derive from codes belonging to the 'cyclic' code family. In this case, the redundancy computation formulas can be expressed as follows. The original sequence can be used to build a polynomial, whose coefficients are the bits of the sequence. The redundancy can be expressed as the coefficients of another polynomial obtained as the remainder of the division of the polynomial representing the sequence by a pre-defined polynomial, characteristic of the code and called the generator polynomial.

A Fire code has a generator polynomial designed to allow good detecting and/or correcting performance when errors happen in groups. The GSM Fire code uses the following generator polynomial:

This polynomial, being of degree 40, gives a remainder having 40 coefficients, and thus there are 40 redundancy bits. The properties of this code are such that error groups of 11 bits can be detected and corrected.
 
 

3 Parity codes

These are linear block codes, derived, like the Fire code, from cyclic codes. For speech, a 3-bit redundancy code enables to assess the correctness of the bits which are most sensitive to errors in the speech frame . Its detection capability is quite limited. All one-error patterns are detected, but there are patterns of two errors which are not detected.

For the RACH (Random Access Channel) and SCH (Synchronization Channel) bursts, codes of respectively 6 and 10 bits of redundancy are aimed at detection, though they have adequate properties to be used for error correction. These codes have a minimum distance of 4, which means that they could be used to detect all patterns of 3 errors, and they could be used to correct all single error cases).
 
 

4 GSM Channel Coding Standards

The input rate for the speech transmission mode on a full rate traffic channel is equal to 13 kbps, by blocks of 260 bits. When errors occur, the received speech is disturbed in different ways depending on the role of the bits in error. Thus it was decided to protect these 260 bits in different ways:

  • 182 bits are protected by a convolutional block code with a convolutional efficiency of ½,
  • among these 182 bits, 50 are additionally protected by a detection code adding 3 redundancy bits. These 50 bits are the category Ia bits; the other 132 bits are category Ib bits,
  • the other 78 bits are not protected.
This coding standard is depicted in figure 2, below.
 

Figure 2 – 1 audio block consisting of 260 bits (20ms) [4]

The polynomial representing the detection code for category Ia bits is . Bits of class Ia are of such importance that if any one of them is corrupted, the user will hear a potentially loud noise in place of a 20ms speech slice. Detection of such errors is therefore important and allows the bad block to be replaced by something less disturbing s.a. an extrapolation of the preceding block.

The convolutional code consists in adding 4 bits set to '0' to the initial 185 bit sequence, and applying two convolutions whose polynomials are respectivelyand. No puncturing is applied, and the result is composed of twice 198 bits, i.e., 378 bits. The efficiency of class I bits is just below 0.5. The 78 non-protected bits must of course be added to these 378 bits, leading to a coded block length of 456 bits.
 

Figure 3 – TCH/FS Transmission Mode [4]





5 Interleaving

To further protect against burst errors common to the radio interface, each sample is interleaved. The 456 bits output by the convolutional encoder are divided into 8 blocks of 57 bits, and these blocks are transmitted in eight consecutive time slot bursts. Since each time slot bursts can carry two 57 bit blocks, each burst carries traffic from two different speech samples.
 
 

0 8 . . . . . . . .
448
even bits of burst N
1 9 . . . . . . . .
449
even bits of burst N+1
2 10 . . . . . . . .
450
even bits of burst N+2
3 11 . . . . . . . .
451
even bits of burst N+3
4 12 . . . . . . . .
452
even bits of burst N+4
5 13 . . . . . . . .
453
even bits of burst N+5
6 14 . . . . . . . .
454
even bits of burst N+6
7 15 . . . . . . . .
455
even bits of burst N+7
ß                          57 columns                        à

Table 2 – Interleaving algorithm for full rate speech. A speech block is split into 8 groups of 57 bits as shown, and each of these groups is carried in a separate burst



6 Ciphering

Digital transmission allows easy protection of data against non-authorised third parties. Such protection has been introduced in GSM by means of transmission ciphering, which is independent of the type of data being transmitted. This is achieved by performing an 'exclusive-or' operation between a pseudo-random bit sequence and 114 useful bits of a normal burst. The algorithm used to generate the pseudo-random sequence is called "A5".
 

7 Current Research

The need for increased utilization of the available wireless communication spectrum has fueled the development of advanced channel coding techniques. From simple waveform coding techniques operating at 64 kbps, the advance of channel coding algorithms has produced communication quality at 2 kbps and below. This allows up to 32 communication channels to operate a bandwidth formerly occupied by one channel. The current research priorities in the area of mobile communications channel coding standards include:

  • The development of channel coding schemes with perceptual tolerance to time varying congestion, characteristic of mobile networks
  • The development of efficient, scalable or layered source coding standards with layered specific QoS requirements.
  • Investigation and development of effective hybrid schemes which combine purely passive error recovery techniques with active FEC-based approaches.

References

 
[1]  Digital Voice Systems Inc., Application of Vocoders to 
Wireless Communications, 29.09.1999, [referred 05.10.1999] 
< http://www.dvsinc.com/app_voco.htm
[2]   European Telecommunications Standards Institute, Digital cellular telecommunications system (Phase 2+);
 Channel coding (GSM 05.03), 08.1996 [referred 04.10.1999]
<http://www.etsi.org/>
[3]  Scourias, J., Overview of the Global System for Mobile Communications, 14.10.1997 [referred 06.10.1999] 
<http://club.euronet.be/frank.claes/doc1.html>
[4] Turletti, T.,The GSM Channel Coding, 06.1996 [referred 06.10.1999] 
<http://www.sds.lcs.mit.edu/~turletti/gsm-overview/node7.html>
[5] V.A., Research Priorities in Wireless and Mobile Communications and Networking, 24.03.1997 [referred 05.10.1999}
<http://www.cise.nsf.gov/anir/ww.html>

 

Further Information

[1] Gibson, J.D., The Mobile Communications Handbook, Boca Raton (FL) CRC Press 1996, 577 p.
[2] Mouly, M., The GSM System for Mobile Communications, Palaiseau Mouly & Pautet 1992, 701 p.
[3] Lin, S., Costello, D. J., Error Control Coding, Prentice Hall October 1982, 720 p.


Created:            05th Oct. 1999 
Last Modified: 11th Oct. 1999 @ 03:00 (GMT +02) 

Back to the Table of Contents