NR SA DMRS - PDSCH, Antenna Port
The purpose of this tutorial is to show you how to configure PDSCH DMRS and Antenna Port in DCI 1_1. PDSCH DMRS (DeModulation Reference Signal) is a kind of reference signal that is used for channel estimation and helps to decode PDSCH. The exact position is determined by following factors.
- RRC parameter configured in DMRS-DownlinkConfig : This determines mostly about the time domain position (i.e, the OFDM symbols) of DMRS and DMRS type (details)
- MIMO configuration configured in DCI : This determines mostly about the frequeny domain position (i.e, the frequency offset of the starting position). (details)
Theoretically, if you put more number of symbols for DMRS, you may get better decoding result (i.e, lower BLER), but the number of the RE (resource elements) for user data (PDSCH) is reduced since some of the symbols are used for DMRS. As a rule of thumb, in most of cases it is recommended to use two symbols for DMRS. If you use only one symbol for DMRS, it is highly likely to have high BLER. If you use more than two symbols for DMRS, you would sacrifice too much in terms of ideal (max) throughput.
Table of Contents
- NR SA DMRS - PDSCH, Antenna Port
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.
- pdsch : In this link, you would get the descriptions for all the items listed below
- mapping_type
- dmrs_add_pos
- dmrs_max_len
- dmrs_type
- dmrs_scid0
- dmrs_scid1
- dmrs_len
- n_dmrs_cdm_groups
- dmrs_ports
- n_layers
Test 1 : Table 7.3.1.2.2-1
The purpose of this test is to provide an example of how to configure a specific DMRS configuration for SISO/MIMO (from SISO up to 4x4 MIMO). In terms of 3GPP, this configuration is specified by TS 38.212 Table 7.3.1.2.2-1: Antenna port(s) (1000 + DMRS port), dmrs-Type=1, maxLength=1. According to the specification, there are multiple options of DMRS patterns to choose even for the same MIMO scheme. It means just setting the number of antenna may not be enough to specify MIMO scheme accurately. If you don't care much about the detailed DMRS pattern, you can just specify the number of antenna and let Callbox software to choose whatever DMRS pattern it likes. However if you are interested in controlling the details of MIMO configuration, this test would help.
Configuration
I have used gnb-sa-dmrs-7-3-1-2-2-1.cfg which is copied and modified from gnb-sa.cfg
I am using the default mme, ims config as shown below.
In gnb-sa-dmrs-7-3-1-2-2-1.cfg, it is configured as follows. I set N_ANTENNA_DL to 4 meaning that I want to use max 4x4 MIMO. This mean that the number of physical antenna is set to 4 but it does not necessarily mean that it is only for 4 layer and 4x4 MIMO.
In 3GPP specification, you would just specify a single value that are mapped to a set of property made up of dmrs type, dmrs max length, number of dmrs cdm group and dmrs port numbers. However in Amarisoft callbox, it does not allow you to use the single number value. You need to configure all of these parameters individually. The callbox (gNB) parameter related to this setting are dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports. Among this, dmrs_type and dmrs_max_len determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be used.
This correspond to the value = 10 in 38.212 - Table 7.3.1.2.2-1
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. In this tutorial, I am checking RRC Setup for PDSCH DMRS Configuration. This parameter determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be applied.
Now check on the maxMIMO-Layers in pdsch-ServingCellConfig. In this specific example, it is set to 4. Be aware that this indicates the maximum number of layer. It does not mean that 4 layers are used all the time. By changing DMRS pattern, gNB can change the number of layers dynamically.
Check DCI 1_1 and see if antenna_ports is set as intended. In this example, antenna_ports is set to 10. It means that dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports values specified in the configuration file indicates antenna_ports (DMRS value in 3GPP) to 10 which is 4x4 MIMO.
Sub Test 1 : Value = 0
This subtest is to show how to configure and verify of the value = 0 in 38.212 - Table 7.3.1.2.2-1
Configuratio is set as follows. I set N_ANTENNA_DL to 4 meaning that I want to use max 4x4 MIMO. This mean that the number of physical antenna is set to 4 but it does not necessarily mean that it is only for 4 layer and 4x4 MIMO.
In 3GPP specification, you would just specify a single value that are mapped to a set of property made up of dmrs type, dmrs max length, number of dmrs cdm group and dmrs port numbers. However in Amarisoft callbox, it does not allow you to use the single number value. You need to configure all of these parameters individually. The callbox (gNB) parameter related to this setting are dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports. Among this, dmrs_type and dmrs_max_len determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be used.
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.
Check DCI 1_1 and see if antenna_ports is set as intended. In this specific example, antenna_ports value is set to 0. You need to compare this value with the dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports and 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4
Sub Test 2 : Value = 1
This subtest is to show how to configure and verify of the value = 1 in 38.212 - Table 7.3.1.2.2-1
Configuratio is set as follows. I set N_ANTENNA_DL to 4 meaning that I want to use max 4x4 MIMO. This mean that the number of physical antenna is set to 4 but it does not necessarily mean that it is only for 4 layer and 4x4 MIMO.
In 3GPP specification, you would just specify a single value that are mapped to a set of property made up of dmrs type, dmrs max length, number of dmrs cdm group and dmrs port numbers. However in Amarisoft callbox, it does not allow you to use the single number value. You need to configure all of these parameters individually. The callbox (gNB) parameter related to this setting are dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports. Among this, dmrs_type and dmrs_max_len determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be used.
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.
Check DCI 1_1 and see if antenna_ports is set as intended. In this specific example, antenna_ports value is set to 1. You need to compare this value with the dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports and 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4
Sub Test 3 : Value = 2
This subtest is to show how to configure and verify of the value = 2 in 38.212 - Table 7.3.1.2.2-1
Configuratio is set as follows. I set N_ANTENNA_DL to 4 meaning that I want to use max 4x4 MIMO. This mean that the number of physical antenna is set to 4 but it does not necessarily mean that it is only for 4 layer and 4x4 MIMO.
In 3GPP specification, you would just specify a single value that are mapped to a set of property made up of dmrs type, dmrs max length, number of dmrs cdm group and dmrs port numbers. However in Amarisoft callbox, it does not allow you to use the single number value. You need to configure all of these parameters individually. The callbox (gNB) parameter related to this setting are dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports. Among this, dmrs_type and dmrs_max_len determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be used.
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.
Check DCI 1_1 and see if antenna_ports is set as intended. In this specific example, antenna_ports value is set to 2. You need to compare this value with the dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports and 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4
Sub Test 4 : Value = 7
This subtest is to show how to configure and verify of the value = 7 in 38.212 - Table 7.3.1.2.2-1
Configuratio is set as follows. I set N_ANTENNA_DL to 4 meaning that I want to use max 4x4 MIMO. This mean that the number of physical antenna is set to 4 but it does not necessarily mean that it is only for 4 layer and 4x4 MIMO.
In 3GPP specification, you would just specify a single value that are mapped to a set of property made up of dmrs type, dmrs max length, number of dmrs cdm group and dmrs port numbers. However in Amarisoft callbox, it does not allow you to use the single number value. You need to configure all of these parameters individually. The callbox (gNB) parameter related to this setting are dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports. Among this, dmrs_type and dmrs_max_len determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be used.
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.
Check DCI 1_1 and see if antenna_ports is set as intended. In this specific example, antenna_ports value is set to 7. You need to compare this value with the dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports and 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4
Sub Test 5 : Value = 9
This subtest is to show how to configure and verify of the value = 9 in 38.212 - Table 7.3.1.2.2-1
Configuratio is set as follows. I set N_ANTENNA_DL to 4 meaning that I want to use max 4x4 MIMO. This mean that the number of physical antenna is set to 4 but it does not necessarily mean that it is only for 4 layer and 4x4 MIMO.
In 3GPP specification, you would just specify a single value that are mapped to a set of property made up of dmrs type, dmrs max length, number of dmrs cdm group and dmrs port numbers. However in Amarisoft callbox, it does not allow you to use the single number value. You need to configure all of these parameters individually. The callbox (gNB) parameter related to this setting are dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports. Among this, dmrs_type and dmrs_max_len determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be used.
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.
Check DCI 1_1 and see if antenna_ports is set as intended. In this specific example, antenna_ports value is set to 9. You need to compare this value with the dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports and 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4
Test 2 : Table 7.3.1.2.2-2
This test is to show how to configure DMRS patterns of 38.212 - Table 7.3.1.2.2-2 and verify it . You can configure different DMRS pattern value from the table by setting n_dmrs_cdm_groupds, dmrs_ports, dmrs_len
Configuration
I have used gnb-sa-dmrs-7-3-1-2-2-2.cfg which is copied and modified from gnb-sa.cfg
I am using the default mme, ims config as shown below.
In gnb-sa-dmrs-7-3-1-2-2-2.cfg, it is configured as follows. I set N_ANTENNA_DL to 4 meaning that I want to use max 4x4 MIMO. This mean that the number of physical antenna is set to 4 but it does not necessarily mean that it is only for 4 layer and 4x4 MIMO.
In 3GPP specification, you would just specify a single value that are mapped to a set of property made up of dmrs type, dmrs max length, number of dmrs cdm group and dmrs port numbers. However in Amarisoft callbox, it does not allow you to use the single number value. You need to configure all of these parameters individually. The callbox (gNB) parameter related to this setting are dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports. Among this, dmrs_type and dmrs_max_len determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be used.
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. In this tutorial, I am checking RRC Setup for PDSCH DMRS Configuration. This parameter determines which table out of 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4 should be applied.
Check DCI 1_1 and see if antenna_ports is set as intended. In this specific example, antenna_ports value is set to 28. You need to compare this value with the dmrs_type, dmrs_max_len, n_layer, n_dmrs_cdm_groups and dmrs_ports and 38.212 - Table 7.3.1.2.2-1 through Table 7.3.1.2.2-4
RRC / NAS Signaling
MIB(SA)
: This is MIB message sent by gNB (
MIB ::= SEQUENCE {
...
dmrs-TypeA-Position ENUMERATED {pos2, pos3},
...
}
RrcSetup(SA)
: This is the RrcSetup message sent by gNB to configure NR SA. (
{
message c1: rrcSetup: {
rrc-TransactionIdentifier 0,
criticalExtensions rrcSetup: {
radioBearerConfig {
...
},
masterCellGroup {
cellGroupId 0,
rlc-BearerToAddModList {
...
},
mac-CellGroupConfig {
...
},
physicalCellGroupConfig {
pdsch-HARQ-ACK-Codebook dynamic
},
spCellConfig {
spCellConfigDedicated {
initialDownlinkBWP {
pdcch-Config setup: {
...
},
pdsch-Config setup: {
dmrs-DownlinkForPDSCH-MappingTypeA setup: {
dmrs-AdditionalPosition pos1
},
...
},
firstActiveDownlinkBWP-Id 0,
uplinkConfig {
initialUplinkBWP {
pucch-Config setup: {
...
},
pusch-Config setup: {
txConfig codebook,
dmrs-UplinkForPUSCH-MappingTypeA setup: {
dmrs-AdditionalPosition pos1,
transformPrecodingDisabled {
}
},
...
},
srs-Config setup: {
...
},
firstActiveUplinkBWP-Id 0,
pusch-ServingCellConfig setup: {
}
},
pdcch-ServingCellConfig setup: {
},
pdsch-ServingCellConfig setup: {
...
},
csi-MeasConfig setup: {
...
}
}
},
tag-Id 0