Main Content

Evaluate 3GPP Indoor Reference Scenario

Since R2024a

This example shows how to model, simulate, and evaluate the system-level performance of a 3GPP enhanced mobile broadband (eMBB) indoor hotspot (InH) scenario, described in 3GPP TR 38.913.

Using this example, you can:

  1. Create an eMBB InH scenario representing a single floor of a building.

  2. Create and configure base stations (gNBs) and user equipments (UEs).

  3. Connect UEs to the gNBs, and add full buffer uplink (UL) and downlink (DL) application traffic between them.

  4. Configure and add a scheduler and channel model.

  5. Run the simulation, and visualize the key performance indicators (KPIs) such as cell throughput, spectral efficiency, and block error rate (BLER).

Additionally, you can use this example to perform these tasks.

eMBB InH Reference Scenario

This example models and simulates an eMBB InH scenario consisting of a single floor within a building.

UpdatedInH.png

These are the specifications of the scenario:

  • Floor dimensions — The scenario consists of a rectangular floor 120 meters in length and 50 meters in width. The ceiling height is uniformly set at 3 meters throughout the floor.

  • gNB distribution — Twelve gNBs, also known as sites, are strategically placed throughout the floor area. The gNBs are organized in a grid layout, each spaced 20 meters apart, to ensure complete coverage within the indoor scenario.

  • UE distribution — The scenario allocates 10 UEs to each gNB within the indoor scenario. The distribution of UEs is intended to be random, confined to the area delineated by the location of each gNB.

The indoor scenario has been modeled to cover a variety of typical indoor environments, including office spaces and shopping centers. The scenario accurately simulates common office layouts, incorporating features such as cubicles, walled private offices, expansive open areas, and corridors. Depending on your simulation requirements, you can configure the channel model as "Open" or "Mixed".

"Open" — The Open Office environment consists of a large open space with minimal obstructions, like an open-plan office area. The signal propagation is relatively uniform, and the user distribution is typically even. This scenario is used to model high-capacity areas, where you expect many users to access the network simultaneously.

"Mixed" — The Mixed Office environment is more complex, consisting of a combination of open areas and closed offices with walls and partitions. The user distribution is more varied, and the signal experiences more multipath fading and shadowing effects. Use this scenario to model typical office environments, with a mix of open spaces and enclosed rooms.

Simulation Assumptions

In this example, these assumptions apply:

  • The gNB-UE association is based on the proximity of the UE to the gNB.

  • A UE connects to the gNB that is nearest to it.

  • The UEs are randomly placed within a circular area around each gNB.

  • Due to single codeword transmission, the DL can achieve a maximum rank of 4.

  • The UL transmission maintains a fixed rank of 1.

Configure and Simulate Scenario

Check if the Communications Toolbox™ Wireless Network Simulation Library support package is installed. If the support package is not installed, MATLAB® returns an error with a link to download and install the support package.

wirelessnetworkSupportPackageCheck

Reset the seed value for the random number generator. The seed value controls the pattern of random number generation. To improve the accuracy of your simulation results after running the simulation, you can change the seed value, run the simulation again, and average the results over multiple simulations.

rng("default");

Specify the simulation time in terms of number of 10 ms frames.

numFrameSimulation = 1;

Initialize the wireless network simulator.

networkSimulator = wirelessNetworkSimulator.init;

Configure gNBs and UEs

Specify the frequency and bandwidth at which the carrier served by the gNB operates. The subcarrier spacing in the carrier frequency is 15 kHZ.

carrierFreq = 4e9;  % In Hz
channelBW = 10e6; % In Hz

Specify the number of gNBs in the vertical and horizontal directions.

numVerticalGNB = 2;
numHorizontalGNB = 6; 

Specify the number of transmit and receive antennas for the gNBs.

gNBNumTransmitAntennas = 32;
gNBNumReceiveAntennas = 4;

Specify the noise figure and transmit power of the gNB.

gNBNoiseFigure = 5; % In dB
gNBTxPower = 21;    % In dBm

Specify the number of UEs connected to each gNB. According to the 3GPP TR 38.913, a gNB is typically assigned 10 UEs. However, To keep simulation runtime in check, this example uses a default value of 2 UEs per gNB.

numUEsPerGNB = 2;

Specify the number of transmit and receive antennas for the UEs.

ueNumTransmitAntennas = 4;
ueNumReceiveAntennas = 4;

Specify the noise figure and transmit power of the UE.

