PDSCH Lower Phy Configurations

The PDSCH Lower Phy Configuration class receives any existing parameters for PDSCH lower Phy chain, based on which the rest of the parameters required to invoke PDSCH Lower Phy chain are generated as per 3GPP standards.

The Lower Phy config can be called with no arguments or all the parameters set to none, causing the class to generate all the parameters from scratch as shown below

pdschParamGen = PDSCHLowerPhyConfiguration(verbose = True)
******** PDSCH Parameters *********

       pdschMappingType: PDSCH-mapping-type-A
            startSymbol: 2
             numSymbols: 5
               betaDMRS: 1
                   rank: 8
      configurationType: Configuration-type-2
              maxLength: len1
      dmrsTypeAPosition: pos3
 dmrsAdditionalPosition: pos3
           Duration, ld: 5
       Start symbol, l0: 3
     Start symbol-1, l1: 11
          num of Layers: 8


It can also be called with certain parameters already assigned. The remaining parameters will be generated based on the these parameters passed by user.


The unconfigured parameters will be selected randomly from the possible set of legit choices. These choices are

shortlisted based on the passed input parameters/configuration.

Passing the Configuration Partially

pdschMappingType       = "PDSCH-mapping-type-A"
dmrsTypeAPosition      = "pos2"
dmrsAdditionalPosition = "pos0"
rank                   = 1

pdschParamGen          = PDSCHLowerPhyConfiguration(pdschMappingType = pdschMappingType, dmrsTypeAPosition = dmrsTypeAPosition,
                                                dmrsAdditionalPosition = dmrsAdditionalPosition, rank = rank )
******** PDSCH Parameters *********

       pdschMappingType: PDSCH-mapping-type-A
            startSymbol: 1
             numSymbols: 10
               betaDMRS: 1
                   rank: 1
      configurationType: Configuration-type-1
              maxLength: len2
      dmrsTypeAPosition: pos2
 dmrsAdditionalPosition: pos0
           Duration, ld: 10
       Start symbol, l0: 2
     Start symbol-1, l1: 11
          num of Layers: 1



If you are partially passing arguments, 3GPP standards should be taken into consideration, contradictions may end up in an error.

class toolkit5G.Configurations.PDSCHLowerPhyConfiguration(pdschMappingType=None, maxLength=None, startSymbol=None, numSymbols=None, betaDMRS=None, configurationType=None, dmrsTypeAPosition=None, dmrsAdditionalPosition=None, ld=None, l0=None, l1=None, rank=None, scramblingID=None, nSCID=None, verbose=True)[source]

Generates Upper Phy parameters. The unconfigured parameters are generated by this module based on the parameters provided to the API.

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

  • 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 \(\in \{1,2,\dots,12\}\) for ‘Configuration-type-2’.

  • scramblingID (int) – Defines the scramblingID \(\in \{0,1,\dots,65535\}\).

  • nSCID (int) – Defines the quantity \(\text{𝑛}_{\text{SCID}} \in \{0,1\}\) is given by the DM-RS sequence initialization field.

  • [Error-PDSCH DMRS] – Invalid pdschMappingType. The valid values are ‘PDSCH-mapping-type-A’ and ‘PDSCH-mapping-type-B’!

  • [Error-PDSCH DMRS] – Invalid maxLength. The valid values are ‘len1’ and ‘len2’!

  • [Error-PDSCH DMRS] – Invalid dmrsTypeAPosition. The valid values are ‘pos2’ and ‘pos3’!

  • [Error-PDSCH DMRS] – Invalid configurationType. The valid values are ‘Configuration-type-1’ and ‘Configuration-type-2’!