3.9 Adaptive multi rate speech channel at full rate (TCH/AFS)

3GPP45.003GSM/EDGE Channel codingRelease 17TS

This section describes the coding for the different frame formats used for TCH/AFS. The formats used are (in the order they are described):

SID_UPDATE Used to convey comfort noise parameters during DTX

SID_FIRST Marker to define end of speech, start of DTX

ONSET Used to signal the Codec mode for the first speech frame after DTX

SPEECH Speech frames

RATSCCH Frames used to convey RATSCCH messages

In this chapter, sub chapters 3.9.1 to 3.9.5 describe the channel coding for the different formats listed above.

Common to all the formats is that in-band information is conveyed, the coding for the in-band channel is described in the table below.

Identifier

(defined in 3GPP TS 45.009)

Received in-band data

id(1), id(0)

Encoded in-band data for SID and RATSCCH frames

ic(15),.., ic(0)

Encoded in-band data for speech frames

ic(7),.., ic(0)

CODEC_MODE_1

00

0101001100001111

00000000

CODEC_MODE_2

01

0011111010111000

10111010

CODEC_MODE_3

10

1000100001100011

01011101

CODEC_MODE_4

11

1110010111010100

11100111

3.9.1 SID_UPDATE

The speech encoder delivers 35 bits of comfort noise parameters. Also delivered is two in-band channels, id0(0,1) and id1(0,1), id0 corresponding to Mode Commands or Mode Requests and id1 to Mode Indication. The general coding is as: the two in-band data channels are coded to 16 bits each, a 14-bit CRC is added to the 35 CN bits which are then coded by a rate ¼ RSC coder to 212 bits. Finally a 212 bit identification field is added thereby giving a total size of 456 bits. These 456 bits are then block interleaved in the same way as SACCH frames.

3.9.1.1 Coding of in-band data

The two in-band data fields, id0(0,1) and id1(0,1), are encoded, giving ic0(0..15) and ic1(0..15).

The ic0 and ic1 data is moved to the coded data c as:

c(k) = ic0(k) for k = 0,1,2,3

c(k) = ic1(k-4) for k = 4, 5, 6, 7

c(k) = ic0(k-4) for k = 8, 9, 10, 11

c(k) = ic1(k-8) for k = 12, 13, 14, 15

c(k) = ic0(k-8) for k = 16, 17, 18, 19

c(k) = ic1(k-12) for k = 20, 21, 22, 23

c(k) = ic0(k-12) for k = 24, 25, 26, 27

c(k) = ic1(k-16) for k = 28, 29, 30, 31

3.9.1.2 Parity and convolutional encoding for the comfort noise parameters

a) Parity bits:

A 14-bit CRC is used for error-detection. These 14 parity bits are generated by the cyclic generator polynomial: g(D) = D14 + D13 + D5 + D3 + D2 +1 from the 35 comfort noise parameter bits. The encoding of the cyclic code is performed in a systematic form, which means that, in GF(2), the polynomial:

d(0)D(48) + d(1)D(47) +… + d(34)D(14) + p(0)D(13) +…+ p(12)D+ p(13)

where p(0), p(1) … p(13) are the parity bits, when divided by g(D), yields a remainder equal to 1+ D + D2 + D3 + D4 + D5 + D6 + D7 + D8 + D9 + D10 + D11 + D12+ D13

The information and parity bits are merged:

u(k) = d(k) for k = 0, 1, …, 34

u(k) = p(k-35) for k = 35, 36, …, 48

b) Convolutional encoder

The comfort noise parameters with parity bits (u(0..48)) are encoded with the ¼ rate

convolutional code defined by the polynomials:

G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4

G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4

G3/G3 = 1

G3/G3 = 1

resulting in 212 coded bits, {C(0)… C(211)} defined by:

r(k) = u(k) + r(k-1) + r(k-2) + r(k-3) + r(k-4)

C(4k) = r(k) + r(k-1) + r(k-3) + r(k-4)

C(4k+1) = r(k)+r(k-2)+r(k-4)

C(4k+2) = u(k)

C(4k+3) = u(k) for k = 0, 1, …, 48; r(k) = 0 for k<0

and (for termination of the coder):

r(k) = 0

C(4k) = r(k)+r(k-1) + r(k-3) + r(k-4)

C(4k+1) = r(k)+r(k-2)+r(k-4)

C(4k+2) = r(k-1)+r(k-2)+r(k-3)+r(k-4)

C(4k+3) = r(k-1)+r(k-2)+r(k-3)+r(k-4) for k = 49, 50, …, 52

This block of data is moved to the coded data (c) as:

c(8*k+32) = C(4*k)

c(8*k+33) = C(4*k+1)

c(8*k+34) = C(4*k+2)

c(8*k+35) = C(4*k+3) for k = 0, 1, …, 52

