3.11 Data channel for ECSD at full rate, 29.0 kbit/s radio interface rate (28.8 kbit/s services (E-TCH/F28.8))
3GPP45.003GSM/EDGE Channel codingRelease 17TS
The definition of a 28.8 kbit/s radio interface rate data flow for data services is given in 3GPP TS 44.021.
3.11.1 Interface with user unit
The user unit delivers to the encoder a bit stream organized in blocks of 580 information bits (data frames) every 20 ms.
3.11.2 Block code
3.11.2.1 Repetition bits
To match to RS alphabet 4 extra data bits are added to the end of each block of 580 bits: d(k)=0, k=580,…583.
3.11.2.2 Reed Solomon encoder
The block of 584 information bits is encoded by shortened systematic Reed Solomon (RS) code over Galois field GF(28). The Galois field GF(28) is built as an extension of GF(2). The characteristic of GF(28) is equal to 2.
The code used is systematic RS8 (85,73), which is shortened systematic RS8(255,243) code over GF(28) with the primitive polynomial p(x)=x8+x4+x3+x2+1. The primitive element a is the root of the primitive polynomial, i.e.
a8 = a4 + a3 + a2 + 1.
Generator polynomial for RS8(255,243) code is:
g(x)=; that results in symmetrical form for the generator polynomial with coefficients given in decimal notation
g(x)= x12 +18x11 + 157x10 + 162x9 + 134x8 + 157x7 + 253x6 + 157x5 + 134x4 + 162x3 + 157x2 + 18x + 1
where binary presentation of polynomial coefficients in GF(256) is {a7, a6, a5, a4, a3, a2, a, 1}.
Specifically, decimal, power and polynomial presentations for the generator polynomial coefficients are the following:
x12: 1
x11: 18 = a224 = a4 + a
x10: 157 = a32 = a7 + a4 + a3 + a2 + 1
x9: 162 = a209 = a7 + a5 + a
x8: 134 = a99 = a7 + a2 + a
x7: 157 = a32 = a7 + a4 + a3 + a2 + 1
x6: 253 = a80 = a7 + a6 + a5 + a4 + a3 + a2 + 1
x5: 157 = a32 = a7 + a4 + a3 + a2 + 1
x4: 134 = a99 = a7 + a2 + a
x3: 162 =a209 = a7 + a5 +a
x2: 157 =a32 = a7 + a4 + a3 + a2 + 1
x1: 18 = a224 = a4 + a
x0: 1= a255 = 1
The RS encoding is performed in the following three steps:
a) Bit to symbol conversion
The information bits {d(0),d(1),…,d(583)} are converted into 73 information 8-bit symbols {D(0),…,D(72)} as the following:
D(k) = 128d(8k+7) + 64d(8k+6) + 32d(8k+5) + 16d(8k+4) + 8d(8k+3) + 4d(8k+2) + 2d(8k+1) + d(8k)
for k = 0,1,…,72
Resulting 8-bit symbols are presented as
D(k) = {d(8k+7), d(8k+6), d(8k+5), d(8k+4), d(8k+3), d(8k+2), d(8k+1), d(8k)} for k = 0,1,…,72
where d(8k+7),…,d(8k) are ordered from the most significant bit (MSB) to the less significant bit (LSB).
The polynomial representation of a single information symbol over GF(28) in terms of a is given by
Da(k) = a7d(8k+7) + a6d(8k+6) + a5d(8k+5) + a4d(8k+4) + a3d(8k+3) + a2d(8k+2) + ad(8k+1) + d(8k)
b) Encoding
The information symbols D(0)…D(72) are encoded by shortened systematic RS8(85,73) code with output symbols U(0)…U(84) ordered as
U(k)=D(k) for k=0,1,..72; U(k)=R(k) for k=73,74,…,84;
where R(k) are parity check symbols added by RS8(85,73) encoder.
Information symbols are ordered in the descending polynomial order such that Da (72) corresponds to the lowest
degree term of D(x) = Da(72) + Da (71)x + …+ Da (1)x71 + Da (0)x72, where D(x) is the polynomial representation of
information symbols {D(0),D(1),…,D(72)} over Galois field .
Parity check symbols in polynomial representation over Galois field are ordered in the descending polynomial order such that Ra(84) corresponds to the lowest degree of R(x)=Ra(84) + Ra(83)x + … + Ra(74)x10 + Ra(73)x11. The parity check symbols are calculated as R(x) = remainder [x12 D(x)/g(x)], and U(x) = R(x) + x12 D(x), i.e.,
Ua(k) = Da(k) for k=0,1,..72; Ua(k) = Ra(k) for k=73,74,…,84.
The encoding operation with the shortened RS8(85,73) code may be presented as the following:
– Expanding 73 information symbols to the block of 243 symbols by adding 170 dump (zero) symbols
– Encoding 243 symbols by systematic RS8(255,243) encoder with outer block of 255 symbols
– Removing 170 dump symbols, resulting in the output block of 85 symbols.
c) Symbol to bit conversion
The output symbols {Ua(0),…,Ua(84)}are converted back into symbols {U(0),…,U(84)} and then back into binary form with LSB coming out first, resulting in the block of 680 bits {u(0),…u(679)}.
3.11.3 Convolutional encoder
3.11.3.1 Tailing bits for a data frame
Before convolutional encoding 6 tail bits {u(k)=0, k=680,…685}are added to the end of each data block .
3.11.3.2 Convolutional encoding for a data frame
This block of 686 bits {u(0),…,u(685)} is encoded with the ½ rate convolutional code defined by the following polynomials:
G4 = 1 + D2 + D3 + D5 + D6
G7 = 1 + D + D2 + D3 + D6
resulting in 1372 coded bits {c(0), c(1),…, c(1371)} with
c(2k)= u(k)+u(k‑2)+u(k‑3)+ u(k‑5)+u(k‑6);
c(2k+1)= u(k)+u(k‑1)+ u(k‑2)+ u(k‑3)+ u(k‑6) for k = 0,1,…,685; u(k) = 0 for k<0
The code is punctured in such a way that the following 4 coded bits:
c(363), c(723), c(1083) and c(1299) are not transmitted.
The result is a block of 1368 coded bits, {c(0),c(1),…, c(1367)}.
3.11.4 Interleaving
The interleaving scheme is presented below.
The coded bits are reordered and interleaved according to the following rule:
i(B,j) = c(n,k), for k = 0,1,…,1367
n = 0,1,…,N,N+1,…
B = B0 + 4n + (k mod 19) + (k div 342)
j = (k mod 19) + 19(k mod 18)
The result of the interleaving is a distribution of the reordered 342 bit of a given data block, n = N, over 19 blocks, 18 bits equally distributed in each block, in a diagonal way over consecutive blocks.
Or in other words the interleaving is a distribution of the encoded, reordered 1368 bits from four given input data blocks, which taken together give n = N, over 22 bursts, 18 bits equally distributed in the first and 22nd bursts, 36 bits distributed in the second and 21st bursts, 54 bits distributed in the third and 20th bursts and 72 bits distributed in the other 16 bursts.
The block of coded data is interleaved "diagonal", where a new block of coded data starts with every fourth burst and is distributed over 22 bursts.
3.11.5 Mapping on a Burst
Before mapping on a burst the interleaved bits {i(0)…i(1367)} are converted into 3-bit symbols {I(0),I(1), …,I(455)} according to Table 1 in 3GPP TS 45.004, the symbol I(k) depends on i(3k+2), i(3k+1) and i(3k) for k=0,1,…,455.
The E-IACCH message delivered to the encoder on every 20ms has a fixed size of 3 information bits {im(0), im(1), im(2)}. The contents of the bits are defined in 3GPP TS 45.008 for both uplink and downlink.
The E-IACCH information bits {im(n,0),im(n,1),im(n,2)} are coded into 24 bits
ib(B,k), B0 + 4n B < B0 + 4n + 4, k = 0,1,…5 according to the following table:
|
im(n,0),im(n,1),im(n,2) |
ib(B0+4n,0),…,ib(B0+4n,5),…, ib(B0+4n+3,0),…,ib(B0+4n+3,5) |
|
000 |
000000 000000 000000 000000 |
|
001 |
001111 110100 100101 110100 |
|
010 |
011100 010111 111001 100011 |
|
011 |
010011 100011 011100 010111 |
|
100 |
100110 011001 110110 001101 |
|
101 |
101001 101101 010011 111001 |
|
110 |
111010 001110 001111 101110 |
|
111 |
110101 111010 101010 011010 |
Before mapping on a burst the E-IACCH bits {ib(B,0)…ib(B,5)} are converted into 3-bit symbols
{HL(B),HU(B)} according to Table 1 in 3GPP TS 45.004. The symbol HL(B) depends on ib(B,2), ib(B,1) and ib(B,0) and ,
the symbol HU(B) on ib(B,5), ib(B,4) and ib(B,3).
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) and E(B,58) = HU(B).
The two symbols, labelled HL(B) and HU(B) on burst number B are flags used for E-IACCH.