ueNoiseFigure = 7; % In dB
ueTxPower = 23;    % In dBm

Create gNBs and UEs in each cell of the InH scenario.

scenario = h3GPPReferenceScenarios(Scenario="InH",NumUEs=numUEsPerGNB, ...
     NumGNBsHorizontal=numHorizontalGNB,NumGNBsVertical=numVerticalGNB, ...
     Visualization=false);
gNBCoordinates = scenario.GNBPositions;
ueCoordinates = scenario.UEPositions;

Create gNBs and Configure Scheduler

Create the gNBs from the specified configuration. Each gNB operates one NR cell.

gNBs = nrGNB(Position=gNBCoordinates,NoiseFigure=gNBNoiseFigure, ...
     CarrierFrequency=carrierFreq,ChannelBandwidth=channelBW, ...
     NumReceiveAntennas=gNBNumReceiveAntennas,NumTransmitAntennas=gNBNumTransmitAntennas, ...
     TransmitPower=gNBTxPower);

Compute the total number of gNBs.

numGNBs = size(gNBs,2);

Configure the LA parameters. The parameters specify a 10 percent target BLER for the UL and DL configurations.

laConfigDL = struct("StepUp",0.27,"StepDown",0.03,"InitialOffset",1);
laConfigUL = struct("StepUp",0.27,"StepDown",0.03,"InitialOffset",1);

Configure the scheduler by specifying the gNBs, maximum number of users per transmission time interval (TTI), and LA configuration.

configureScheduler(gNBs,MaxNumUsersPerTTI=10,...
    LinkAdaptationConfigDL=laConfigDL,LinkAdaptationConfigUL=laConfigUL)

Configure the UL power control parameters.

for gNBIndex = 1:numGNBs
    configureULPowerControl(gNBs(gNBIndex),Alpha=0.6)
end

Create UEs and Configure Application Traffic

Create the UEs from the specified configuration.

UEs = nrUE(Position=ueCoordinates,TransmitPower=ueTxPower, ...
     NumTransmitAntennas=ueNumTransmitAntennas, ...
     NumReceiveAntennas=ueNumReceiveAntennas,NoiseFigure=ueNoiseFigure);

Connect the UEs to the gNB. Configure and add UL and DL full buffer traffic between each gNB and its connected UEs.

startUEIndex = 1;
ueListInGNB = cell(1,numGNBs);
for gNBIndex = 1:numGNBs
    connectUE(gNBs(gNBIndex),UEs(startUEIndex:startUEIndex+numUEsPerGNB-1), ...
        CSIReportPeriodicity=160,FullBufferTraffic="on")
    ueListInGNB{gNBIndex} = UEs(startUEIndex:startUEIndex+numUEsPerGNB-1);
    startUEIndex = startUEIndex + numUEsPerGNB;
end

Add the gNBs and UEs to the wireless network simulator.

addNodes(networkSimulator,gNBs);
addNodes(networkSimulator,UEs);

Configure Channel Model

Create a system-level channel model for the scenario.

channel = h38901Channel(Scenario="InH");

Specify the channel type as "Open" or "Mixed".

channel.OfficeType = "Mixed";
chcfg.Site = 1:numGNBs;

Specify the transmit antenna array orientation.

chcfg.TransmitArrayOrientation = [0 90 0]';

Add the channel to the wireless network simulator.

addChannelModel(networkSimulator,@channel.channelFunction);
% Connect the simulator and channel model
connectNodes(channel,networkSimulator,chcfg,InterfererHasSmallScale=true);

Run Simulation and Visualize Metrics

Specify the number of metric steps.

numMetricsSteps = 10*numFrameSimulation;

Specify the cell ID for the desired gNB to access its corresponding visualizations and metrics.

cellOfInterest = 1;

To visualize PHY and MAC metrics, create and configure the helperNRMetricsVisualizer object.

metricsVisualizer = cell(numGNBs,1);
for cellIdx = 1:numGNBs
    if cellIdx == cellOfInterest
        metricsVisualizer{cellIdx} = helperNRMetricsVisualizer(gNBs(cellIdx),ueListInGNB{cellIdx}, ...
            NumMetricsSteps=numMetricsSteps,PlotSchedulerMetrics=false,PlotPhyMetrics=false, ...
            CellOfInterest=cellIdx,PlotCDFMetrics=true);
    else
        metricsVisualizer{cellIdx} = helperNRMetricsVisualizer(gNBs(cellIdx),ueListInGNB{cellIdx}, ...
            NumMetricsSteps=numMetricsSteps,PlotSchedulerMetrics=false,PlotPhyMetrics=false, ...
            CellOfInterest=cellIdx,PlotCDFMetrics=false);
    end
