WCDMA3G_CCTrCHRMatch
Description: Rate matching from transport channels to CCTrCH
Library: 3GPPFDD 10-99, Transport Channel Multiplex
Class: SDFWCDMA3G_CCTrCHRMatch
Parameters
Name | Description | Default | Sym | Type | Range |
---|---|---|---|---|---|
LinkDir | link direction: Downlink, Uplink | Downlink | enum | ||
TrCHPosInCCTrCH | type of transport channel position in one frame of CCTrCH: Fixed, Flexible | Fixed | enum | ||
TTI | transmission time interval: TTI_10ms, TTI_20ms, TTI_40ms, TTI_80ms | TTI_10ms | enum | ||
PhyCHNum | number of physical channels that CCTrCH is mapped to | 1 | Np | int | [1, ∞) |
DL_PhyCHType | downlink physical channel type: DPCH_15kbps_TF0_T2_P4, DPCH_15kbps_TF2_T2_P4, DPCH_30kbps_TF0_T2_P2, DPCH_30kbps_TF2_T2_P2, DPCH_30kbps_TF0_T2_P4, DPCH_30kbps_TF2_T2_P4, DPCH_30kbps_TF0_T2_P8, DPCH_30kbps_TF2_T2_P8, DPCH_60kbps_TF0_T2_P4, DPCH_60kbps_TF2_T2_P4, DPCH_60kbps_TF0_T2_P8, DPCH_60kbps_TF2_T2_P8, DPCH_120kbps_TF8_T4_P8, DPCH_120kbps_TF0_T4_P8, DPCH_240kbps_TF8_T4_P8, DPCH_240kbps_TF0_T4_P8, DPCH_480kbps_TF8_T8_P16, DPCH_480kbps_TF0_T8_P16, DPCH_960kbps_TF8_T8_P16, DPCH_960kbps_TF0_T8_P16, DPCH_1920kbps_TF8_T8_P16, DPCH_1920kbps_TF0_T8_P16, PCCPCH | DPCH_30kbps_TF2_T2_P8 | enum | † | |
UL_DPDCHType | uplink dedicated physical data channel type: DPDCH_15kbps, DPDCH_30kbps, DPDCH_60kbps, DPDCH_120kbps, DPDCH_240kbps, DPDCH_480kbps, DPDCH_960kbps | DPDCH_30kbps | enum | ||
TrCHNum | number of transport channels to be multiplexed in one CCTrCH | 1 | Nt | int | [1, ∞) |
TrCHNo | current transport channel order number | 0 | int | [0, Nt-1]] | |
TrCHType | transport channel type corresponding to maximum bit rate of current transport channel: DCH_8_kbps, DCH_16_kbps, DCH_32_kbps, DCH_64_kbps, DCH_128_kbps, DCH_256_kbps, DCH_512_kbps, DMCH_2_4_kbps, DMCH_12_2_kbps, DMCH_64_kbps, DMCH_144_kbps, DMCH_384_kbps, DMCH_2048_kbps, BCH_11_1_kbps, BCH_12_3_kbps | DCH_8_kbps | enum | ||
RM | semi-static rate matching attribute for all transport channels | 1 | real array | [0, ∞) | |
OptimisticTrCHSizes | set of transport channel frame sizes for flexible downlink transport channel positions | 0 | real array | [0, ∞) | |
† where TF n = number of transmit format indicator bits T n = number of transmit power control bits P n = number of pilot bits F n = number of feedback indicator bits |
Pin Inputs
Pin |
Name |
Description |
Signal Type |
---|---|---|---|
1 |
TFMax |
maximum TF of each transport channel |
int |
2 |
in |
input data of current transport channel |
int |
3 |
TFCI |
transport format combination indicator |
int |
Pin Outputs
Pin |
Name |
Description |
Signal Type |
---|---|---|---|
4 |
out |
output data after rate matching |
int |
5 |
outSize |
output data size after rate matching |
int |
Notes/Equations
- This model is used to implement transport channel rate matching. The bit number of current transport channel data is changed to the bit number required by the relevant coded composite transport channel (CCTrCH). Discontinuous transmission indicators are inserted with fixed transport channel positions in downlinks.
Each firing:
Refer to the following tables for the values of T, S, and Mp.- for downlinks, Mp × Np × T tokens of out and one token of outSize are produced when T × Nt tokens of TFMax, T tokens of TFCI and S tokens of in are consumed
- for uplinks, Mp × Np tokens of out and one token of outSize are produced when Nt tokens of TFMax, one token of TFCI and S tokens of in are consumed.
T Values
TTI
Frame Number in TTI (T)
TTI_10 ms
1
TTI_20 ms
2
TTI_40 ms
4
TTI_80 ms
8
Values
TrCHType TF TTI Downlink Input Data Size (S) Uplink Input Data Size (S) DCH_8_kbps 0 10 ms 96 312 1 20 ms 176 276 2 40 ms 336 258 3 80 ms 656 252 DCH_16_kbps 4 10 ms 368 552 5 20 ms 688 516 6 40 ms 1344 504 7 80 ms 2640 495 DCH_32_kbps 8 10 ms 688 1032 9 20 ms 1344 1008 10 40 ms 2640 990 11 80 ms 5256 986 DCH_64_kbps 12 10 ms 1980 1980 13 20 ms 3900 1950 14 40 ms 7740 1935 15 80 ms 77162 1929 DCH_128_kbps 16 10 ms 3900 3900 17 20 ms 7740 3870 18 40 ms 77402 3858 19 80 ms 102693 3851 DCH_256_kbps 20 10 ms 7740 7740 21 20 ms 77402 7716 22 40 ms 102693 7702 23 80 ms 123125 7695 DCH_512_kbps 24 10 ms 77402 15432 25 20 ms 102693 15404 26 40 ms 123125 15390 27 80 ms 136719 15380 DMCH_2_4_kbps 2 40 ms 360 90 DMCH_12_2_kbps 5 20 ms 804 402 DMCH_64_kbps 9 20 ms 3900 1950 DMCH_144_kbps 13 20 ms 8700 4350 DMCH_384_kbps 17 20 ms 115562 11556 DMCH_2048_kbps 21 20 ms 61520 BCH_11_1_kbps 0 10 ms 270 BCH_12_3_kbps 5 20 ms 2702
Mp Values
Physical Channel Type Bits per Frame (Mp) DL_PhyCHType DPCH_15kbps_TF0_T2_P4 60 DPCH_15kbps_TF2_T2_P4 30 DPCH_30kbps_TF0_T2_P2 240 DPCH_30kbps_TF2_T2_P2 210 DPCH_30kbps_TF0_T2_P4 210 DPCH_30kbps_TF2_T2_P4 180 DPCH_30kbps_TF0_T2_P8 150 DPCH_30kbps_TF2_T2_P8 120 DPCH_60kbps_TF0_T2_P4 510 DPCH_60kbps_TF2_T2_P4 480 DPCH_60kbps_TF0_T2_P8 450 DPCH_60kbps_TF2_T2_P8 420 DPCH_120kbps_TF8_T4_P8 900 DPCH_120kbps_TF0_T4_P8 900 DPCH_240kbps_TF8_T4_P8 2100 DPCH_240kbps_TF0_T4_P8 2100 DPCH_480kbps_TF8_T8_P16 4320 DPCH_480kbps_TF0_T8_P16 4320 DPCH_960kbps_TF8_T8_P16 9120 DPCH_960kbps_TF0_T8_P16 9120 DPCH_1920kbps_TF8_T8_P16 18720 DPCH_1920kbps_TF0_T8_P16 18720 PCCPCH 270 UL_DPDCHType DPDCH_15kbps 150 DPDCH_30kbps 300 DPDCH_60kbps 600 DPDCH_120kbps 1200 DPDCH_240kbps 2400 DPDCH_480kbps 4800 DPDCH_960kbps 9600 - Model functions
In rate matching, bits on a transport channel are repeated or punctured. Higher layers assign a rate-matching attribute for each transport channel.
Notations are:
TrCHType responds to the maximum possible bit rate of current transport channel. According to S Values, it and TTI determine the input buffer size at pin in. Because variable rate source, the data rate of each transport channel can change from one TTI to another. From input TFCI, the current TF values of all transport channels can be obtained. RMi can be set through the parameter RM. Fi of the current transport channel is T.Nij for uplink, number of bits in a radio frame before rate matching on transport channel i with transport format combination j; for downlink, an intermediate calculation variable.
NilTTI (used in downlink only) number of bits in a transmission time interval before rate matching on transport channel i with transport format l.
ΔNij for uplink, if positive, number of bits to be repeated in each radio frame on transport channel i with transport format combination j;
for uplink, if negative, number of bits to be punctured in each radio frame on transport channel i with transport format combination j.
for downlink, an intermediate calculation variable.
ΔNilTTI (used in downlink only) if positive, number of bits to be repeated in each transmission time interval on transport channel i with transport format l; if negative, number of bits to be punctured in each transmission time interval on transport channel i with transport format l.
RMi semi-static rate matching attribute for transport channel i; signalled from higher layers.
Ndata,j total number of bits available for the CCTrCH in a radio frame with transport format combination j.
Zij intermediate calculation variable.
Fi no. of radio frames in transmission time interval of transport channel i.
ni radio frame number in transmission time interval of transport channel i (0 ≤ ni ≤ Fi).
q (used in uplink only) average puncturing distance.
IF (ni ) (used in uplink only) inverse interleaving function of first interleaver.
S(ni) (used in uplink only) shift of puncturing pattern for radio frame ni
TFi (j) transport format of transport channel i for format combination j.
TFS(i) set of transport format indices l for transport channel i.
TFCS set of transport format combination indices j.
N input data length in rate matching pattern dermination algorithm.
eini initial value of variable e in rate matching pattern determination algorithm.
eplus increment of variable e in rate matching pattern determination algorithm.
eminus decrement of variable e in rate matching pattern determination algorithm.
X systematic bit in turbo code.
Y first parity bit in turbo code.
Y′ second parity bit in turbo code.
round toward +∞, that is, integer such that
round toward -∞, that is, integer such that
absolute value of x
The o notation is used to replace an index x when the indexed variable Xx does not depend on the index x. In the left wing of an assignment the meaning is that "Xo = Y" is equivalent to "for all x do Xx = Y".
Function RMatch_deltasize( ) is used to calculate the rate matching parameters deltasize saved in the array deltaSizeP. There are TrCHNum ( equal to Nt) transport channels with RM values saved in the array RMP. Sizes of all transport channels Nij are stored in the array TrCHFrameSizeP. These transport channels will be rate matched into one frame of CCTrCH with CCTrCHSize equal to Mp *Np.
RMatch_deltasize (TrCHFrameSizeP, deltaSizeP, RMP, TrCHNum, CCTrCHSize)
for each
do
end for
for each
do tmpSum += RMP[i] * TrCHFrameSizeP[i]
end for - Determining rate matching parameters in downlink
BCH is mapped to PCCPCH. From the S Values and Mp Values tables, one frame data size of BCH is equal to that of PCCPCH. So for BCH, ΔNij = 0. Rate matching algorithm of Note 6 is not needed.
Function DnLk_RM_Parameters( ) is used to determine the downlink rate matching parameters used in the function RMatch_Algorithm( ) in Note 6: N, e ini, e plus, e minus. For downlink, Ndata,j does not depend on the transport format combination j and denoted as Ndata,o; it is determined by channelization code(s) and equal to Mp × Np in this model. After rate matching, the data size of the current transport channel in TTI is output at pin outSize. The current data size of each transport channel N ilTTI is based on its TF and TTI values as shown in the S Values table. The maximum data size of each transport channel i for downlink is determined by its maximum TF value from input TFMax according to the S Values table. is derived from function RMatch_deltasize( ).
DnLk_RM_Parameters (TFMax, Ndata,o, Fi, NilTTI, N, eini, eplus, eminus)
if for fixed positions of transport channels
else // for flexible positions of transport channelsthen
// an intermediate calculation variable Ni,o, determined by TFMax and Fi
Δ Ni,o is calculated by calling function RMatch_deltasize( ) (input parameter TrCHFrameSizeP is based on Ni,o).
if ΔNi,oTTI = 0
then for transport channel i, the output data of the rate matching is the same as the input data and the rate matching algorithm of Note 6 does not need to be executed.
else
if for convolutional codes or ΔNi,oTTI > 0 for turbo codes
then
// Nmax is determined by TFMax// for each transmission time interval of transport channel i with TF l
Puncturing if ΔN < 0, repetition otherwise.
else // ΔNi,oTTI < 0 for turbo codes
// for Y sequence
// for Y′ sequence, the X bits cannot be punctured.
// for each transmission time interval of transport channel i with TF l
Puncturing if ΔN < 0, repetition otherwise.
end ifend if
// for each transport channel, its reserved bit size in one frame of CCTrCH is
.
// if the data of one transport channel after rate matching fill incompletely its reserved bit positions, discontinuous transmission (DTX) indications are inserted. DTX indication is denoted by 10 in this model.
end if
// an intermediate calculation variable Nij is calculated.
if the parameter OptimisticTrCHSizes is valid and used
then Ni,j, i = 1, ..., Nt, can be obtained by OptimisticTrCHSizes.
These meet the following condition: .
else // parameter OptimisticTrCHSizes is not valid and not used
Ni,j =
end if
// rate matching ratios RFi are calculated for each transport channel i.
// tentative temporary values of Δ Ni,l TTI
for all transport channel i and any of its transport format l are calculated
// temporary values of Δ Ni,l TTI are checked and corrected for all j in TFCS
if D > Ndata, o
then for i = 1 to Nt
ΔNi,j is calculated by calling function RMatch_deltasize( ) (parameter TrCHFrameSizeP is based on Nij)
ΔN = Fi * ΔNi,j
if then
end if
end for
end if
end for
if Δ Ni,lTTI = 0
then output data of the rate matching is the same as the input data and the rate matching algorithm of Note 6 does not need to be executed.
else
if for convolutional codes or Δ NilTTI >0 for turbo codes
then
// for each transmission time interval of transport channel i with TF l
Puncturing if Δ N < 0, repetition otherwise.
else // for Δ NilTTI <0 for turbo codes
// for Y sequence
// for Y′ sequence. The X bits shall not be punctured.//for each transmission time interval of transport channel i with TF l
Puncturing if if Δ N < 0, repetition otherwise.// After rate matching, each transport channel data size in one frame of
CCTrCH is
end ifend if
- Determining rate matching parameters in uplink
Ndata,j is equal to Mp × Np. The current data size of each transport channel Nij is determined by its current TF and TTI as shown in the S Values table. Using function RMatch_deltasize( ), Δ Nij can be calculated. If Δ Nij = 0 then the output data of the rate matching is the same as the input data and the rate matching algorithm of Note 6 does not need to be executed.
Function UpLk_RM_Parameters( ) is used to determine the rate matching parameters used in function RMatch_Algorithm( ) in Note 6: N, eini, eplus, eminus.
UpLk_RM_Parameters (Nij, Δ Nij, Fi, N, eini, eplus, eminus)
if for convolutional codes or Δ Nij >0 for turbo codes
else // Δ Nij <0 for turbo codesthen
if q is even
then
where gcd(q,Fi ) means greatest common divisor of q and Fi
else
end if
for each x = 0 to Fi -1
end for
, if eini = 0 then
Puncturing for Δ N <0, repeating otherwise.
end if
// for Y sequence
// for Y′ sequence
if ( q<=2)
then for x = 0 to Fi -1
if ( Y sequence ) ; end if
if ( Y′ sequence) ; end if
end for
else
if q is even
then
where gcd(q,Fi) means greatest common divisor of q and Fi
else
end if
for each x = 0 to Fi -1
if (Y sequence) end if
if (Y′ sequence) end if
end for// for each frame, the rate matching parameters are calculated
N is as above,
Puncturing for Δ N <0, repeating otherwise. - Bit separation for rate matching
In rate matching, puncturing for turbo codes is done for Y sequence and Y' sequence separately. No puncturing is applied to the X sequence. Therefore, the X, Y and Y' sequence must be separated before the rate matching algorithm is applied.
For downlink, the rate matching follows channel coding (see the following figure), so bit separation is easily accomplished. The bit stream after channel coding has constant pattern: ..., X, Y, Y', ....
Overall Rate Matching Block Diagram in Downlink Where x Denotes Punctured Bit
For uplink, see the following figure, rate matching is applied after radio frame segmentation.
Overall Rate Matching Block Diagram in Uplink Where x Denotes Punctured Bit
There are two different alternation patterns in bit stream from radio frame segmentation according to the TTI of a transport channel as shown in the Alternation Patterns of Bits from Radio Frame Segmentation in Uplink table. Each radio frame of a transport channel starts with different initial parity type. The Initial Parity Type of Radio Frames of Transport Channel in Uplink table shows the initial parity type of each radio frame of a transport channel with TTI = {10, 20, 40, 80} msec.
The following tables define a complete output bit pattern from radio frame segmentation.Alternation Patterns of Bits from Radio Frame Segmentation in Uplink
TTI (msec)
Alternation Patterns
10,40
...X,Y,Y',...
20,80
...,X,Y',Y,...
Initial Parity Type of Radio Frames of Transport Channel in Uplink
TTI (msec) ni =0 ni =1 ni =2 ni =3 ni =4 ni =5 ni =6 ni =7 10 X 20 X Y 40 X Y' Y X 80 X Y Y' X Y Y' X Y ni denotes radio frame indexes - Rate matching pattern
Function RMatch_Algorithm( ) is used to determine the rate matching pattern of input data inP which length is N, according to parameters eini, eplus, eminus.
RMatch_Algorithm (inP, N, eini, eplus, eminus)
if puncturing is to be performed
elsethen
// initial error between current and desired puncturing ratio
// index of current bit
do while m<= N
// update error
if e<= 0 then // check if bit number m should be punctured
puncture bit inP[m]
// update error
end if
end do
end if
// initial error between current and desired puncturing ratio
// index of current bit
do while m<= N
// update error
do while e <= 0 // check if bit number m should be repeated
repeat bit inP[m] // a repeated bit is placed directly after the original one
// update errorend do
// next bit
end do
References
- 3GPP Technical Specification TS 25.212 V3.0.0, "Multiplexing and channel coding (FDD)," October 1999.