3.9.1.3 Identification marker

The identification marker, IM(0..211), is constructed by repeating the following 9-bit sequence: { 0, 1, 0, 0, 1, 1, 1, 1, 0 } 24 times and then discarding the last 4 bits. This block of data is moved to the coded data (c) as:

c(8*k+36) = IM(4*k)

c(8*k+37) = IM(4*k+1)

c(8*k+38) = IM(4*k+2)

c(8*k+39) = IM(4*k+3) for k = 0, 1, …, 52

3.9.1.4 Interleaving

The interleaving is done as specified for the SACCH in subclause 4.1.4.

3.9.1.5 Mapping on a Burst

The interleaving is done as specified for the SACCH in subclause 4.1.5 with the exception that hl(B) and hu(B) is set to "0".

3.9.2 SID_FIRST

This frame type contains no source data from the speech coder, what is transmitted is the in-band channel (signalling Mode Indication or Mode Command/Mode Request depending on the current frame number) and an identification marker.

3.9.2.1 Coding of in-band data

The in-band data, id(0,1), is encoded to ic(0..15) which is moved to the coded data c as:

c(k) = ic(k) for k = 0,1,2,3

c(k) = ic(k-4) for k = 8, 9, 10, 11

c(k) = ic(k-8) for k = 16, 17, 18, 19

c(k) = ic(k-12) for k = 24, 25, 26, 27

3.9.2.2 Identification marker

The identification marker, IM(0..211), is constructed by repeating the following 9-bit sequence: { 0, 1, 0, 0, 1, 1, 1, 1, 0 } 24 times and then discarding the last 4 bits. This block of data is moved to the coded data (c) as:

c(8*k+32) = IM(4*k)

c(8*k+33) = IM(4*k+1)

c(8*k+34) = IM(4*k+2)

c(8*k+35) = IM(4*k+3) for k = 0, 1, …, 52

3.9.2.3 Interleaving

The interleaving is done as specified for the TCH/FS in subclause 3.1.3.

3.9.2.4 Mapping on a Burst

The mapping is done as specified for the TCH/FS in subclause 3.1.4. The last 4 bursts shall not be transmitted unless the SID_FIRST frame is immediately followed by a speech frame.

3.9.3 ONSET

Onset frames are used to preset the interleaver buffer after a period of no speech activity in DTX mode. This frame type contains no source data from the speech coder, what is transmitted is the in-band channel signalling the Mode Indication for the speech frame following the onset marker.

3.9.3.1 Coding of in-band data

The in-band data, Mode Indication id1(0,1), is encoded to ic1(0..15). This sequence is then repeated 14 times more, and the last 12 bits are discarded (15*16-12=228) giving the sequence ic1(0..227).

This sequence is then moved to c as:

c(8*k+4) = ic1(4*k)

c(8*k+5) = ic1(4*k+1)

c(8*k+6) = ic1(4*k+2)

c(8*k+7) = ic1(4*k+3) for k = 0, 1, …, 56

3.9.3.2 Interleaving

The coded bits are reordered and interleaved according to the following rule:

i(B,j) = c(n,k), for k = 4,5,6,7, 12,13,14,15,20,21,22,23 …,455

n = 0,1,…,N,N+1,…

B = B0 + 4n + (k mod 8) – 4

j = 2((49k) mod 57) + ((k mod 8) div 4)

See table 1. The result of the interleaving is a distribution of the defined 228 bits of a given data block of size 456 bits, n = N, over 4 blocks using the odd numbered bits. The even numbered bits of these 4 blocks will be filled by the speech frame for which this frame is the ONSET.

3.9.3.3 Mapping on a Burst

The mapping is given by the rule:

e(B,j) = i(B,j) and e(B,59+j) = i(B,57+j) for j = 0,1,…,56

and

e(B,57) = hl(B)

The bit labelled hl(B) on burst number B is a flag used for indication of control channel signalling. For each ONSET block not stolen for signalling purposes:

hl(B) = 0 for the 4 bursts (indicating status of odd numbered bits)

For the use of hl(B) when an ONSET is stolen for signalling purposes see subclause 4.2.5.

3.9.4 SPEECH

The speech coder delivers to the channel encoder a sequence of blocks of data. One block of data corresponds to one speech frame and the block length is different in each of the eight channel codec modes. Adjoining each block of data is information of the channel codec mode to use when encoding the block. Also delivered is the in-band data id(0,1) representing Mode Indication or Mode Command/Mode Request depending on the current frame number.

3.9.4.1 Coding of the in-band data

The two input in-band bits (id(0,1)) are coded to eight coded in-band bits (ic(0..7)).

The encoded in-band bits are moved to the coded bits, c, as

c(k) = ic(k) for k = 0, 1, …, 7.

3.9.4.2 Ordering according to subjective importance