end

Compute the simulation time from the specified numFrameSimulation frames.

simTime = numFrameSimulation*1e-2;

Run the simulation.

run(networkSimulator,simTime)

Results

The results display the system KPIs, which include cell throughput, spectral efficiency, and empirical cumulative distribution function (ECDF) plots for both cell throughput and average BLER. Use the ECDF plots to determine the proportion of users whose throughput and BLER is less than or equal to a specific value indicated on the x-axis.

fprintf("\n\nMetrics for site %d:\n\n",cellOfInterest)
Metrics for site 1:
displayPerformanceIndicators(metricsVisualizer{cellOfInterest})
Peak UL throughput: 258.80 Mbps. Achieved cell UL throughput: 11.94 Mbps
Achieved UL throughput for each UE: [8.61        3.33]
Peak UL spectral efficiency: 25.88 bits/s/Hz. Achieved UL spectral efficiency for cell: 1.19 bits/s/Hz 
Block error rate for each UE in the UL direction: [0       0.625]

Peak DL throughput: 258.80 Mbps. Achieved cell DL throughput: 7.94 Mbps
Achieved DL throughput for each UE: [0        7.94]
Peak DL spectral efficiency: 25.88 bits/s/Hz. Achieved DL spectral efficiency for cell: 0.79 bits/s/Hz
Block error rate for each UE in the DL direction: [1       0.444]

Display the system KPI plots for the scenario.

scenario.displayScenarioPlots(metricsVisualizer,numGNBs,numFrameSimulation)

Further Exploration

You can use this example to further explore these capabilities.

Compare the Wideband SINR in eMBB InH Scenario with 3GPP Reference Scenario

The simulation scenario in the 3GPP Document RP-180524 distributes UEs randomly across a rectangular area around each gNB, with UE to gNB associations determined by path loss calculations. The simulation runs a full buffer traffic model, adopts resource allocation type 1 (RAT-1), and uses a round-robin scheduling algorithm. To achieve a target BLER of 10 percent in the UL and DL, respectively, the simulation configures the LA parameters, LinkAdaptationConfigUL and LinkAdaptationConfigDL. The configuration sets the UL power control alpha parameter to 0.6. For accurate measurment of Wideband SINR, the maximum number of users per TTI value is set to 1.

The assumptions and limitations of these simulations are:

  1. Path loss measurements determine UE attachment. The simulation does not support attachment based on reference signal received power (RSRP) as defined in the 3GPP TR 38.901 specification.

  2. The rank selection algorithm assumes perfect channel estimation and overlooks interference from neighboring cells. Consequently, this algorithm impacts spectral efficiency by creating a situation where the majority of UEs choose the highest rank of 4, leading to a significant rise in BLER.

  3. By adjusting the link adapatation (LA) configuration parameters, it is possible to stabilize BLER within two consecutive CSI reporting instances.

  4. The subsequent session includes a plot of the signal to interference ratio (SINR), which is part of the PDSCH measurements.

  5. The simulation supports 'one' codeword with a maximum DL rank of 4.

  6. The simulation configuration has a maximum UL rank of 1.

The results also contain a comparison of the wideband SINR in the InH scenario with the 3GPP reference models, following the assumptions and specficiations in the section 4.1 in the 3GPP document RP-180524.

SIR_1.png

Analyze the Impact of Link Adapation, Channel, and Antenna Configuration on KPIs

  • You can specify different antenna configurations, LA parameters, and transmit power and analyze their impact on the sytem KPIs such as the throughput, spectral efficiency and BLER.

  • You can also adjust the parameters such as "OfficeType" and "InterfererHasSmallScale" in the channel configuration to observe their impact on the system KPIs. When you enable the "InterfererHasSmallScale" parameter, the simulation includes small-scale fading, providing a more accurate representation of interference. However, if your priority is computational efficiency in the simulation, disabling this feature can significantly increase simulation speed.

Supporting Functions

The example uses these helper objects and functions:

References

[1] 3GPP TR 38.913. “Study on Scenarios and Requirements for Next Generation Access Technologies.” Release 17. 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] Huawei, Summary of Calibration Results for IMT-2020 Self Evaluation, 3GPP TSG RAN Meeting 79, RP-180524, 2018.

See Also

Objects

Related Topics