Resource Mapping

In this example,
  • interlacedTransmission - Interlaced Transmission is enabled

  • pucch_ResourceCommon - Common resource configuration

  • intraSlotFreqHopping - Enabling Intra Slot Frequency Hopping

interlacedTransmission = True #Enabling/Disabling the Interlaced Transmission
pucch_ResourceCommon   = True #Selecting the resource set
numberOfSymb           = None #Number of Symbols
symbolIndex_start      = None #Starting Symbol Index
indexPUCCH             = 0    #Index of the resource set, if Common resource configuration is enabled
intraSlotFreqHopping   = False #Enabling/Disabling the Intra Slot Frequency Hopping
startingPRB            = None #Index of first Physical Resource Block
secondHopPRB           = None #Index of first Physical Resource Block, if Intra Slot Frequency Hopping is enabled
numInterlacedRBs       = 10 #Number of Interlaced ResourceBlocks
numOfInterlaces        = 1 #Number of Interlaces
interlaceIndex_0       = None #Index of the first Interlace
interlaceIndex_1       = None #Index of the second Interlace
Format0_Seq ---> PUCCH Format 0 Sequence

RMObj = ResourceMapperFormat0(interlacedTransmission, intraSlotFreqHopping, pucch_ResourceCommon) #Resource Mapping Object
rmOP  = RMObj(Format0_Seq, numberOfSymb, symbolIndex_start, startingPRB, secondHopPRB, indexPUCCH, numInterlacedRBs, numOfInterlaces, interlaceIndex_0, interlaceIndex_1) #Maps onto the Resources allocated
The example below considers,
  • interlacedTransmission - Interlaced Transmission is disabled

  • pucch_ResourceCommon - Dedicated resource configuration

  • intraSlotFreqHopping - Disabling Intra Slot Frequency Hopping

interlacedTransmission = False #Enabling/Disabling the Interlaced Transmission
pucch_ResourceCommon   = False #Selecting the resource set
numberOfSymb           = 1 #Number of Symbols
start_SymbIndex        = 5 #Starting Symbol Index
indexPUCCH             = None #Index of the resource set, if Common resource configuration is enabled
intraSlotFreqHopping   = False #Enabling/Disabling the Intra Slot Frequency Hopping
startingPRB            = 179 #Index of first Physical Resource Block
secondHopPRB           = None #Index of second Physical Resource Block
numInterlacedRBs       = None #Number of Interlaces
numOfInterlaces        = None #Number of Interlaces
interlaceIndex_0       = None #Index of the first Interlace
interlaceIndex_1       = None #Index of the second Interlace
Format0_Seq ---> PUCCH Format 0 Sequence

RMObj = ResourceMapperFormat0(interlacedTransmission, intraSlotFreqHopping, pucch_ResourceCommon) #Resource Mapping Object
rmOP  = RMObj(Format0_Seq, numberOfSymb, symbolIndex_start, startingPRB, secondHopPRB, indexPUCCH, numInterlacedRBs, numOfInterlaces, interlaceIndex_0, interlaceIndex_1) #Maps onto the Resources allocated
In this example,
  • interlacedTransmission - Interlaced Transmission is enabled

  • pucch_ResourceCommon - Dedicated resource configuration

  • intraSlotFreqHopping - Disabling Intra Slot Frequency Hopping

interlacedTransmission = True #Enabling/Disabling the Interlaced Transmission
pucch_ResourceCommon   = False #Selecting the resource set
numberOfSymb           = 1 #Number of Symbols
start_SymbIndex        = 5 #Starting Symbol Index
indexPUCCH             = None #Index of the resource set, if Common resource configuration is enabled
intraSlotFreqHopping   = False #Enabling/Disabling the Intra Slot Frequency Hopping
numInterlacedRBs       = 11 #Number of Interlaced ResourceBlocks
startingPRB            = None #Index of first Physical Resource Block
secondHopPRB           = None #Index of second Physical Resource Block
numOfInterlaces        = 1 #Number of Interlaces
interlaceIndex_0       = 8 #Index of the first Interlace
interlaceIndex_1       = None #Index of the second Interlace
Format0_Seq ---> PUCCH Format 0 Sequence

