Amarisoft

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.

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

 

 

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.

TestSetup Callbox UE 1sdr 01

 

 

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 : 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

NR SA DMRS PDSCH Config 01

I am using the default mme, ims config as shown below.

NR BWP Test1 Configuration 02

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.

NR SA DMRS PDSCH Config 02

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

NR SA DMRS PDSCH Config 03

 

 

Perform the Test

First run the test and check on the number of physical antenna using cell phy command. (NOTE : The ANT parameter just indicates the number of physical antenna allocated for the test, it does not indicates the dynamic status of the antenna determined by DMRS pattern)

NR SA DMRS PDSCH Run 01

Then setup a call and make it sure that call connection is OK using t command.  

NR SA DMRS PDSCH Run 02

NOTE : This trace does not indicates the details of PDSCH / PUSCH configuration like how many layers are actually used. If you flow high data rate, you would notice on the number of layers being used from the throughput changes. But it would be the best to check with the log for the clear confirmation about the number of layers and DMRS pattern.

 

 

Log Analysis

Sample Log

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.

NR SA DMRS PDSCH Log 01

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.

NR SA DMRS PDSCH Log 02

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.

NR SA DMRS PDSCH Log 03

 

 

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.

NR SA DMRS PDSCH Test 01 SubTest 01 01

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.

NR SA DMRS PDSCH Test 01 SubTest 01 02

Perform the test.

First run the test and check on the number of physical antenna using cell phy command. (NOTE : The ANT parameter just indicates the number of physical antenna allocated for the test, it does not indicates the dynamic status of the antenna determined by DMRS pattern)

NR SA DMRS PDSCH Test 01 SubTest 01 03

Then setup a call and make it sure that call connection is OK using t command.  

NR SA DMRS PDSCH Test 01 SubTest 01 04

NOTE : This trace does not indicates the details of PDSCH / PUSCH configuration like how many layers are actually used. If you flow high data rate, you would notice on the number of layers being used from the throughput changes. But it would be the best to check with the log for the clear confirmation about the number of layers and DMRS pattern.

 

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

NR SA DMRS PDSCH Test 01 SubTest 01 05

 

 

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.

NR SA DMRS PDSCH Test 01 SubTest 01 01

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.

NR SA DMRS PDSCH Test 01 SubTest 02 02

Perform the test.

First run the test and check on the number of physical antenna using cell phy command. (NOTE : The ANT parameter just indicates the number of physical antenna allocated for the test, it does not indicates the dynamic status of the antenna determined by DMRS pattern)

NR SA DMRS PDSCH Test 01 SubTest 01 03

Then setup a call and make it sure that call connection is OK using t command.  

NR SA DMRS PDSCH Test 01 SubTest 01 04

NOTE : This trace does not indicates the details of PDSCH / PUSCH configuration like how many layers are actually used. If you flow high data rate, you would notice on the number of layers being used from the throughput changes. But it would be the best to check with the log for the clear confirmation about the number of layers and DMRS pattern.

 

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

NR SA DMRS PDSCH Test 01 SubTest 02 05

 

 

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.

NR SA DMRS PDSCH Test 01 SubTest 01 01

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.

NR SA DMRS PDSCH Test 01 SubTest 03 02

Perform the test.

First run the test and check on the number of physical antenna using cell phy command. (NOTE : The ANT parameter just indicates the number of physical antenna allocated for the test, it does not indicates the dynamic status of the antenna determined by DMRS pattern)

NR SA DMRS PDSCH Test 01 SubTest 01 03

Then setup a call and make it sure that call connection is OK using t command.  

NR SA DMRS PDSCH Test 01 SubTest 01 04

NOTE : This trace does not indicates the details of PDSCH / PUSCH configuration like how many layers are actually used. If you flow high data rate, you would notice on the number of layers being used from the throughput changes. But it would be the best to check with the log for the clear confirmation about the number of layers and DMRS pattern.

 

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

NR SA DMRS PDSCH Test 01 SubTest 03 05

 

 

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.

NR SA DMRS PDSCH Test 01 SubTest 01 01

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.

NR SA DMRS PDSCH Test 01 SubTest 04 02

Perform the test.

First run the test and check on the number of physical antenna using cell phy command. (NOTE : The ANT parameter just indicates the number of physical antenna allocated for the test, it does not indicates the dynamic status of the antenna determined by DMRS pattern)

NR SA DMRS PDSCH Test 01 SubTest 01 03

Then setup a call and make it sure that call connection is OK using t command.  

NR SA DMRS PDSCH Test 01 SubTest 01 04

NOTE : This trace does not indicates the details of PDSCH / PUSCH configuration like how many layers are actually used. If you flow high data rate, you would notice on the number of layers being used from the throughput changes. But it would be the best to check with the log for the clear confirmation about the number of layers and DMRS pattern.

 

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

NR SA DMRS PDSCH Test 01 SubTest 04 05

 

 

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.

NR SA DMRS PDSCH Test 01 SubTest 01 01

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.

NR SA DMRS PDSCH Test 01 SubTest 05 02

Perform the test.

First run the test and check on the number of physical antenna using cell phy command. (NOTE : The ANT parameter just indicates the number of physical antenna allocated for the test, it does not indicates the dynamic status of the antenna determined by DMRS pattern)

NR SA DMRS PDSCH Test 01 SubTest 01 03

Then setup a call and make it sure that call connection is OK using t command.  

NR SA DMRS PDSCH Test 01 SubTest 01 04

NOTE : This trace does not indicates the details of PDSCH / PUSCH configuration like how many layers are actually used. If you flow high data rate, you would notice on the number of layers being used from the throughput changes. But it would be the best to check with the log for the clear confirmation about the number of layers and DMRS pattern.

 

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

NR SA DMRS PDSCH Test 01 SubTest 05 05

 

 

 

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

NR SA DMRS PDSCH Test 2 Config 01

I am using the default mme, ims config as shown below.

NR BWP Test1 Configuration 02

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.

NR SA DMRS PDSCH Test 2 Config 02

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.

NR SA DMRS PDSCH Test 2 Config 03

 

 

Perform the Test

First run the test and check on the number of physical antenna using cell phy command. (NOTE : The ANT parameter just indicates the number of physical antenna allocated for the test, it does not indicates the dynamic status of the antenna determined by DMRS pattern)

NR SA DMRS PDSCH Run 01

Then setup a call and make it sure that call connection is OK using t command.  

NR SA DMRS PDSCH Run 02

NOTE : This trace does not indicates the details of PDSCH / PUSCH configuration like how many layers are actually used. If you flow high data rate, you would notice on the number of layers being used from the throughput changes. But it would be the best to check with the log for the clear confirmation about the number of layers and DMRS pattern.

 

 

Log Analysis

Sample Log

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.

NR SA DMRS PDSCH Test 2 Log 01

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

NR SA DMRS PDSCH Test 2 Log 02

 

 

 

RRC / NAS Signaling

 

MIB(SA)

: This is MIB message sent by gNB (NOTE :  MIB message is not logged in Amarisoft gNB log, but some of the MIB contents are printed as a meta data at the beginiing of the log file as shown here)

 

MIB ::= SEQUENCE {

    ...

    dmrs-TypeA-Position                 ENUMERATED {pos2, pos3},

   ...

}

 

 

RrcSetup(SA)

: This is the RrcSetup message sent by gNB  to configure NR SA. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

 

{

  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