Channel Coding

The heavily varying properties of the mobile radio channel (see Section 2.1) result in an often very high bit error ratio, on the order of 10 3 to 10_1. The highly compressed, redundancy-reduced source coding makes speech communication with acceptable quality almost impossible; moreover, it makes reasonable data communication impossible. Suitable error correction procedures are therefore necessary to reduce the bit error probability into an acceptable range of about 10 ~5 to 10 ~6. Channel coding, in contrast to source coding, adds redundancy to the data stream to enable detection and correction of transmission errors. It is the modern high-performance coding and error correction techniques which essentially enable the implementation of a digital mobile communication system.

The GSM system uses a combination of several procedures: besides a block code, which generates parity bits for error detection, a convolutional code generates the redundancy needed for error correction. Furthermore, sophisticated interleaving of data over several blocks reduces the damage done by burst errors. The individual steps of channel coding are shown in Figure 6.6:

• Calculation of parity bits (block code) and addition of fill bits

• Error protection coding through convolutional coding

• Interleaving

Finally, the coded and interleaved blocks are enciphered, distributed across bursts, modulated and transmitted on the respective carrier frequencies.

Stages Channel Coding
Figure 6.6: Stages of channel coding

The sequence of data blocks that arrives at the input of the channel encoder is combined into blocks, partially supplemented by parity bits (depending on the logical channel), and then complemented to a block size suitable for the convolutional encoder. This involves appending zero bits at the end of each data block, which allow a defined resetting procedure of the convolutional encoder (zero-termination) and thus a correct decoding decision. Finally, these blocks are run through the convolutional encoder. The ratio of uncoded to coded block length is called the rate of the convolutional code. Some of the redundancy bits generated by the convolutional encoder are deleted again for some of the logical channels. This procedure is known as puncturing, and the resulting code is a punctured convolutional code [3,28,38]. Puncturing increases the rate of the convolutional code, so it reduces the redundancy per block to be transmitted, and lowers the bandwidth requirements, such that the convolution-encoded signal fits into the available channel bit rate. The convolution-encoded bits are passed to the interleaver, which shuffles various bit streams. At the receiving site, the respective inverse functions are performed: deinterleaving, convolutional decoding, parity checking. Depending on the position within the transmission chain (Figure 6.6), one distinguishes between external error protection (block code) and internal protection (convolutional code).

In the following, the GSM channel coding is presented according to these stages. Section 6.2.1 explains the block coding, Section 6.2.2 deals with convolutional coding, and, finally, Section 6.2.3 presents the interleaving procedures used in GSM. The error protection measures have different parameters depending on channel and type of transported data. Table 6.2 gives an overview. (Note that the tail bits indicated in the second column are the fill bits needed by the decoding process; they should not be confused with the tail bits of the bursts (see Section 5.2).)

Table 6.2: Error protection coding and interleaving of logical channels

Channel type

(ms)

Bits per block

code rate

Encoded bits per block

Inter-

leaver depth

Data

Parity

Tail

TCH, full rate, speech

TCH/FS

20

260

456

8

Class 1

182

3

4

1/2

378

Class II

78

0

0

-

78

TCH, half rate, speech

TCH/HS

20

112

228

4

Class I

95

3

6

104/211

211

Class II

17

0

0

-

17

TCH, full rate, 14.4 kbit/s

TCH/F14.4

20

290

0

4

294/456

456

19

TCH, full rate, 9.6 kbit/s

TCH/F9.6

5

4 x 60

0

4

244/456

456

19

TCH, full rate, 4.8 kbit/s

TCH/F4.8

10

60

0

16

1/3

228

19

TCH, half rate, 4.8 kbit/s

TCH/H4.8

10

4 x 60

0

4

244/456

456

19

TCH, full rate, 2.4 kbit/s

TCH/F2.4

10

2 x 36

0

4

1/6

456

8

TCH, half rate, 2.4 kbit/s

TCH/H2.4

10

2 x 36

0

4

1/3

228

19

FACCH, full rate

FACCH/F

20

184

40

4

1/2

456

8

FACCH, half rate

FACCH/H

40

184

40

4

1/2

456

6

SDCCH, SACCH

184

40

4

1/2

456

4

BCCH, NCH, AGCH, PCH

235

184

40

4

1/2

456

4

RACH

235

8

6

4

1/2

36

1

SCH

25

10

4

1/2

78

1

CBCH

235

184

40

4

1/2

456

4

The basic unit for all coding procedures is the data block. For example, the speech coder delivers to the channel encoder a sequence of data blocks. Depending on the logical channel, the length of the data block is different; after convolutional coding at the latest, data from all channels are transformed into units of 456 bits. Such a block of 456 bits transports a complete speech frame or a protocol message in most of the signaling channels, except for the RACH and SCH channels. The starting points are the blocks delivered to the input of the channel encoder from the protocol processing in higher layers (Figure 6.7).

Speech traffic channels - One block of the full-rate speech codec consists of 260 bits of speech data, i.e. each block contains 260 information bits, which must be encoded. They are graded into two classes (Class I, 182 bits; Class II, 78 bits) which have different sensitivity against bit errors. Class I includes speech bits that have more impact on speech quality and hence must be better protected. Speech bits of Class II, however, are less important. They are therefore transmitted without convolutional coding, but are included in the interleaving process. The individual sections of a speech frame are therefore protected to differing degrees against transmission errors (Unequal Error Protection (UEP)). In the case of a half-rate speech codec, data blocks of 112 information bits are input to the channel encoder. Of these, 95 bits belong to Class I and 17 bits belong to Class II. Again, one data block corresponds to one speech frame.

Data traffic channels - Blocks of traffic channels for data services have a length of NO bits, the value of NO being a function of the data service bit rate. We take for example the 9.6 kbit/s data service on a full-rate traffic channel (TCH/F9.6). Here, a bit stream organized in blocks of 60 information bits arrives every 5 ms at the input of the encoder. Four subsequent blocks are combined for the encoding process.

Signalling channels - The data streams of most of the signaling channels are constructed of blocks of 184 bits each; with the exception of the RACH and SCH which supply blocks of length P0 to the channel coder. The block length of 184 bits results from the fixed length of the protocol message frames of 23 octets on the signaling channels. The channel coding process maps pairs of subblocks of 57 bits onto the bursts such that it can fill a normal data burst NB (Figure 5.6).

Was this article helpful?

0 0
Living With Android

Living With Android

Get All The Support And Guidance You Need To Finally Be A Success At Using Android. This Book Is One Of The Most Valuable Resources In The World When It Comes To Playing With the Hottest Android Tablet.

Get My Free Ebook


Post a comment