Evaluate 3GPP Indoor Reference Scenario
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:
Create an eMBB InH scenario representing a single floor of a building.
Create and configure base stations (gNBs) and user equipments (UEs).
Connect UEs to the gNBs, and add full buffer uplink (UL) and downlink (DL) application traffic between them.
Configure and add a scheduler and channel model.
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.
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.
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: 8.36 Mbps Achieved UL throughput for each UE: [2.96 5.4] Peak UL spectral efficiency: 25.88 bits/s/Hz. Achieved UL spectral efficiency for cell: 0.84 bits/s/Hz Block error rate for each UE in the UL direction: [0.375 0.375] 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 measurement of Wideband SINR, the maximum number of users per TTI value is set to 1. For more information about the simulation scenario, see CompareInHScenarioWith3GPPReferenceScenario.m script.
The assumptions and limitations of these simulations are:
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.
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.
By adjusting the link adaptation (LA) configuration parameters, it is possible to stabilize BLER within two consecutive CSI reporting instances.
The subsequent session includes a plot of the signal to interference ratio (SINR), which is part of the PDSCH measurements.
The simulation supports a single codeword, allowing for a maximum UL and DL rank of 4.
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.
Analyze the Impact of Link Adaptation, Channel, and Antenna Configuration on KPIs
You can specify different antenna configurations, LA parameters, and transmit power and analyze their impact on the system 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:
helperNRMetricsVisualizer
— Implements metrics visualization functionalityh3GPPReferenceScenarios
— Generates InH scenariohelperNetworkVisualizer
— Implements scenario visualization functionalityh38901Channel
— Implements 3GPP TR 38.901 channel modelh38901Scenario
— Implements 3GPP TR 38.901 system-level scenario builder
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.