The bits delivered by the speech encoder, {s(1),s(2),…,s(Ks)}, are rearranged according to subjective importance before channel coding. Tables 7 to 16 define the correct rearrangement for the speech codec modes 12.2 kbit/s, 10.2 kbit/s, 7.95 kbit/s, 7.40 kbit/s, 6.70 kbit/s, 5.90 kbit/s, 5.15 kbit/s and 4.75 kbit/s, respectively. In the tables speech codec parameters are numbered in the order they are delivered by the corresponding speech encoder according to 3GPP TS 26.090 and the rearranged bits are labelled {d(0),d(1),…,d(Kd-1)}, defined in the order of decreasing importance. Index Kd refers to the number of bits delivered by the speech encoder, see below:

Codec

mode

Number of

speech bits

delivered

per block

(Kd)

TCH/AFS12.2

244

TCH/AFS10.2

204

TCH/AFS7.95

159

TCH/AFS7.4

148

TCH/AFS6.7

134

TCH/AFS5.9

118

TCH/AFS5.15

103

TCH/AFS4.75

95

The ordering algorithm is in pseudo code as:

for j = 0 to Kd-1 d(j) := s(table(j)+1); where table(j) is read line by line left to right

The rearranged bits are further divided into two different classes to perform unequal error protection for different bits according to subjective importance.

The protection classes are:

1a – Data protected with the CRC and the convolution code.
1b – Data protected with the convolution code.
No unprotected bits are used.

The number of class 1 (sum of class 1a and 1b), class 1a and class 1b bits for each codec mode is shown below:

Codec

Mode

Number of speech bits delivered per block

Number of class 1 bits per block

Number of class 1a bits per block

Number of class 1b bits per block

TCH/AFS12.2

244

244

81

163

TCH/AFS10.2

204

204

65

139

TCH/AFS7.95

159

159

75

84

TCH/AFS7.4

148

148

61

87

TCH/AFS6.7

134

134

55

79

TCH/AFS5.9

118

118

55

63

TCH/AFS5.15

103

103

49

54

TCH/AFS4.75

95

95

39

56

3.9.4.3 Parity for speech frames

The basic parameters for each codec mode for the first encoding step are shown below:

Codec

mode

Speech

encoded bits

(Kd)

CRC

protected bits

(Kd1a)

Number of bits after first encoding step

(Ku = Kd + 6)

TCH/AFS12.2

244

81

250

TCH/AFS10.2

204

65

210

TCH/AFS7.95

159

75

165

TCH/AFS7.4

148

61

154

TCH/AFS6.7

134

55

140

TCH/AFS5.9

118

55

124

TCH/AFS5.15

103

49

109

TCH/AFS4.75

95

39

101

A 6-bit CRC is used for error-detection. These 6 parity bits are generated by the cyclic generator polynomial: g(D) = D6 + D5 + D3 + D2 + D1 + 1 from the first Kd1a bits of class 1, where Kd1a refers to number of bits in protection class 1a as shown above for each codec mode. The encoding of the cyclic code is performed in a systematic form, which means that, in GF(2), the polynomial:

d(0)D(Kd1a+5) + d(1)D(Kd1a+4) +… + d(Kd1a-1)D(6) + p(0)D(5) +…+ p(4)D+ p(5)

where p(0), p(1) … p(5) are the parity bits, when divided by g(D), yields a remainder equal to:

1+ D + D2 + D3 + D4 + D5.

The information and parity bits are merged:

u(k) = d(k) for k = 0, 1, …, Kd1a-1

u(k) = p(k-Kd1a) for k = Kd1a, Kd1a+1, …, Kd1a+5

u(k) = d(k-6) for k = Kd1a+6, Kd1a+7, …, Ku-1

Thus, after the first encoding step u(k) will be defined by the following contents for each codec mode:

TCH/AFS12.2:

u(k) = d(k) for k = 0, 1, …, 80

u(k) = p(k-81) for k = 81, 82, …, 86

u(k) = d(k-6) for k = 87, 88, …, 249

TCH/AFS10.2:

u(k) = d(k) for k = 0, 1, …, 64

u(k) = p(k-65) for k = 65, 66, …, 70

u(k) = d(k-6) for k = 71, 72, …, 209

TCH/AFS7.95:

u(k) = d(k) for k = 0, 1, …, 74

u(k) = p(k-75) for k = 75, 76, …, 80

u(k) = d(k-6) for k = 81, 82, …, 164

TCH/AFS7.4:

u(k) = d(k) for k = 0, 1, …, 60

u(k) = p(k-61) for k = 61, 62, …, 66

u(k) = d(k-6) for k = 67, 68, …, 153

TCH/AFS6.7:

u(k) = d(k) for k = 0, 1, …, 54

u(k) = p(k-55) for k = 55, 56, …, 60

