5.1a.12 Packet data block type 23 (UBS-9)
3GPP45.003GSM/EDGE Channel codingRelease 17TS
5.1a.12.1 Block constitution
If the message delivered to the encoder does not include a PAN, it has a fixed size of 1402 information bits {d(0),d(1),…,d(1401)}. If the message delivered to the encoder includes a PAN, it has a fixed size of 1427 information bits {d(0),d(1),…,d(1426).
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,…,51
i1(k-52) = d(k) for k = 52,…,501
i2(k-502) = d(k) for k = 502,…,951
i3(k-952) = d(k) for k = 952,…,1401
And if a PAN is included:
pn(k-1402) = d(k) for k = 1402,…,1426
5.1a.12.2 Header coding
The header {h(0),…,h(51)} is coded as defined in subclause 5.1a.1.1, with N=52, resulting in a block of 180 bits, {C(0),…,C(179)}.
Some bits of the code are repeated in the following way:
hc(k) = C(k) for k = 0, 1, … 179 and
hc(180) = C(8), hc(181) = C(53), hc(182) = C(98), hc(183) = C(143)
This results in a block of 184 bits, {hc(0),…,hc(183)}.
5.1a.12.3 Data coding
Each data part, {i1(0),…,i1(449)}, {i2(0),…,i2(449)} and {i3(0),…,i3(449)}, is coded as defined in subclause 5.1a.1.2, with N=450, resulting in three coded blocks of 1404 bits, {C1(0),…,C1(1403)}, {C2(0),…,C2(1403)} and {C3(0),…,C3(1403)}.
Each coded block is punctured depending on the value of the CPS field as defined in 3GPP TS 44.060. Three puncturing schemes named P1, P2 or P3 are applied in such a way that the following coded bits are punctured:
|
Always punctured |
Punctured only if a PAN is included |
|
|
P1 |
C(21*k+j) for k=0,…,65, j=2, 4, 5, 7, 8, 10, 13, 14, 16, 18 and 20; and C(21*66+j) for j=2, 4, 5, 7, 8, 10, 13, 14 and 16, except C(21*k+7) for k=16, 33 and 50 that are not punctured |
C(21*k+7) for k=16, 33 and 50; and C(21*k+9) for k=0, 2, 5, 8, 10, 13, 16, 18, 21, 24, 26, 29, 32, 34, 37, 40, 42, 45, 48, 50, 53, 56, 58, 61 and 64 |
|
P2 |
C(21*k+j) for k=0,…,65, j=0, 1, 3, 6, 9, 11, 12, 14, 15, 17 and 19; and C(21*66+j) for j=0, 1, 3, 6, 9, 11, 12, 14, 15 and 17, except C(21*k+17) for k=4, 21, 38 and 55 that are not punctured |
C(21*k+17) for k=4, 21, 38 and 55; and C(21*k+20) for k=0, 3, 6, 8, 11, 14, 16, 19, 22, 24, 27, 30, 32, 35, 38, 41, 43, 46, 49, 51, 54, 57, 59 and 62 |
|
P3 |
C(21*k+j) for k=0,…,65, j=0, 2, 5, 7, 8, 10, 11, 13, 16, 17 and 19; and C(21*66+j) for j=0, 2, 5, 7, 8, 10, 11, 13, 16 and 17, except C(21*k+10) for k=10, 27, 44 and 61 that are not punctured |
C(21*k+10) for k=10, 27, 44 and 61; and C(21*k+12) for k=1, 4, 7, 9, 12, 15, 17, 20, 23, 25, 28, 31, 33, 36, 39, 41, 44, 47, 49, 52, 55, 57, 60 and 63 |
If a PAN is not included, the result is three blocks of 672 bits, {c1(0),…,c1(671)}, {c2(0),…,c2(671)} and {c3(0),…,c3(671)}.
If a PAN is included, the result is three blocks of 644 bits, {c1(0),…,c1(643)}, {c2(0),…,c2(643)} and {c3(0),…,c3(643)}.
NOTE: C1 and c1 correspond to i1, C2 and c2 to i2, and C3 and c3 to i3.
5.1a.12.4 PAN coding
The PAN {pn(0),…,pn(24)}, if included, is coded as defined in subclause 5.1a.1.4, resulting in a block of 90 bits, {C(0),…,C(89)}.
The code is punctured in such a way that the following coded bits:
{C(15*k+5) for k = 0,1,…5} are not transmitted
This results in a block of 84 bits, {ac(0),…,ac(83)}.
5.1a.12.5 Interleaving
a) Header
The header, {hc(0),…,hc(183)}, is interleaved as defined in subclause 5.1a.2.1, with NC=184 and a=33, resulting in a block of 184 bits, {hi(0),…,hi(183)}.
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,…,671
dc(k) = c2(k-672) for k = 672,…,1343
dc(k) = c3(k-1344) for k = 1344,…,2015
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,..,83
dc(k) = c1(k-84) for k = 84,…,727
dc(k) = c2(k-728) for k = 728,…,1371
dc(k) = c3(k-1372) for k = 1372,…,2015
The block {dc(0),…,dc(2015)} is interleaved as defined in subclause 5.1a.2.1, with NC=2016 and a=229, resulting in a block of 2016 bits, {di(0),…,di(2015)}.
5.1a.12.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(504B+j) for j = 0,…,251
e(B,j) = hi(46B+j-252) for j = 252,…,275
e(B,j) = q(2B+j-276) for j = 276,277
e(B,j) = hi(46B+j-254) for j = 278,…,299
e(B,j) = di(504B+j-48) for j = 300,…,551
where
q(0),q(1),…,q(7) = 1,1,1,1,1,1,1,1 identifies the coding scheme UBS-9.
b) Bit swapping
After this mapping the following bits are swapped:
For B = 0,1,2,3,
Swap e(B,228+k) with e(B,254+k) for k=0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20 and 21.
Swap e(B,278+k) with e(B,300+k) for k=0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20 and 21.
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,90) with e(B,40)
Swap e(B,91) with e(B,201)
Swap e(B,182) with e(B,81)
Swap e(B,183) with e(B,160)
Swap e(B,254) with e(B,120)
Swap e(B,255) with e(B,177)
Swap e(B,322) with e(B,500)
Swap e(B,367) with e(B,520)
Swap e(B,414) with e(B,405)
Swap e(B,459) with e(B,340)
Swap e(B,506) with e(B,444)
Swap e(B,551) with e(B,329)
For B = 1
Swap e(B,34) with e(B,160)
Swap e(B,79) with e(B,120)
Swap e(B,126) with e(B,177)
Swap e(B,170) with e(B,81)
Swap e(B,171) with e(B,201)
Swap e(B,310) with e(B,329)
Swap e(B,311) with e(B,405)
Swap e(B,402) with e(B,500)
Swap e(B,403) with e(B,444)
Swap e(B,494) with e(B,368)
Swap e(B,539) with e(B,340)
For B = 2
Swap e(B,22) with e(B,120)
Swap e(B,67) with e(B,0)
Swap e(B,114) with e(B,201)
Swap e(B,159) with e(B,40)
Swap e(B,206) with e(B,177)
Swap e(B,251) with e(B,81)
Swap e(B,278) with e(B,444)
Swap e(B,390) with e(B,329)
Swap e(B,391) with e(B,368)
Swap e(B,482) with e(B,500)
Swap e(B,483) with e(B,405)
For B = 3
Swap e(B,10) with e(B,40)
Swap e(B,11) with e(B,160)
Swap e(B,102) with e(B,81)
Swap e(B,103) with e(B,177)
Swap e(B,194) with e(B,120)
Swap e(B,239) with e(B,0)
Swap e(B,266) with e(B,201)
Swap e(B,334) with e(B,405)
Swap e(B,379) with e(B,500)
Swap e(B,426) with e(B,444)
Swap e(B,470) with e(B,329)
Swap e(B,471) with e(B,368)