MIMO in nr/examples does not work?

156 views
Skip to first unread message

Leon Chen

unread,
Apr 18, 2024, 12:34:45 AM4/18/24
to 5G-LENA-users
I tried changing the number of antenna configuration in nr/examples/cttc-nr-simple-qos-sched from UE 1x1 and gNB 1x1 to UE 1x2 and gNB 4x8 but did not see any difference in the simulation statistics. The NR code is Release NR-v2.6.

Scenario 1: Before the change (i.e., comes with the release)
    // Antennas for all the UEs
    nrHelper->SetUeAntennaAttribute("NumRows", UintegerValue(1));
    nrHelper->SetUeAntennaAttribute("NumColumns", UintegerValue(1));

    // Antennas for all the gNbs
    nrHelper->SetGnbAntennaAttribute("NumRows", UintegerValue(1));
    nrHelper->SetGnbAntennaAttribute("NumColumns", UintegerValue(1));

Scenario 2: After the change
    // Antennas for all the gNbs
    nrHelper->SetGnbAntennaAttribute("NumRows", UintegerValue(1));
    nrHelper->SetGnbAntennaAttribute("NumColumns", UintegerValue(2));
   

    // Antennas for all the gNbs
    nrHelper->SetGnbAntennaAttribute("NumRows", UintegerValue(4));
    nrHelper->SetGnbAntennaAttribute("NumColumns", UintegerValue(8));

For both scenarios, I increased the packet sizes by 10x to overload the network:
    if (priorityTrafficScenario == 0) // saturation
    {
        udpPacketSizeULL = 30000;
        udpPacketSizeBe = 30000;
    }

I expect scenario 2 to have higher throughput and lower delay than scenario 1. But the output statistics are exactly the same:
Flow 1 (1.0.0.2:49153 -> 7.0.0.2:1234) proto UDP
  Tx Packets: 500
  Tx Bytes:   15014000
  TxOffered:  240.224000 Mbps
  Rx Bytes:   420392
  Throughput: 6.726272 Mbps
  Mean delay:  254.125507 ms
  Mean jitter:  30.285714 ms
  Rx Packets: 14
Flow 2 (1.0.0.2:49154 -> 7.0.0.3:1235) proto UDP
  Tx Packets: 500
  Tx Bytes:   15014000
  TxOffered:  240.224000 Mbps
  Rx Bytes:   1081008
  Throughput: 17.296128 Mbps
  Mean delay:  240.778563 ms
  Mean jitter:  12.111111 ms
  Rx Packets: 36


  Mean flow throughput: 12.011200
  Mean flow delay: 247.452035

Could someone reproduce the result?

Thanks.

Gabriel Ferreira

unread,
Apr 18, 2024, 6:11:58 AM4/18/24
to 5G-LENA-users
MIMO does work, but needs to be enabled, which isn't done in this example.
cttc-nr-mimo-demo shows you how to set up and enable it.

Katerina Koutlia

unread,
Apr 19, 2024, 4:16:54 AM4/19/24
to Gabriel Ferreira, 5G-LENA-users
Hi,

The higher number of antenna elements should show some increase, however if your system is saturated you will not see an increase in the throughput. You can use a system that is not saturated. Also, what I would do in order to be able to evaluate better this change, is to use good propagation conditions (e.g., LoS, no shadowing, ...)

On the other hand, if you are interested in MIMO, then yes, you should check the example Gabriel indicates.

BR,
Kat

--
You received this message because you are subscribed to the Google Groups "5G-LENA-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to 5g-lena-user...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/5g-lena-users/08bbb4fe-bf8d-4e74-ac62-5a29b53ad615n%40googlegroups.com.

Leon Chen

unread,
Apr 19, 2024, 7:59:55 PM4/19/24
to 5G-LENA-users
Thanks for the replies! I tried changing the number of antennas for the UE in cttc-nr-mimo-demo.cc and did not see any difference in the output statistics.

Specifically, I copied nr/examples/cttc-nr-mimo-demo.cc to scratch/cttc-nr-mimo-demo-2.cc, and tested in the first run with
    uint16_t numRowsUe = 1;
    uint16_t numColumnsUe = 1;
and in th second run with
    uint16_t numRowsUe = 2;
    uint16_t numColumnsUe = 2;

The output statistics were the same in the two runs:

[0/2] Re-checking globbed directories...
[2/2] Linking CXX executable ../build/scratch/ns3.40-cttc-nr-mimo-demo-2-default

