Physical Downlink Shared Channel-PTRS
This modules generates a resource grid with demodulation reference signal (DMRS) for physical downlink shared channel (PDSCH) mapped to a resource grid.
Generating PDSCH-DMRS Resource Grid:
betaDMRS = 1
pdschMappingType = "PDSCH-mapping-type-A" # "PDSCH mapping type A" or "PDSCH mapping type B"
configurationType = "Configuration-type-1" # "Configuration-type-1" or "Configuration-type-2"
dmrsTypeAPosition = "pos2" # first DMRS symbol location
dmrsAdditionalPosition = "pos0" # Number of additional DMRS
maxLength = "len2"
## Duration of DMRS
ld = 6 # number of symbols for DMRS transmission.
l0 = 2
l1 = 11
rank = 4
numRBs = 20
scs = 30000
slotNumber = 11
scramblingID = 13544
nSCID = 1
rmDMRSpdsch = ResourceMapperDMRSPDSCH(pdschMappingType, configurationType, dmrsTypeAPosition, maxLength, dmrsAdditionalPosition, l0, ld, l1)
resourceGrid = rmDMRSpdsch(numRBs, rank, slotNumber, scramblingID, nSCID)
Display the DMRS-PDSCH Resource Grid:
fig0, ax0 = rmDMRSpdsch.displayResourceGrid()
Display the DMRS-PDSCH CDM Grid:
fig1, ax1 = rmDMRSpdsch.displayCDMPattern()
Generating DMRS-PDSCH Resource Grid:
pdschMappingType = "PDSCH-mapping-type-B" # PDSCH mapping types indicate whether reference for resource allocation is symbol = 0 or configures symol location
maxLength = "len2" # Indicate whether single symbol DMRS or Double symbol DMRS is used.
betaDMRS = 1
configurationType = "Configuration-type-2" # Control the density and pilot location of DMRS in Resource Grid
dmrsTypeAPosition = "pos3" # first DMRS symbol location
dmrsAdditionalPosition = "pos0" # Number of additional DMRS
l0 = 4 # DMRS symbol-0
l1 = 11 # DMRS symbol-1
ld = 7 # Duration of DMRS
rank = 12 # number of layers to transmit
numRBs = 12
scs = 30000
slotNumber = 11
scramblingID = 13544 # or Cell-ID for Initial Access
nSCID = 1
rmDMRSpdsch = ResourceMapperDMRSPDSCH(pdschMappingType, configurationType, dmrsTypeAPosition, maxLength, dmrsAdditionalPosition, l0, ld, l1)
resourceGrid = rmDMRSpdsch(numRBs, rank, slotNumber, scramblingID, nSCID)
Display the DMRS-PDSCH Resource Grid:
fig0, ax0 = rmDMRSpdsch.displayResourceGrid()
Display the DMRS-PDSCH CDM Grid:
fig1, ax1 = rmDMRSpdsch.displayCDMPattern()
- class toolkit5G.ResourceMapping.ResourceMapperPTRSPDSCH(lptrs, kptrs, offsetIndex)[source]
To Generate Phase Tracking reference Signal and Allocate it resource Elements in accordance with 7.4.1.2.2 3GPP TS38.211
- Parameters:
lptrs (int) – Defines the Time Density \(\in \{1, 2, 4\}\). This variable is defined in 3GPP TS 38.211 Section 7.4.1.2.2 as \(L_{PT-RS}\).
kptrs (int) – Defines the Frequency Density \(\in \{2,4\}\). This variable is defined in 3GPP TS 38.211 Section 7.4.1.2.2 as \(K_{PT-RS}\).
offset Index (str) – Used to compute resource element Offset \(\in \{00,01,10,11\}\). This variable is defined in 3GPP TS 38.211 Section 7.4.1.2.2, Table 7.4.1.2.2-1 as \(\{\) ‘offset00’, ‘offset01’, ‘offset10’, ‘offset11’ \(\}\).
- Input:
rank (str) – Defines the number of Ports \(\in \{1,2, \dots ,8\}\) for ‘Configuration-type-1’ and \(\in \{1,2, \dots ,12\}\) for ‘Configuration-type-2’
configurationType (str) – Defines configuration type for PDSCH \(\in \{\) ‘Configuration-type-1’, ‘Configuration-type-2’ \(\}\).
pdschStartSymbol (int) – Defines the starting symbol for PDSCH allocation :math in {0,1,dots,4} for ‘Single/Double Symbol Mapping Type A’ and \(\in \{0,1,\dots,13\}\) for ‘Single Symbol Mapping type B’ and \(\in \{0,1,\dots,7\}\) for ‘Double Symbol Mapping type B’
ld (int) – Defines Number of symbols taken for PDSCH Transmission \(l_d\) parameter of PDSCH-DMRS. It takes values \(\in \{2,3,4,5,6,7,8,9,10,11,12,13\}\)
numRBs (int) – Defines number of physical resource blocks (PRBs) occupied for PDSCH transmission.
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.
- Output:
[
numBatches
,numBSs
,numPorts
, 14,numResourceBlocks*12
], np.complex32 – Phase Tracking reference signal (PTRS) for PDSCH (PTRS-PDSCH) Grid.- Raises:
ValueError – [Error PDSCH-PTRS RM] PTRS Not supported for Configuration-type-1 when rank greater than 4
ValueError – [Error PDSCH-PTRS RM] Enter valid offset index
ValueError – [Error PDSCH-PTRS RM] Enter a Valid configuration
ValueError – [Error PDSCH-PTRS RM] lptrs must be an Integer value
ValueError – [Error PDSCH-PTRS RM] lptrs can take values 1,2 and 4 only
ValueError – [Error PDSCH-PTRS RM] kptrs must be an Integer value
ValueError – [Error PDSCH-PTRS RM] kptrs can tale values 2 and 4 only
ValueError – [Error PDSCH-PTRS RM] offsetIndex must be a string
ValueError – [Error PDSCH-PTRS RM] offsetIndex can take values 00,01,10 & 11 only
ValueError – [Error PDSCH-PTRS RM] configurationType must be an string
ValueError – [Error PDSCH PTRS RM] ‘configurationType’ must be ‘Configuration-type-1’ or ‘Configuration-type-2’!
- References:
- [3GPPTS38211_pdschDMRS]
(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’