u(k) = d(k-6) for k = 61, 62, …, 139

TCH/AFS5.9:

u(k) = d(k) for k = 0, 1, …, 54

u(k) = p(k-55) for k = 55, 56, …, 60

u(k) = d(k-6) for k = 61, 62, …, 123

TCH/AFS5.15:

u(k) = d(k) for k = 0, 1, …, 48

u(k) = p(k-49) for k = 49, 50, …, 54

u(k) = d(k-6) for k = 55, 56, …, 108

TCH/AFS4.75:

u(k) = d(k) for k = 0, 1, …, 38

u(k) = p(k-39) for k = 39, 40, …, 44

u(k) = d(k-6) for k = 45, 46, …, 100

3.9.4.4 Convolutional encoder

The bits from the first encoding step (u(k)) are encoded with the recursive systematic convolutional codes as summarised below. The number of output bits after puncturing is 448 for all codec modes.

Codec

mode

Rate

Number

of input bits to

conv.

coder

Number

of output bits from

conv.

coder

Number

of

punctured

bits

TCH/AFS12.2

½

250

508

60

TCH/AFS10.2

1/3

210

642

194

TCH/AFS7.95

1/3

165

513

65

TCH/AFS7.4

1/3

154

474

26

TCH/AFS6.7

¼

140

576

128

TCH/AFS5.9

¼

124

520

72

TCH/AFS5.15

1/5

109

565

117

TCH/AFS4.75

1/5

101

535

87

Below the coding for each codec mode is specified in detail.

TCH/AFS12.2:

The block of 250 bits {u(0)… u(249)} is encoded with the ½ rate convolutional code defined by the following polynomials:

G0/G0 = 1

G1/G0 = 1 + D + D3+ D4 / 1 + D3 + D4

resulting in 508 coded bits, {C(0)… C(507)} defined by:

r(k) = u(k) + r(k-3) + r(k-4)

C(2k) = u(k)

C(2k+1) = r(k)+r(k-1)+r(k-3)+r(k-4) for k = 0, 1, …, 249; r(k) = 0 for k<0

and (for termination of the coder):

r(k) = 0

C(2k) = r(k-3) + r(k-4)

C(2k+1) = r(k)+r(k-1)+r(k-3)+r(k-4) for k = 250, 251, …, 253

The code is punctured in such a way that the following 60 coded bits:

C(321), C(325), C(329), C(333), C(337), C(341), C(345), C(349), C(353), C(357), C(361), C(363), C(365), C(369), C(373), C(377), C(379), C(381), C(385), C(389), C(393), C(395), C(397), C(401), C(405), C(409), C(411), C(413), C(417), C(421), C(425), C(427), C(429), C(433), C(437), C(441), C(443), C(445), C(449), C(453), C(457), C(459), C(461), C(465), C(469), C(473), C(475), C(477), C(481), C(485), C(489), C(491), C(493), C(495), C(497), C(499), C(501), C(503), C(505) and C(507)

are not transmitted. The result is a block of 448 coded and punctured bits, P(0)…P(447) which are appended to the in-band bits in c as

c(k+8) = P(k) for k = 0, 1, …, 447.

TCH/AFS10.2:

The block of 210 bits {u(0)… u(209)} is encoded with the 1/3 rate convolutional code defined by the following polynomials:

G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4

G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4

G3/G3 = 1

resulting in 642 coded bits, {C(0)… C(641)} defined by:

r(k) = u(k) + r(k-1) + r(k-2) + r(k-3) + r(k-4)

C(3k) = r(k) + r(k-1) + r(k-3) + r(k-4)

C(3k+1) = r(k)+r(k-2)+r(k-4)

C(3k+2) = u(k) for k = 0, 1, …, 209

and (for termination of the coder):

r(k) = 0

C(3k) = r(k)+r(k-1) + r(k-3) + r(k-4)

C(3k+1) = r(k)+r(k-2)+r(k-4)

C(3k+2) = r(k-1)+r(k-2)+r(k-3)+r(k-4) for k = 210, 211, …, 213

The code is punctured in such a way that the following 194 bits:

