5.1a.10 Packet data block type 21 (UBS-7)
3GPP45.003GSM/EDGE Channel codingRelease 17TS
5.1a.10.1 Block constitution
If the message delivered to the encoder does not include a PAN, it has a fixed size of 940 information bits {d(0),d(1),…,d(939)}. If the message delivered to the encoder includes a PAN, it has a fixed size of 965 information bits {d(0),d(1),…,d(964).
NOTE: The presence of the PAN is indicated by the PANI field in the header (see 3GPP TS 44.060).
The message is separated into the following parts:
h(k) = d(k) for k = 0,…,39
i1(k-40) = d(k) for k = 40,…,489
i2(k-490) = d(k) for k = 490,…,939
And if a PAN is included:
pn(k-940) = d(k) for k = 940,…,959+lt
5.1a.10.2 Header coding
The header {h(0),…,h(39)} is coded as defined in subclause 5.1a.1.1, with N=40, resulting in a block of 144 bits, {C(0),…,C(143)}.
No puncturing is applied. The coded header is defined as:
hc(k) = C(k) for k = 0,…,143.
5.1a.10.3 Data coding
Each data part, {i1(0),…,i1(449)} and {i2(0),…,i2(449)}, is coded as defined in subclause 5.1a.1.2, with N=450, resulting in two coded blocks of 1404 bits, {C1(0),…,C1(1403)} and {C2(0),…,C2(1403)}.
Each coded block is punctured depending on the value of the CPS field as defined in 3GPP TS 44.060. Two puncturing schemes named P1 or P2 are applied in such a way that the following coded bits are punctured:
|
Always punctured |
Punctured only if a PAN is included |
|
|
P1 |
C(33*k+j) for k=0,…,41, j=4, 8, 10, 14, 20, 23, 25, 29 and 30; and C(33*42+j) for j=4, 8, 10 and 14, except C(33*k+20) for k=6, 12, 18, 24, 30 and 36 that are not punctured |
C(33*k+20) for k=6, 12, 18, 24, 30 and 36; and C(33*k+18) for k=0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 40 and 41 |
|
P2 |
C(33*k+j) for k=0,…,41, j=2, 5, 7, 12, 17, 19, 24, 26 and 28; and C(33*42+j) for j=2, 5, 7, 12 and 17, except C(33*k+26) for k=3, 9, 15, 21, 27, 33 and 39 that are not punctured |
C(33*k+26) for k=3, 9, 15, 21, 27, 33 and 39; and C(33*k+13) for k=0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 33, 34, 35, 36, 38, 39 and 40 |
If a PAN is not included, the result is two blocks of 1028 bits, {c1(0),…,c1(1027)} and {c2(0),…,c2(1027)}.
If a PAN is included, the result is two blocks of 988 bits, {c1(0),…,c1(987)} and {c2(0),…,c2(987)}.
NOTE: C1 and c1 correspond to i1, and C2 and c2 to i2.
5.1a.10.4 PAN coding
The PAN coding is the same as for UBS-5 as specified in subclause 5.1a.8.4.
5.1a.10.5 Interleaving
a) Header
The header, {hc(0),…,hc(143)}, is interleaved as defined in subclause 5.1a.2.1, with NC=144 and a=29, resulting in a block of 144 bits, {hi(0),…,hi(143)}.
b) Data and PAN
If a PAN is not included, data are put together as one entity as described by the following rule:
dc(k) = c1(k) for k = 0,…,1027
dc(k) = c2(k-1028) for k = 1028,…,2055
If a PAN is included, data and PAN are put together as one entity as described by the following rule:
dc(k) = ac(k) for k = 0,…,79
dc(k) = c1(k-80) for k = 80,…,1067
dc(k) = c2(k-1068) for k = 1068,…,2055
The block {dc(0),…,dc(2055)} is interleaved as defined in subclause 5.1a.2.1, with NC=2056 and a=403, resulting in a block of 2056 bits, {di(0),…,di(2055)}.
5.1a.10.6 Mapping on a burst
a) Straightforward Mapping
The mapping is given by the rule:
For B=0,1,2,3, let
e(B,j) = di(514B+j) for j = 0,…,257
e(B,j) = hi(36B+j-258) for j = 258,…,275
e(B,j) = q(2B+j-276) for j = 276,277
e(B,j) = hi(36B+j-260) for j = 278,…,295
e(B,j) = di(514B+j-38) for j = 296,…,551
where
q(0),q(1),…,q(7) = 0,0,0,0,0,0,0,0 identifies the coding scheme UBS-7 or UBS-8.
b) Bit swapping
After this mapping the following bits are swapped:
For B = 0,1,2,3,
Swap e(B,240+k) with e(B,258+k) for k=0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 38, 39, 42, 43, 46, 47, 50, 51, 54 and 55.
c) PAN bit swapping
In case a PAN is included in the radio block, the following additional bits are swapped after the bit swapping in b):
For B = 0
Swap e(B,58) with e(B,81)
Swap e(B,70) with e(B,177)
Swap e(B,99) with e(B,120)
Swap e(B,210) with e(B,201)
Swap e(B,251) with e(B,160)
Swap e(B,318) with e(B,321)
Swap e(B,330) with e(B,444)
Swap e(B,359) with e(B,500)
Swap e(B,470) with e(B,368)
Swap e(B,499) with e(B,340)
Swap e(B,511) with e(B,405)
For B = 1
Swap e(B,102) with e(B,201)
Swap e(B,131) with e(B,81)
Swap e(B,143) with e(B,160)
Swap e(B,242) with e(B,120)
Swap e(B,254) with e(B,177)
Swap e(B,362) with e(B,368)
Swap e(B,391) with e(B,520)
Swap e(B,403) with e(B,405)
Swap e(B,502) with e(B,340)
Swap e(B,514) with e(B,444)
Swap e(B,543) with e(B,500)
For B = 2
Swap e(B,23) with e(B,0)
Swap e(B,35) with e(B,201)
Swap e(B,134) with e(B,40)
Swap e(B,146) with e(B,160)
Swap e(B,175) with e(B,120)
Swap e(B,263) with e(B,81)
Swap e(B,275) with e(B,177)
Swap e(B,394) with e(B,500)
Swap e(B,406) with e(B,444)
Swap e(B,435) with e(B,368)
Swap e(B,546) with e(B,405)
For B = 3
Swap e(B,26) with e(B,40)
Swap e(B,38) with e(B,177)
Swap e(B,67) with e(B,120)
Swap e(B,178) with e(B,201)
Swap e(B,207) with e(B,0)
Swap e(B,219) with e(B,160)
Swap e(B,266) with e(B,81)
Swap e(B,327) with e(B,500)
Swap e(B,438) with e(B,405)
Swap e(B,467) with e(B,321)
Swap e(B,479) with e(B,444)