RMObj = ResourceMapperFormat0(interlacedTransmission, intraSlotFreqHopping, pucch_ResourceCommon) #Resource Mapping Object
rmOP  = RMObj(Format0_Seq, numberOfSymb, symbolIndex_start, startingPRB, secondHopPRB, indexPUCCH, numInterlacedRBs, numOfInterlaces, interlaceIndex_0, interlaceIndex_1) #Maps onto the Resources allocated
class toolkit5G.ResourceMapping.ResourceMapperFormat0(interlacedTransmission=True, intraSlotFreqHopping=False, pucch_ResourceCommon=False, formatPUCCH='Format 0', seqLength=12, numRBs=1, beta_PUCCH0=1)[source]

This maps the information carried by the PUCCH Format 0 to the resource elements allocated.

The sequence generated is multiplied with the amplitude scaling factor in order to conform to the transmit power.

Considering 1 Bandwidth Part consisting of number of Physical Resource Blocks to be 275.

The maximum number of Physical Resource Blocks(PRBs) allocated is 1.

The maximum number of symbols allocated is 2.

If PUCCH Format 0 is used prior to the allocation of dedicated PUCCH resource, it avail the resource information from the common resource configuration provided by the System Information Block 1 based on the index provided.

In case of Interlaced Transmission, the number of Interlaced Resource Blocks that can be allocated can be either 10 or 11 if PUCCH Format 0 uses dedicated resource set for resource allocation. Else, the number of Interlaced Resource Blocks that can be allocated can be 10.

In case of Interlaced Transmission, based on number of interlaces, index of first interlace and index of second interlace is provided.

Parameters:
  • intraSlotFreqHopping (bool) – The parameter ‘intraSlotFreqHopping’ indicates whether the Intra Slot Frequency Hopping is enabled/disabled. It is always disabled in case of Interlaced transmission. By default it is disabled

  • interlacedTransmission (bool) – The parameter ‘interlacedTransmission’ indicates whether Interlaced based transmission is either enabled or disabled. By default it is disabled

  • pucch_ResourceCommon (bool) – The parameter ‘pucch_ResourceCommon’ indicates whether PUCCH Format 0 uses common resource configuration or dedicated resource set for resource allocation. By default it is set that PUCCH Format 0 is used after dedicated resource allocation

  • numRBs (int) – The parameter ‘numRBs’ is the number of PRBs allocated and it is initialised with 1

  • formatPUCCH (str) – The parameter ‘formatPUCCH’ indicates which PUCCH format is being selected. It is initialised with ‘Format 0’. It takes a string

  • maxNumPRBs (int) – This parameter indicates maximum number of Physical Resource Blocks considered within a Bandwidth Part. It is initialised with 275, considering 275 Physical Resource Blocks within a BandwidthPart. It takes the positive scalar or numpy integer

  • seqLength (int) – This parameter indicates the length of the sequence generated. It is initialised with 12 as the length of the sequence generated tends to be 12. It takes a positive scalar or numpy integer

  • beta_PUCCH0 (int) – This parameter is the amplitude scaling factor in order to conform to the transmitting power. It is initialised with 1. It takes a positive scalar or numpy integer.

Input:
  • inputSeq (numpy ndarray, np.complex) – Array of dimension, […, numInterlacedRBs/numRBs, seqLength * numberOfSymb]

    If interlaced based transmission is enabled, numInterlacedRBs number of sequences are generated. Else, numRBs number of sequences are generated.

  • numberOfSymb (int) – The parameter ‘numberOfSymb’ is the number of Symbols allocated. Maximum of 2 symbols per slot can be allocated. It takes only positive scalar or numpy integer.It can be either provided by dedicated resource set or common resource configuration and so it is initialised with None

  • start_SymbIndex (int) – The parameter ‘symbolIndex_start’ indicates the starting symbol index. It can take a integer. Taking into consideration that maximum of 14 symbols within a slot, it can take values between 0 and 13.It can be either provided by dedicated resource set or common resource configuration and so it is initialised with None

  • indexPUCCH (int) – The parameter ‘indexPUCCH’ is the resource index to indicate the resource in case of resource allocation by common resource configuration.It can be either provided by dedicated resource set or common resource configuration and so it is initialised with None

  • numInterlacedRBs (int) – The parameter ‘numInterlacedRBs’ is the Number of Interlaced Resource Blocks. It can take positive integer value.It can be either provided by dedicated resource set or common resource configuration and so it is initialised with None

  • startingPRB (int) – The parameter ‘startingPRB’ is the index of First Physical Resource Block, if Interlace transmission is not enabled. It takes a scalar or numpy integer

  • secondHopPRB (int) – The parameter ‘secondHopPRB’ is the index of First Physical Resource Block in case of IntraSlot Frequency Hopping and , if Interlace transmission is not enabled. It takes a scalar or numpy integer

  • interlaceIndex_0 (int) – The parameter ‘interlaceIndex_0’ is the first interlace index in case of Interlace transmission. It takes a scalar or numpy integer

  • interlaceIndex_1 (int) – The parameter ‘interlaceIndex_1’ is the second interlace index in case of Interlace transmission. It takes a scalar or numpy integer

  • numOfInterlaces (int) – The parameter ‘numOfInterlaces’ indicates the number of interlaces in case of Interlace transmission. It takes a scalar or numpy integer