Flow 1 (1.0.0.2:49153 -> 7.0.0.2:1234) proto UDP
  Tx Packets: 15000
  Tx Bytes:   15420000
  TxOffered:  205.600000 Mbps
  Rx Bytes:   15165056
  Throughput: 202.200747 Mbps
  Mean delay:  10.897019 ms
  Mean jitter:  0.076990 ms
  Rx Packets: 14752


  Mean flow throughput: 202.200747
  Mean flow delay: 10.897019

Gabriel Ferreira

unread,
Apr 19, 2024, 8:02:38 PM4/19/24
to 5G-LENA-users
Did you enable the mimo feedback? It is an option of the example. 

Leon Chen

unread,
Apr 19, 2024, 8:44:01 PM4/19/24
to 5G-LENA-users
I didn't see any command commented with 'feedback' or something similar. But I did see these:
    uint16_t fixedRankIndicator = 2;
    bool useFixedRi = true;


Are these what you referred to 'enable the mimo feedback'? I changed useFixedRi from true to false, but didn't see any difference in the output statistics. If fixedRankIndicator=2 means the rank=2, then the setting doesn't make sense because the UE has only 1 antenna in the original cttc-nr-mimo-demo.cc.

Thanks.

Gabriel Ferreira

unread,
Apr 21, 2024, 7:56:49 AM4/21/24
to 5G-LENA-users
Hmm, I didn't read it was release 2.6. The mimo feedback attribute was introduced in 3.0. But yes, try disabling the fixed ri.
And yes, fixedRankIndicator is rank=2. As far as I know, the setting does make sense.
Since the antennas are cross-polarized, so the number of antenna ports is twice twice the number of antenna elements.

Gabriel Ferreira

unread,
Apr 21, 2024, 7:59:49 AM4/21/24
to 5G-LENA-users
Not twice twice, just twice. That is a typo.

Leon Chen

unread,
Apr 22, 2024, 1:19:31 AM4/22/24
to 5G-LENA-users
Thanks Gabriel for the help!

I overlooked dual polarized antennas on a UE. I think the code should work. As a test, I set useFixedRi = true and varied fixedRankIndicator from 2 to 1, and the throughput was roughly halved.

Two follow-up questions:
1. I wonder if the configuration for the rank can be made for each UE-gNB pair. The current code seems to support the same configure for all the UE-gNB pairs.

    // UE rank indicator
    if (useFixedRi)
    {
        // it makes more sense to configure the rank indicator value
        // if useFixedRi is true.
        nrHelper->SetUePhyAttribute("UseFixedRi", BooleanValue(useFixedRi));
        nrHelper->SetUePhyAttribute("FixedRankIndicator", UintegerValue(fixedRankIndicator));
    }
    else
    {
        nrHelper->SetUePhyAttribute("UseFixedRi", BooleanValue(useFixedRi));
    }

2. when the rank indicator is not fixed, can we get the rank automatically determined based on the channel condition in the code (and, if possible, for each UE-gNB pair)?

Thanks.

Gabriel Ferreira

unread,
Apr 22, 2024, 4:35:15 AM4/22/24
to 5G-LENA-users
1. You can do that, just not with the current helper.
2. Depending on what you mean by channel condition, it is already the case. See the call for it in v2.6 https://gitlab.com/cttc-lena/nr/-/blob/5g-lena-v2.6.y/model/nr-ue-phy.cc#L1257

Biljana B.

unread,
Apr 26, 2024, 4:13:02 AM4/26/24
to 5G-LENA-users
Hi Leon Chen,

To add more info about the configurations. Yes, you may configure differently each UE phy and gNB phy object. That is one of the nice features of 5G-LENA. See cttc-nr-demo.cc example, there you have different examples throughout the code of how to configure by using NrHelper, or by using the NrHelper to obtain an object of interest and then configure that specific object with a specific setting. Later you need to call always UpdateConfig as it is done in cttc-nr-demo.

About the rank: If the rank is not fixed it will be dynamically determined. You can see this in the documentation of 5G-LENA 2.6. more information, or in the paper: https://arxiv.org/abs/2202.04135.

I also wanted to ask you a question,  it would be valuable feedback from you as a 5G-LENA user, why are you more interested in DP-MIMO 5G-LENA 2.6 implementation,  when there is the latest 5G-LENA 3.0 MIMO implementation which is much more general and realistic, and allows also to configure the DP case. You can read about it in the preprint here: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4795176.

Kind regards,
Biljana
Reply all
Reply to author
Forward
0 new messages