C(1), C(4), C(7), C(10), C(16), C(19), C(22), C(28), C(31), C(34), C(40), C(43), C(46), C(52), C(55), C(58), C(64), C(67), C(70), C(76), C(79), C(82), C(88), C(91), C(94), C(100), C(103), C(106), C(112), C(115), C(118), C(124), C(127), C(130), C(136), C(139), C(142), C(148), C(151), C(154), C(160), C(163), C(166), C(172), C(175), C(178), C(184), C(187), C(190), C(196), C(199), C(202), C(208), C(211), C(214), C(220), C(223), C(226), C(232), C(235), C(238), C(244), C(247), C(250), C(256), C(259), C(262), C(268), C(271), C(274), C(280), C(283), C(286), C(292), C(295), C(298), C(304), C(307), C(310), C(316), C(319), C(322), C(325), C(328), C(331), C(334), C(337), C(340), C(343), C(346), C(349), C(352), C(355), C(358), C(361), C(364), C(367), C(370), C(373), C(376), C(379), C(382), C(385), C(388), C(391), C(394), C(397), C(400), C(403), C(406), C(409), C(412), C(415), C(418), C(421), C(424), C(427), C(430), C(433), C(436), C(439), C(442), C(445), C(448), C(451), C(454), C(457), C(460), C(463), C(466), C(469), C(472), C(475), C(478), C(481), C(484), C(487), C(490), C(493), C(496), C(499), C(502), C(505), C(508), C(511), C(514), C(517), C(520), C(523), C(526), C(529), C(532), C(535), C(538), C(541), C(544), C(547), C(550), C(553), C(556), C(559), C(562), C(565), C(568), C(571), C(574), C(577), C(580), C(583), C(586), C(589), C(592), C(595), C(598), C(601), C(604), C(607), C(609), C(610), C(613), C(616), C(619), C(621), C(622), C(625), C(627), C(628), C(631), C(633), C(634), C(636), C(637), C(639) and C(640)

are not transmitted. The result is a block of 448 coded and punctured bits, P(0)…P(447) which are appended to the in-band bits in c as:

c(k+8) = P(k) for k = 0, 1, …, 447.

TCH/AFS7.95:

The block of 165 bits {u(0)… u(164)} is encoded with the 1/3 rate convolutional code defined by the following polynomials:

G4/G4 = 1

G5/G4 = 1 + D + D4 + D6/ 1 + D2 + D3 + D5 + D6

G6/G4 = 1 + D + D2 + D3 + D4 + D6/ 1 + D2 + D3 + D5 + D6

resulting in 513 coded bits, {C(0)… C(512)} defined by:

r(k) = u(k) + r(k-2) + r(k-3) + r(k-5) + r(k-6)

C(3k) = u(k)

C(3k+1) = r(k)+r(k-1)+r(k-4)+r(k-6)

C(3k+2) = r(k)+r(k-1)+ r(k-2)+r(k-3)+r(k-4)+r(k-6) for k = 0, 1, …, 164; r(k) = 0 for k<0

and (for termination of the coder):

r(k) = 0

C(3k) = r(k-2) + r(k-3) + r(k-5) + r(k-6)

C(3k+1) = r(k)+r(k-1)+r(k-4)+r(k-6)

C(3k+2) = r(k)+r(k-1)+ r(k-2)+r(k-3)+r(k-4)+r(k-6) for k = 165, 166, …, 170

The code is punctured in such a way that the following 65 coded bits:

C(1), C(2), C(4), C(5), C(8), C(22), C(70), C(118), C(166), C(214), C(262), C(310), C(317), C(319), C(325), C(332), C(334), C(341), C(343), C(349), C(356), C(358), C(365), C(367), C(373), C(380), C(382), C(385), C(389), C(391), C(397), C(404), C(406), C(409), C(413), C(415), C(421), C(428), C(430), C(433), C(437), C(439), C(445), C(452), C(454), C(457), C(461), C(463), C(469), C(476), C(478), C(481), C(485), C(487), C(490), C(493), C(500), C(502), C(503), C(505), C(506), C(508), C(509), C(511) and C(512)

are not transmitted. The result is a block of 448 coded and punctured bits, P(0)…P(447) which are appended to the in-band bits in c as

c(k+8) = P(k) for k = 0, 1, …, 447.

TCH/AFS7.4:

The block of 154 bits {u(0)… u(153)} is encoded with the 1/3 rate convolutional code defined by the following polynomials:

G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4

G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4

G3/G3 = 1

resulting in 474 coded bits, {C(0)… C(473)} defined by:

r(k) = u(k) + r(k-1) + r(k-2) + r(k-3) + r(k-4)

C(3k) = r(k) + r(k-1) + r(k-3) + r(k-4)

C(3k+1) = r(k)+r(k-2)+r(k-4)

C(3k+2) = u(k) for k = 0, 1, …, 153

and (for termination of the coder):

r(k) = 0

C(3k) = r(k)+r(k-1) + r(k-3) + r(k-4)

C(3k+1) = r(k)+r(k-2)+r(k-4)

C(3k+2) = r(k-1)+r(k-2)+r(k-3)+r(k-4) for k = 154, 155, …, 157

The code is punctured in such a way that the following 26 bits:

C(0), C(355), C(361), C(367), C(373), C(379), C(385), C(391), C(397), C(403), C(409), C(415), C(421), C(427), C(433), C(439), C(445), C(451), C(457), C(460), C(463), C(466), C(468), C(469), C(471) and C(472)