Output:

numpy ndarray, np.complex – Array of dimension, […, Number of subcarriers (12) * maxNumPRBs, Number of Symbols within a slot(14)]

Raises:

TypeError

If beta_PUCCH0 is not an integer

If formatPUCCH is not a string

If startingPRB is not an integer

If secondHopPRB is not an integer

If seqLength is not an integer

If maxNumPRBs is not an integer

If numOfInterlaces is not an integer

If interlaceIndex_0 is not an integer

If interlaceIndex_1 is not an integer

If numRBs is not a integer type

If numberOfSymb is not of type integer

If symbolIndex_start is not a scalar or numpy integer

If numInterlacedRBs is not a scalar or numpy integer

If indexPUCCH is not of type integer

ValueError

Invalid dimension of the inputSeq PUCCH Format0 Sequence

If beta_PUCCH0 is not a positive integer

If formatPUCCH is not ‘Format 0’

If startingPRB is not a non negative integer

If seqLength is not a positive value

If secondHopPRB is not a non negative integer

If maxNumPRBs is not between 0 and 275

If numOfInterlaces is not a positive value

If interlaceIndex_0 is not between 0 and 11

If interlaceIndex_1 is not between 0 and 11

If numRBs is not equal to 1

If numberOfSymb is not between 1 and 14. Also, if numberOfSymb plus start_SymbIndex > 14

If start_SymbIndex is not between 0 and 13

If numInterlacedRBs is not equal to 10 or 11

If indexPUCCH is not between 0 and 2

property formatPUCCH

PUCCH Format

property indexPUCCH

This parameter is used to select the resource from the common resource configuration provided by SIB1

property interlaceIndex_0

Index of first interlace, in case of Interlaced Transmission

property interlaceIndex_1

Index of second interlace, in case of Interlaced Transmission

property maxNumPRBs

Number of PRBs within a Bandwidth Part

property numInterlacedRBs

Number of Interlaced Resource Blocks allocated

property numOfInterlaces

Number of Interlaces, in case of Interlaced Transmission

property numRBs

Number of Physical Resource Blocks allocated

property numberOfSymb

Number of Symbols allocated. Maximum of 2 symbols can be allocated

property offset

PRB offset

property rg_Size

Size of Bandwidth Part (BWP size)

property secondHopPRB

Index of first PRB in case of IntraSlotHopping is enabled. Takes a positive integer

property seqLength

Sequence Length of the generated PUCCH Format0 sequence

property start_SymbIndex

Starting Symbol Index within a slot consisting of 14 OFDM symbols

property startingPRB

Index of first PRB. Takes a positive integer

References

[1]. (3GPP TS 38.211 version 17.1.0 Release 17) 5G;NR;Physical channels and modulation ‘5.2.2 Low-PAPR sequence generation type 1’

[2]. (3GPP TS 38.211 version 17.1.0 Release 17) 5G;NR;Physical channels and modulation ‘6.3.2.3 PUCCH Format 0’

[3]. (3GPP TS 38.213 version 16.5.0 Release 16) 5G;NR;Physical layer procedures for control ‘ 9.2.1 PUCCH Resource Sets’

[4]. Book - 5G NR in Bullets, Edition 1