High difference in BLER and throughput for NOMA pairs

Dear VCCS team,

I am doing a simulation of a simple system that consists of 2 pico base stations, 3 pedestrian and 3 vehicular users all with predefined positions. For the first scenario, I am analyzing system without NOMA pairing and that gives me expected performance as given on the following photo. Throughput for user 5 is 1.37 Mbps and for user 6 is 4.07 Mbps.

In the second scenario I am using NOMA pairing by deltadB=3 dB which makes one NOMA pair in the simulation: 5th and 6th user. When I get performance results I see that BLER for these users is very high which results in throughput being 0 Mbps for both users in NOMA pair. Is there some reasoning behind this behaviour? The results are given in the following photo:

I tested similar scenario with using just one pico base station and I get the results that I expect: when using NOMA getting higher throughput for cell center users and lower throughput for cell edge users in regards to the same scenario without NOMA.

Here is my scenario file:

> function params = HetNet(params)
> 
> %% General Configuration
> % time config
> params.time.slotsPerChunk = 10;
> params.time.feedbackDelay = 1; % small feedback delay
> 
> % set NOMA parameters
> params.noma.interferenceFactorSic	= 1; % no error propagation
> params.noma.deltaPairdB             = 3;
> params.noma.mustIdx                 = parameters.setting.MUSTIdx.Idx01;
> % perform NOMA transmssion even if far user CQI is low - this will increase th number of failed transmissions
> params.noma.abortLowCqi             = false;
> 
> % disable HARQ - not compatible with NOMA
> params.useHARQ = false;
> 
> % define the region of interest & boundary region
> params.regionOfInterest.xSpan = 300;
> params.regionOfInterest.ySpan = 300;
> 
> % set carrier frequency and bandwidth
> params.carrierDL.centerFrequencyGHz             = 1.805; % in GHz
> params.transmissionParameters.DL.bandwidthHz    = 10e6; % in Hz
> 
> % associate users to cell with strongest receive power - favor femto cell association
> params.cellAssociationStrategy                      = parameters.setting.CellAssociationStrategy.maxReceivePower;
> params.pathlossModelContainer.cellAssociationBiasdB = [0, 0, 0];
> 
> % weighted round robin scheduler - scheduling weights are set at the user
> params.schedulerParameters.type = parameters.setting.SchedulerType.roundRobin;
> 
> % additional object that should be saved into simulation results
> params.save.losMap          = true;
> params.save.isIndoor        = true;
> 
> %% pathloss model container
> indoor	= parameters.setting.Indoor.indoor;
> outdoor	= parameters.setting.Indoor.outdoor;
> LOS     = parameters.setting.Los.LOS;
> NLOS	= parameters.setting.Los.NLOS;
> 
> % pico base station models
> pico = parameters.setting.BaseStationType.pico;
> params.pathlossModelContainer.modelMap{pico,	indoor,     LOS}    = parameters.pathlossParameters.FreeSpace;
> params.pathlossModelContainer.modelMap{pico,	indoor,     NLOS}   = parameters.pathlossParameters.FreeSpace;
> params.pathlossModelContainer.modelMap{pico,	outdoor,	LOS}    = parameters.pathlossParameters.FreeSpace;
> params.pathlossModelContainer.modelMap{pico,	outdoor,	NLOS}   = parameters.pathlossParameters.FreeSpace;
> 
> 
> %% Configuration of the Network Elements
> % pico base stations along a straight street
> posPico    =  [-100,100;...
>                 0,0];
> streetPicoBS = parameters.basestation.PredefinedPositions();
> streetPicoBS.positions                  = posPico;
> streetPicoBS.antenna                    = parameters.basestation.antennas.Omnidirectional;
> streetPicoBS.antenna.nTX                = 1;
> streetPicoBS.antenna.height             = 5;
> streetPicoBS.antenna.baseStationType    = parameters.setting.BaseStationType.pico;
> streetPicoBS.antenna.transmitPower      = 35;
> params.baseStationParameters('pico') = streetPicoBS;
> 
> 
> % pedestrian users
> % %  poissonPedestrians = parameters.user.Poisson2D();
> posPed    =  [-50,50, 100;...
>                 100,-100, -20;...
>                 1,2,3];
> poissonPedestrians = parameters.user.PredefinedPositions();
> poissonPedestrians.positions                  = posPed;
> % poissonPedestrians.nElements            = 4; % number of users placed
> poissonPedestrians.nRX                  = 1;
> poissonPedestrians.speed                = 0; % static user
> poissonPedestrians.userMovement.type    = parameters.setting.UserMovementType.ConstPosition;
> poissonPedestrians.schedulingWeight     = 10; % assign 10 resource blocks when scheduled
> poissonPedestrians.indoorDecision       = parameters.indoorDecision.Random(0.5);
> poissonPedestrians.losDecision          = parameters.losDecision.UrbanMacro5G;
> poissonPedestrians.channelModel         = parameters.setting.ChannelModel.PedA;
> params.userParameters('poissonUserPedestrian') = poissonPedestrians;
> 
> % car user distributed through a Poisson point process
>  posVeh    =  [-100, 20,0;...
>                 -100, 50,0;...
>                 1, 2, 3];
> poissonCars = parameters.user.PredefinedPositions();
> poissonCars.positions                  = posVeh;
> %  poissonCars                     = parameters.user.Poisson2D();
> %  poissonCars.nElements           = 4;
> poissonCars.nRX                 = 1;
> poissonCars.speed               = 50;
> poissonCars.userMovement.type   = parameters.setting.UserMovementType.RandConstDirection;
> poissonCars.schedulingWeight    = 20; % assign 20 resource blocks when scheduled
> poissonCars.indoorDecision      = parameters.indoorDecision.Static(parameters.setting.Indoor.outdoor);
> poissonCars.losDecision         = parameters.losDecision.UrbanMacro5G;
> poissonCars.channelModel        = parameters.setting.ChannelModel.VehB;
> params.userParameters('poissonUserCar') = poissonCars;
> 
> end

Thank you in advance for your help.

Best,
Džana

Hello Džana,

since the NOMA scheme uses successive interference cancellation, the transmission of the near user can suffer from error propagation stemming from the failure to decode the far user signal. This is especially a problem if the user SINR is low even without NOMA transmission.

Another issue can be that the far user does not have the channel condition to support transmission with a CQI of 6, that is always set for the NOMA far user. Try using the abortLowCqi feature to avoid these transmission failures.

Best regards,
Agnes