are not transmitted. The result is a block of 448 coded and punctured bits, P(0)…P(447) which are appended to the in-band bits in c as:

c(k+8) = P(k) for k = 0, 1, …, 447.

TCH/AFS6.7:

The block of 140 bits {u(0)… u(139)} is encoded with the ¼ rate convolutional code defined by the following polynomials:

G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4

G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4

G3/G3 = 1

G3/G3 = 1

resulting in 576 coded bits, {C(0)… C(575)} defined by:

r(k) = u(k) + r(k-1) + r(k-2) + r(k-3) + r(k-4)

C(4k) = r(k) + r(k-1) + r(k-3) + r(k-4)

C(4k+1) = r(k)+r(k-2)+r(k-4)

C(4k+2) = u(k)

C(4k+3) = u(k) for k = 0, 1, …, 139; r(k) = 0 for k<0

and (for termination of the coder):

r(k) = 0

C(4k) = r(k)+r(k-1) + r(k-3) + r(k-4)

C(4k+1) = r(k)+r(k-2)+r(k-4)

C(4k+2) = r(k-1)+r(k-2)+r(k-3)+r(k-4)

C(4k+3) = r(k-1)+r(k-2)+r(k-3)+r(k-4) for k = 140, 141, …, 143

The code is punctured in such a way that the following 128 coded bits:

C(1), C(3), C(7), C(11), C(15), C(27), C(39), C(55), C(67), C(79), C(95), C(107), C(119), C(135), C(147), C(159), C(175), C(187), C(199), C(215), C(227), C(239), C(255), C(267), C(279), C(287), C(291), C(295), C(299), C(303), C(307), C(311), C(315), C(319), C(323), C(327), C(331), C(335), C(339), C(343), C(347), C(351), C(355), C(359), C(363), C(367), C(369), C(371), C(375), C(377), C(379), C(383), C(385), C(387), C(391), C(393), C(395), C(399), C(401), C(403), C(407), C(409), C(411), C(415), C(417), C(419), C(423), C(425), C(427), C(431), C(433), C(435), C(439), C(441), C(443), C(447), C(449), C(451), C(455), C(457), C(459), C(463), C(465), C(467), C(471), C(473), C(475), C(479), C(481), C(483), C(487), C(489), C(491), C(495), C(497), C(499), C(503), C(505), C(507), C(511), C(513), C(515), C(519), C(521), C(523), C(527), C(529), C(531), C(535), C(537), C(539), C(543), C(545), C(547), C(549), C(551), C(553), C(555), C(557), C(559), C(561), C(563), C(565), C(567), C(569), C(571), C(573) and C(575)

are not transmitted. The result is a block of 448 coded bits, P(0)…P(447) which are appended to the in-band bits in c as

c(k+8) = P(k) for k = 0, 1, …, 447.

TCH/AFS5.9:

The block of 124 bits {u(0)… u(123)} is encoded with the ¼ rate convolutional code defined by the following polynomials:

G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6

G5/G6 = 1 + D + D4 + D6 / 1 + D + D2 + D3 + D4 + D6

G6/G6 = 1

G6/G6 = 1

resulting in 520 coded bits, {C(0)… C(519)} defined by:

r(k) = u(k) + r(k-1) + r(k-2) + r(k-3) + r(k-4) + r(k-6)

C(4k) = r(k) + r(k-2) + r(k-3) + r(k-5) + r(k-6)

C(4k+1) = r(k) + r(k-1) + r(k-4) + r(k-6)

C(4k+2) = u(k)

C(4k+3) = u(k)

for k = 0, 1, …, 123; r(k) = 0 for k<0

and (for termination of the coder):

r(k) = 0

C(4k) = r(k)+r(k-2) + r(k-3) + r(k-5) + r(k-6)

C(4k+1) = r(k)+r(k-1)+r(k-4)+r(k-6)

C(4k+2) = r(k-1)+r(k-2)+ r(k-3)+r(k-4)+r(k-6)

C(4k+3) = r(k-1)+r(k-2)+ r(k-3)+r(k-4)+r(k-6)

for k = 124, 125, …, 129

The code is punctured in such a way that the following 72 coded bits:

C(0), C(1), C(3), C(5), C(7), C(11), C(15), C(31), C(47), C(63), C(79), C(95), C(111), C(127), C(143), C(159), C(175), C(191), C(207), C(223), C(239), C(255), C(271), C(287), C(303), C(319), C(327), C(331), C(335), C(343), C(347), C(351), C(359), C(363), C(367), C(375), C(379), C(383), C(391), C(395), C(399), C(407), C(411), C(415), C(423), C(427), C(431), C(439), C(443), C(447), C(455), C(459), C(463), C(467), C(471), C(475), C(479), C(483), C(487), C(491), C(495), C(499), C(503), C(507), C(509), C(511), C(512), C(513), C(515), C(516), C(517) and C(519)

