PDSCH Upper Physical Layer Configurations

This API generates the configurations for upper physical layer of the physical downlink shared channel (PDSCH) which covers parameters related to transport block calculation, LDPC encoding, HARQ/rate-matching etc. The details of these parameters are listed below in input and output interface.

Note

The un-configured parameters are selected randomly from a valid set of possible values.

class toolkit5G.Configurations.PDSCHUpperPhyConfiguration(pdschMappingType=None, configurationType=None, dmrsTypeAPosition=None, maxLength=None, dmrsAdditionalPosition=None, l0=None, ld=None, l1=None, startSymbol=None, numSymbols=None, rank=None, scalingField=None, mcsTable=None, mcsIndex=None, additionalOverhead=None, numTBs=None, numRB=None, verbose=True)[source]

To accept existing Upper Phy parameters and Generate the rest of parameters required to invoke the PDSCH upper Phy Chain

Parameters:
  • pdschMappingType (str) – Defines PDSCH mapping type \(\in \{\) ‘PDSCH-mapping-type-A’, ‘PDSCH-mapping-type-B’ \(\}\).

  • configurationType (str) – Defines configuration type for PDSCH \(\in \{\) ‘Configuration-type-1’, ‘Configuration-type-2’ \(\}\).

  • dmrsTypeAPosition (str) – Defines dmrsTypeAPosition parameter of PDSCH-DMRS \(\in \{\) ‘pos2’, ‘pos3’ \(\}\).

  • maxLength (int) – Defines the maxLength parameter of PDSCH-DMRS \(\in \{\) ‘len1’, ‘len2’ \(\}\).

  • dmrsAdditionalPosition (str) – Defines dmrsTypeAPosition parameter of PDSCH-DMRS \(\in \{\) “pos0”, “pos1”, “pos2”, “pos3” \(\}\).

  • l0 (int) – Defines \(l_0\) parameter of PDSCH-DMRS \(\in \{1, 2, 3, 4, 5, 6\}\).

  • ld (int) – Defines \(l_d\) parameter of PDSCH-DMRS. It takes values \(\in \{2,3,4,5,6,7,8,9,10,11,12,13\}\) based on pdschMappingType and maxLength.

  • l1 (int) – Defines \(l_1\) parameter of PDSCH-DMRS \(\in \{11, 12\}\). Default value is 11.

  • pdschStartSymbol (int) – Defines the first symbols from where PDSCH is supported to be loaded.

  • numSymbols (int) – Defines the number of PDSCH symbols that are to be transmitted.

  • rank (int) – Defines rank/num of layers/streams to be transmitted. It must match number of ports \(\in \{1,2,\dots,8\}`for 'Configuration-type-1' and :math:\)in {1,2,dots,12}` for ‘Configuration-type-2’.

  • scalingField (int) – Transport Block Scaling Field. It accepts a string. Valid Strings are ‘00’, ‘01’, ‘10’.

  • mcsTable (str) – The Lookup table to be used for the selection of Modulation Order and code Rate It can take the strings ‘pdschTable1’, ‘pdschTable2’, ‘pdschTable3’, ‘pdschTable4’, ‘puschTable1’, ‘puschTable2’ ,’cqiTable1’, ‘cqiTable2’, ‘cqiTable3’, ‘cqiTable4’

  • .. Note:: – The chain uses the argument name pdschTable while config returns the argument name mcsTable. Check correctly to maintain consistency

  • mcsIndex (str) – Refers to the Modulation and Coding Scheme (MCS) Index. It takes Either a Scalar or a numpy array based on the argument passed as pdschTable

    -If pdschTable is passed as none, mcsIndex expects a numpy array of [modulation order, code Rate]

    -If pdschTable argument is passed , Based on it the following Table lowerbound and upperbound for mcs Index is followed

    Table

    LowerBound

    Upperbound

    PDSCH Table 1

    0

    28

    PDSCH Table 2

    0

    27

    PDSCH Table 3

    0

    28

    PDSCH Table 4

    0

    26

    PUSCH Table 1

    0

    27

    PUSCH Table 2

    0

    27

    CQI Table 1

    1

    15

    CQI Table 2

    1

    15

    CQI Table 3

    1

    15

    CQI Table 4

    1

    15

  • additionalOverhead (int) – Additional Overheads that results in reduced number of available Resource Elements for data transfer. It takes a scalar or numpy integer.Valid values are 0, 6, 12 or 18.

  • numTBs (int) – The Physical layer processes either 1 or 2 Transport Blocks for each resource allocation. So it represents number of Transport Blocks to be processed.

  • numRB (int) – Number of Physical Resource Blocks allocated. It takes a positive scalar or numpy integer.