Reply To: Throughput for NOMA

Bashar Tahir

Dear Hasyimah,

The calculation of the throughput is based on the BLER of codewords mapped to multiple subcarriers and time symbols, and the resources allocation in the simulator is per-user. What you could do is to schedule the NOMA users on a single sub-carrier like this:
scStr.schedule.fixedScheduleDL{1} = ['UE1:01,UE2:UE1,none:71'];

This will superimpose UE2 on UE1 using the first sub-carrier only. The throughput results you will get afterwards will be basically the throughput of a single sub-carrier. If this is what you are looking for, make sure to set the pilotPattern to something other than “LTE Downlink”, since it requires at least 12 subcarriers per user. Also, make sure to increase the number of total time symbols to something like 169, i.e.,
scStr.modulation.nSymbolsTotal = [169]

Otherwise, the transmitted block would be too short, and might fail to be encoded if the CQI coderate is too low.

Not sure what do you mean by the system throughput. If you are talking about the downlink sum-rate, then you can go to +Results\SimulationResults.m @ line 160. This is where the throughput per user is calculated. You could sum up the throughput there to obtain the sum-rate, and then just append the sum to one of the users, so that it gets plotted automatically for you.

If you are talking about large-scale NOMA simulation on a system level, then no, you cannot do it with this simulator. Also, NOMA is not supported by our SLS simulator.

You can increase its throughput by two ways: First, you can simply assign it a higher MCS value in scStr.modulation.mcs. Notice that since the NOMA implementation follows the 3GPP standard, then the highest CQI assigned is 6. Because in the standard, the cell-edge user is limited to QPSK. However, you can customize this in +Elements/Link.m @ line 251. Currently, the cell-center user performs ML detection on the composite constellation. So if you choose 64-QAM for the cell-center and 64-QAM for the cell-edge, then the ML receiver will go through 64*64 = 4096 searches, which might slow down the simulation. But you can do it.

The second way (and is the better in my opinion), is by pairing the the cell-edge user with a cell-center user that has alot of resources allocated to it. For example, assume you have three users (UE1 and UE2 are cell-center, and UE3 is cell-edge). UE1 has 12 subcarriers and UE2 has 60 subcarriers. If you now want to bring UE3 into the game by NOMA, then pairing it with UE2 will yield a higher throughput for it, since it will have more subcarriers.

Best regards,