are not transmitted. The result is a block of 448 coded and punctured bits, P(0)…P(447) which are appended to the in-band bits in c as

c(8+k) = P(k) for k = 0, 1, …, 447.

TCH/AFS5.15:

The block of 109 bits {u(0)… u(108)} is encoded with the 1/5 rate convolutional code defined by the following polynomials:

G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4

G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4

G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4

G3/G3 = 1

G3/G3 = 1

resulting in 565 coded bits, {C(0)… C(564)} defined by:

r(k) = u(k) + r(k-1) + r(k-2) + r(k-3) + r(k-4)

C(5k) = r(k) + r(k-1) + r(k-3) + r(k-4)

C(5k+1) = r(k) + r(k-1) + r(k-3) + r(k-4)

C(5k+2) = r(k)+r(k-2)+r(k-4)

C(5k+3) = u(k)

C(5k+4) = u(k)

for k = 0, 1, …, 108; r(k) = 0 for k<0

and (for termination of the coder):

r(k) = 0

C(5k) = r(k)+r(k-1) + r(k-3) + r(k-4)

C(5k+1) = r(k)+r(k-1) + r(k-3) + r(k-4)

C(5k+2) = r(k)+r(k-2)+r(k-4)

C(5k+3) = r(k-1)+r(k-2)+r(k-3)+r(k-4)

C(5k+4) = r(k-1)+r(k-2)+r(k-3)+r(k-4) for k = 109, 110, …, 112

The code is punctured in such a way that the following 117 coded bits:

C(0), C(C(4), C(5), C(9), C(10), C(14), C(15), C(20), C(25), C(30), C(35), C(40), C(50), C(60), C(70), C(80), C(90), C(100), C(110), C(120), C(130), C(140), C(150), C(160), C(170), C(180),C(190), C(200), C(210), C(220), C(230), C(240), C(250), C(260), C(270), C(280),C(290), C(300), C(310), C(315), C(320), C(325), C(330), C(334), C(335), C(340), C(344), C(345), C(350), C(354), C(355), C(360), C(364), C(365), C(370), C(374), C(375), C(380), C(384), C(385), C(390), C(394), C(395), C(400), C(404), C(405), C(410), C(414), C(415), C(420), C(424), C(425), C(430), C(434), C(435), C(440), C(444), C(445), C(450), C(454), C(455), C(460), C(464), C(465), C(470), C(474), C(475), C(480), C(484), C(485), C(490), C(494), C(495), C(500), C(504), C(505), C(510), C(514), C(515), C(520), C(524), C(525), C(529), C(530), C(534), C(535), C(539), C(540), C(544), C(545), C(549), C(550), C(554), C(555), C(559), C(560) and C(564)

are not transmitted. The result is a block of 448 coded and punctured bits, P(0)…P(447) which are appended to the in-band bits in c as

c(8+k) = P(k) for k = 0, 1, …, 447.

TCH/AFS4.75:

The block of 101 bits {u(0)… u(100)} is encoded with the 1/5 rate convolutional code defined by the following polynomials:

G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6

G4/G6 = 1 + D2 + D3 + D5 + D6 / 1 + D + D2 + D3 + D4 + D6

G5/G6 = 1 + D + D4 + D6 / 1 + D + D2 + D3 + D4 + D6

G6/G6 = 1

G6/G6 = 1

resulting in 535 coded bits, {C(0)… C(534)} defined by:

r(k) = u(k) + r(k-1) + r(k-2) + r(k-3) + r(k-4) + r(k-6)

C(5k) = r(k) + r(k-2) + r(k-3) + r(k-5) + r(k-6)

C(5k+1) = r(k) + r(k-2) + r(k-3) + r(k-5) + r(k-6)

C(5k+2) = r(k) + r(k-1) + r(k-4) + r(k-6)

C(5k+3) = u(k)

C(5k+4) = u(k)

for k = 0, 1, …, 100; r(k) = 0 for k<0

and (for termination of the coder):

r(k) = 0

C(5k) = r(k)+r(k-2) + r(k-3) + r(k-5) + r(k-6)

C(5k+1) = r(k)+r(k-2) + r(k-3) + r(k-5) + r(k-6)

C(5k+2) = r(k)+r(k-1)+r(k-4)+r(k-6)

C(5k+3) = r(k-1)+r(k-2)+ r(k-3)+r(k-4)+r(k-6)

C(5k+4) = r(k-1)+r(k-2)+ r(k-3)+r(k-4)+r(k-6)

for k = 101, 102, …, 106

The code is punctured in such a way that the following 87 coded bits:

C(0), C(1), C(2), C(4), C(5), C(7), C(9), C(15), C(25), C(35), C(45), C(55), C(65), C(75), C(85), C(95), C(105), C(115), C(125), C(135), C(145), C(155), C(165), C(175), C(185), C(195), C(205), C(215), C(225), C(235), C(245), C(255), C(265), C(275), C(285), C(295), C(305), C(315), C(325), C(335), C(345), C(355), C(365), C(375), C(385), C(395), C(400), C(405), C(410), C(415), C(420), C(425), C(430), C(435), C(440), C(445), C(450), C(455), C(459), C(460), C(465), C(470), C(475), C(479), C(480), C(485), C(490), C(495), C(499), C(500), C(505), C(509), C(510), C(515), C(517), C(519), C(520), C(522), C(524), C(525), C(526), C(527), C(529), C(530), C(531), C(532) and C(534)

are not transmitted. The result is a block of 448 coded and punctured bits, P(0)…P(447) which are appended to the inband bits in c as

c(8+k) = P(k) for k = 0, 1, …, 447.

3.9.4.5 Interleaving

The interleaving is done as specified for the TCH/FS in subclause 3.1.3.

3.9.4.6 Mapping on a Burst

The mapping is done as specified for the TCH/FS in subclause 3.1.4.

3.9.5 RATSCCH

The RATSCCH message consists of 35 bits. Also delivered are two in-band channels, id0(0,1) and id1(0,1), id0 corresponding to Mode Commands or Mode Requests and id1 to Mode Indication. The general coding is as: the two in-band data channels are coded to 16 bits each, a 14-bit CRC is added to the 35 RATSCCH bits which are then coded by a rate ¼ RSC coder to 212 bits. Finally a 212 bit identification field is added thereby giving a total size of 456 bits. These 456 bits are then block interleaved in the same way as a normal speech frame.

3.9.5.1 Coding of in-band data

The two in-band data fields, id0(0,1) and id1(0,1), are encoded, giving ic0(0..15) and ic1(0..15).

These bits are moved to the coded bits c as:

c(k) = ic1(k) for k = 0,1, …, 15

c(k+228) = ic0(k) for k = 0, 1, …, 15

3.9.5.2 Parity and convolutional encoding for the RATSCCH message

a) Parity bits:

A 14-bit CRC is used for error-detection. These 14 parity bits are generated by the cyclic generator polynomial: g(D) = D14 + D13 + D5 + D3 + D2 +1 from the 35 comfort noise parameter bits. The encoding of the cyclic code is performed in a systematic form, which means that, in GF(2), the polynomial:

d(0)D(48) + d(1)D(47) +… + d(34)D(14) + p(0)D(13) +…+ p(12)D+ p(13)

where p(0), p(1) … p(13) are the parity bits, when divided by g(D), yields a remainder equal to 1+ D + D2 + D3 + D4 + D5 + D6 + D7 + D8 + D9 + D10 + D11 + D12+ D13

The information and parity bits are merged:

u(k) = d(k) for k = 0, 1, …, 34

u(k) = p(k-35) for k = 35, 36, …, 48

b) Convolutional encoder

The comfort noise parameters with parity and tail bits (u(0..48)) are encoded with the ¼ rate

convolutional code defined by the polynomials:

G1/G3 = 1 + D + D3 + D4 / 1 + D + D2 + D3 + D4

G2/G3 = 1 + D2 + D4 / 1 + D + D2 + D3 + D4

G3/G3 = 1

G3/G3 = 1

resulting in 212 coded bits, {C(0)… C(211)} defined by:

r(k) = u(k) + r(k-1) + r(k-2) + r(k-3) + r(k-4)

C(4k) = r(k) + r(k-1) + r(k-3) + r(k-4)

C(4k+1) = r(k)+r(k-2)+r(k-4)

C(4k+2) = u(k)

C(4k+3) = u(k) for k = 0, 1, …, 48; r(k) = 0 for k<0

and (for termination of the coder):

r(k) = 0

C(4k) = r(k)+r(k-1) + r(k-3) + r(k-4)

C(4k+1) = r(k)+r(k-2)+r(k-4)

C(4k+2) = r(k-1)+r(k-2)+r(k-3)+r(k-4)

C(4k+3) = r(k-1)+r(k-2)+r(k-3)+r(k-4) for k = 49, 50, …, 52

This block of data is moved to the coded data (c) as:

c(k+244) = C(k) for k = 0, 1, …, 211

3.9.5.3 Identification marker

The identification marker, IM(0..211), is constructed by repeating the following 11-bit sequence: { 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1 } 20 times and then discarding the last 8 bits. This block of data is moved to the coded data (c) as:

c(k+16) = IM(k) for k = 0, 1, .., 211

3.9.5.4 Interleaving

The interleaving is done as specified for the TCH/FS in subclause 3.1.3.

3.9.5.5 Mapping on a Burst

The mapping is done as specified for the TCH/FS in subclause 3.1.4.