NR SA PTRS - PDSCH
The purpose of this tutorial is to show you how to configure PTRS for PDSCH . PTRS stands for Phase Tracking Reference Signal is a kind of reference signal that is used for adjusting Phase Shift in harsh channel condition.
- RRC parameter configured in DMRS-DownlinkConfig : This determines deterimine time domain and frequency domain positions of the reference signal (details)
Table of Contents
- NR SA PTRS - PDSCH
Test Setup
Test setup for this tutorial is as shown below. This is just for low layer testing, you may not need any complicated IP layer setup.
- SIM Card used in this tutorial is the one delivered with the system as it is.
- If you want to change the configuration, The tutorial Configuration Guide would help
Key Configuration Parameters
Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.
Test 1 : Basic Configuration
The purpose of this test is to provide an example of how to configure a basic PTRS configuration for SISO. I used SISO just because it is the default configuration of gnb-sa.cfg. MIMO configuration does not directly affect the operation of PTRS.
Configuration
I have used gnb-sa-pdsch-ptrs.cfg which is copied and modified from gnb-sa.cfg
I am using the default mme, ims config as shown below.
On UEsim side, I am using the default configuration ue-nr-sa.cfg without any modification (
In gnb-sa-pdsch-ptrs.cfg , it is configured as follows. I set N_ANTENNA_DL to 1 meaning that I want to use SISO. You can use any kind of configuration as you like.
I am testing this in n78, but it doesn't matter whatever band you use. The special configuration that I did in nr_cell_list is force_dl_schedule : true. This is not mandatory configuration, it is only for easy verification. Since Downlink PTRS is transmitted in association with PDSCH, which mean that we need to schedule PDSCH to check out the downlink PTRS. force_dl_schedule : true is to schedule PDSCH at every possible opportunities.
Following is the main configuration for this test which are to configure ptrs. As shown here, the parameter is ptrs object. Within the ptrs object, you can configure the detailed property of the ptrs. For the details for the meaning of frequency_density (Frequency Density), time_density (Time Density) and resource_element_offset (Resource Element Offset), you may refer to this note.
For UEsim configuration, the default configuration file ue-nr-sa.cfg is used without any modification (
Configure TDD and CELL_BANDWIDTH to match the configuration of gNB.
Configure the band, frequency (dl_nr_arfcn, ssb_nr_arfcn) and subcarrier spacing (subcarrier_spacing) to match the configuration of gNB (Callbox)
I just used ue_list parameter without any modification.
Perform the Test
First run the test and check on the number of physical antenna using cell phy command.
Then setup a call and make it sure that call connection is OK using t command.
Log Analysis
First check RRC log and see if the configuration is done as you intended.
PTRS is configured by phaseTrackingRS IE in RRC Reconfiguration. You can compare the settings in the configuration file and phaseTrackingRS IE as shown below.
PTRS transmission gets enabled or disabled depending in MCS and the state of PTRS activation is printed in PDSCH log. If the PTRS is activated/transmitted, ptrs=1 is transmitted.
RRC / NAS Signaling
RrcReconfiguration(SA)
: This is the RrcSetup message sent by gNB to configure PDSCH PTRS. (
{
message c1: rrcReconfiguration: {
rrc-TransactionIdentifier 0,
criticalExtensions rrcReconfiguration: {
nonCriticalExtension {
masterCellGroup {
cellGroupId 0,
spCellConfig {
spCellConfigDedicated {
initialDownlinkBWP {
pdsch-Config setup: {
dmrs-DownlinkForPDSCH-MappingTypeA setup: {
dmrs-AdditionalPosition pos0,
phaseTrackingRS setup: {
frequencyDensity {
10,
20
},
timeDensity {
5,
15,
20
},
resourceElementOffset offset10
}
},
resourceAllocation resourceAllocationType1,
rbg-Size config1,
mcs-Table qam256,
prb-BundlingType staticBundling: {
bundleSize wideband
}
}
},
uplinkConfig {
initialUplinkBWP {
pusch-Config setup: {
txConfig codebook,
resourceAllocation resourceAllocationType1,
mcs-Table qam256,
mcs-TableTransformPrecoder qam256,
codebookSubset nonCoherent,
maxRank 1
}
}
},
pdsch-ServingCellConfig setup: {
nrofHARQ-ProcessesForPDSCH n16,
maxMIMO-Layers 1
},
tag-Id 0
}
}
},
dedicatedNAS-MessageList {
'7E024E13893B017E0042010977000BF200F110800101D5916D6554070000F1100000641502010131020101210203005E01BE3408031F19F1031F11F2'H
}
}
}
}
}