Page tree
Skip to end of metadata
Go to start of metadata


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
  1. 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:
    • 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.
    Refer to the following tables for the values of T, S, and Mp.
    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
  2. 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:

    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 ≤ niFi).
    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".

    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.
    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

  3. 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

    then // 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 if

    end 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.

    else // for flexible positions of transport channels

    // 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 if

    end if

    end if

  4. 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

    then
    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.

    else // Δ Nij <0 for turbo codes

    // 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.

    end if
  5. 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.

    TTI (msec)

    Alternation Patterns

    10,40

    ...X,Y,Y',...

    20,80

    ...,X,Y',Y,...

    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
  6. 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

    then // 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

    else

    // 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 error

    end do
    // next bit
    end do

    end if

References
  1. 3GPP Technical Specification TS 25.212 V3.0.0, "Multiplexing and channel coding (FDD)," October 1999.
  • No labels