NR注液电池干扰建模
这个例子显示了对网络性能的影响由于下行(DL)注液电池干扰引起的附近的细胞。示例模型5 g的新收音机(NR)网络的多个单元操作在同一频带。每个细胞都有一个gNB节点放置在细胞的中心是一组用户设备(UE)节点。节点上的NR堆栈包括无线链路控制(RLC),介质访问控制(MAC),和身体层(体育)。
介绍
这个示例模型:
同波道注液电池干扰。
Slot-based轮循调度的物理下行共享信道(PDSCH)资源。
自由空间路径损耗(FSPL)模型。
单输入单输出(输出)天线配置。
Link-to-system-mapping-based抽象的体育。
在本例中,您认为控制包,如DL作业,PDSCH反馈,和信道质量指示医院药学部()报告,带外传输。带外指的是传播不需要资源。它也指的是保证无误。
同信道干扰
同信道细胞NR细胞操作在同一频率。他们可以相互干扰。
考虑这个示例3细胞组成的网络拓扑。电池1和Cell-3操作在同一频带。电池2操作在不同的频段,不干扰电池1或Cell-3。
场景设置
检查通信工具箱安装无线网络仿真库支持包。金宝app如果支持包没有金宝app安装,MATLAB®返回一个错误的链接下载并安装包的支持。
wirelessnetwork金宝appSupportPackageCheck
创建一个无线网络模拟器。
rng (“默认”)%重置随机数发生器numFrameSimulation = 20;%仿真时间的10 ms帧的数量networkSimulator = wirelessNetworkSimulator.init;
指定的位置3 gNB节点和gNB节点感兴趣的观察指标。
gNBPositions = (1700 600 0;3000 600 0;2500 2000 0];gNBOfInterestIdx = 3;% 1和许多gNBs之间指定一个值
创建gNB节点。指定位置、载波频率、信道带宽,副载波间距,传输能量,每个gNB节点的接收增益。每个gNB节点运行一个NR细胞。
gNBs = nrGNB(位置= gNBPositions CarrierFrequency = 2.5 e9,…ChannelBandwidth = 10 e6, SubcarrierSpacing = 30 e3, TransmitPower = 32, ReceiveGain = 11);
调度程序参数设置ResourceAllocationType
通过使用configureScheduler
函数。
为gNBIdx = 1:长度(gNBs)%资源分配类型值0表示非连续分配的%频域资源在篮板方面configureScheduler (gNBs (gNBIdx) ResourceAllocationType = 0)结束
在每个细胞中生成问题节点的位置。
numCells =长度(gNBs);cellRadius = 500;%每个细胞半径(米)numUEsPerCell = 4;uePositions = generateUEPositions (cellRadius gNBPositions numUEsPerCell);
创建问题节点,并将它们连接到一个gNB节点。配置全缓冲交通DL的方向。
问题=细胞(numCells, 1);为cellIdx = 1: numCells ueNames =“问题——”+(1:尺寸(uePositions {cellIdx}, 1));问题{cellIdx} = nrUE (Name = ueNames位置= uePositions {cellIdx}, ReceiveGain = 11);connectUE (gNBs (cellIdx)问题{cellIdx}, FullBufferTraffic =“DL”)结束
gNB和问题节点添加到网络模拟器。
addnode (networkSimulator gNBs);为cellIdx = 1: numCells addnode (networkSimulator问题{cellIdx})结束
得到的细胞ID gNB感兴趣的节点。所有的可视化和指标都显示这个细胞。
cellOfInterest = gNBs (gNBOfInterestIdx) .ID;
设置enableTraces
作为真正的
记录痕迹。如果enableTraces
被设置为假
,然后痕迹不登录模拟。加快仿真,设置enableTraces
来假
。
enableTraces = true;
创建对象记录MAC层和物理层的痕迹。
linkDir = 0;%表示DL如果enableTraces simSchedulingLogger =细胞(numCells, 1);simPhyLogger =细胞(numCells, 1);为cellIdx = 1: numCells%为MAC DL调度跟踪日志创建一个对象simSchedulingLogger {cellIdx} = helperNRSchedulingLogger (numFrameSimulation,…gNBs (cellOfInterest)问题{cellOfInterest}, linkDir);%为PHY层创建一个对象跟踪日志记录simPhyLogger {cellIdx} = helperNRPhyLogger (numFrameSimulation gNBs (cellOfInterest),…问题{cellOfInterest});结束结束
定期更新输出指标的阴谋,指定numMetricsSteps
仿真中更新。numMetricsSteps
必须小于或等于槽数的模拟。
numMetricsSteps = numFrameSimulation;
创建一个对象,MAC层和物理层标准可视化。
metricsVisualizer = helperNRMetricsVisualizer (gNBs (cellOfInterest)问题{cellOfInterest},…CellOfInterest = CellOfInterest NumMetricsSteps = NumMetricsSteps,…PlotSchedulerMetrics = true, PlotPhyMetrics = true, LinkDirection = linkDir);
写日志mat文件。您可以使用这些日志post-simulation分析。
simulationLogFile =“simulationLogs”;%用于日志记录模拟痕迹
显示网络拓扑。
plotNetwork (cellOfInterest, cellRadius gNBs,用正餐);
指定的模拟运行numFrameSimulation
帧。
%计算仿真时间(以秒为单位)simulationTime = numFrameSimulation * 1飞行;%运行仿真运行(networkSimulator simulationTime);
自定义通道模型不是补充道。使用自由空间路径损耗(fspl)模型作为默认的信道模型。
阅读每个节点数据。
gNBStats =统计(gNBs);ueStats =细胞(numCells, 1);为cellIdx = 1: numCells ueStats {cellIdx} =统计(用正餐{cellIdx});结束
最后仿真、系统性能指标的实现值相比,他们的理论高峰值(考虑到零开销)。性能指标显示实现数据速率(DL),实现了频谱效率(DL),和提单观察问题节点(DL)。高峰值计算根据3 gpp TR 37.910。UE-1指定感兴趣的细胞,UE-3, UE-4几乎从gNB等距。然而,你可以观察到低吞吐量UE-3和UE-4 UE-1相比。这是因为UE-3和UE-4经验更高的注液电池干扰。
displayPerformanceIndicators (metricsVisualizer)
DL峰值吞吐量:59.72 Mbps。实现细胞DL吞吐量:17.08 Mbps实现DL吞吐量为每个问题:[4.01 9.16 1.47 2.44]DL光谱峰值效率:5.97比特/秒/ Hz。实现DL频谱效率细胞:1.71比特/秒/ Hz块错误率为每个问题在下行方向:(0.008 0 0.015 - 0.008)
仿真可视化
运行时可视化显示是:
显示网络拓扑:图中显示配置单元拓扑。对于每一个细胞,它显示的位置gNB节点和节点连接的问题。
显示DL调度指标的情节:详情,参见图描述“下行调度性能指标”NR细胞绩效评估与再分配的例子。
显示DL块错误率:图中显示块错误率(提单)可视化的显示了提单(每个问题节点)在下行方向,随着仿真的发展。
模拟日志
模拟日志保存在mat文件post-simulation分析和可视化。每个时间步日志、调度任务日志层和物理层接收日志捕捉每个单元的模拟和保存在MAT-filesimulationLogFile
。仿真后,打开文件加载NCellID
,DLTimeStepLogs
,SchedulingAssignmentLogs
,PhyReception日志
在工作区中。
NCellID:这个商店细胞ID和代表细胞模拟日志所属。
DL时间步日志:每槽日志存储与每个槽的模拟仿真的一行。日志格式的详细信息,请参见“时间步日志”部分NR细胞绩效评估与再分配的例子。
调度任务日志:所有调度作业的信息和相关信息记录在这个文件中。日志格式的详细信息,请参见“调度作业日志”部分NR细胞绩效评估与再分配的例子。
Phy接待日志:这个文件记录数据包接收模拟中观察到的信息。日志格式的详细信息,请参见“Phy接待日志”部分NR细胞绩效评估与再分配的例子。
如果enableTraces%的日志simulationLogs =细胞(numCells, 1);为cellIdx = 1: numCells如果gNBs (cellIdx)。DuplexMode = =“FDD”logInfo =结构(“NCellID”[],“DLTimeStepLogs”[],…“SchedulingAssignmentLogs”[],“PhyReceptionLogs”[]);logInfo。DLTimeStepLogs = getSchedulingLogs (simSchedulingLogger {cellIdx});其他的% TDDlogInfo =结构(“NCellID”[],“TimeStepLogs”[],…“SchedulingAssignmentLogs”[],“PhyReceptionLogs”[]);logInfo。TimeStepLogs = getSchedulingLogs (simSchedulingLogger {cellIdx});结束logInfo。NCellID= gNBs(cellIdx).ID;%得到调度作业日志logInfo。SchedulingAssignmentLogs = getGrantLogs (simSchedulingLogger {cellIdx});%的Phy接待日志logInfo。PhyReceptionLogs = getReceptionLogs (simPhyLogger {cellIdx});simulationLogs {cellIdx} = logInfo;结束%保存模拟MAT-file日志保存(simulationLogFile,“simulationLogs”)结束
进一步的探索
你可以用这个例子来进一步探索这些选项:
模型之间的上行干扰节点通过指定uplink-related配置参数。详情,请参阅NR细胞绩效评估与再分配的例子。
模型Aggressor-Victim场景:侵略者是干扰的来源和受害人遭受由于干扰。考虑DL场景如下图所示。宏单元问题节点是远离宏基站(BS)和附近的小细胞。DL方向、宏观单元问题节点由小细胞BS遭受干扰。小细胞BS叫做侵略者和宏观问题节点称为受害者。
模型多个集群,每个集群由细胞操作在不同的频率,并分析干扰细胞边缘用户的影响。
本地函数
函数plotNetwork (cellOfInterest cellRadius gNBs,问题)% plotNetwork创建网络图图(Name =“网络拓扑可视化”单位=“归一化”,…outerposition =[0 0 1 1],可见=“上”);标题(“网络拓扑可视化”);持有在numCells =元素个数(gNBs);为cellIdx = 1: numCells gNBPosition = gNBs (cellIdx) .Position;%画出圆th = 0:π/ 60:2 *π;xunit = cellRadius * cos (th) + gNBPosition (1);yunit = cellRadius * sin (th) + gNBPosition (2);如果cellOfInterest = = cellIdx h1 (xunit, yunit,颜色= =阴谋“绿色”);%感兴趣的细胞其他的h2 (xunit, yunit,颜色= =阴谋“红色”);结束包含(“坐标(米)”)ylabel (“坐标(米)”)%为gNBs添加工具提示数据s1 =散射(gNBPosition (1) gNBPosition (2),“^”,…MarkerEdgeColor =“红色”);cellIdRow = dataTipTextRow (“细胞- - - - - -”{num2str (cellIdx)});s1.DataTipTemplate.DataTipRows (1) = cellIdRow;posRow = dataTipTextRow (的位置(X, Y):“,{“(”num2str (gNBPosition)“]”]});s1.DataTipTemplate.DataTipRows (2) = posRow;%添加工具提示数据问题uesPerCell =用正餐{cellIdx};为ueIdx = 1:元素个数(uesPerCell) uePosition = uesPerCell (ueIdx) .Position;s2 =散射(uePosition (1) uePosition (2),“。”MarkerEdgeColor =“蓝色”);s2.DataTipTemplate.DataTipRows (1) = uesPerCell (ueIdx) . name;posRow = dataTipTextRow (的位置(X, Y):“,{“(”num2str (uePosition)“]”]});s2.DataTipTemplate.DataTipRows (2) = posRow;结束结束%创造传奇如果numCells > 1传说((h1 h2 s1 s2),“感兴趣的细胞”,“干扰细胞”,“gNodeB”,…“问题”,“位置”,“northeastoutside”)其他的传奇((h1 s1 s2),“感兴趣的细胞”,“gNodeB”,“问题”,“位置”,“northeastoutside”)结束轴汽车持有从daspect ([1000、1000、1]);%设置数据纵横比结束函数uePositions = generateUEPositions (cellRadius gNBPositions numUEsPerCell)% generateUEPositions返回问题在每个单元格的位置numCells =大小(gNBPositions, 1);uePositions =细胞(numCells, 1);为cellIdx = 1: numCells gnbXCo = gNBPositions (cellIdx, 1);% gNB坐标gnbYCo = gNBPositions (cellIdx 2);% gNB坐标gnbZCo = gNBPositions (cellIdx 3);% gNB z坐标θ=兰德(numUEsPerCell 1) *(2 *π);%表达式来计算单元中的位置的问题。默认情况下,%将把问题随机的细胞r =√兰德(numUEsPerCell 1)) * cellRadius;x =圆(gnbXCo + r。* cos(θ));y =圆(gnbYCo + r。* sin(θ));z = 1 (numUEsPerCell 1) * gnbZCo;uePositions {cellIdx} = [x y z];结束结束
附录
这个例子使用这些辅助类:
helperNRMetricsVisualizer.m:实现指标的可视化功能
helperNRSchedulingLogger.m:实现了调度信息日志记录功能
helperNRPhyLogger.m日志记录功能:实现PHY数据包接收信息
引用
[1]3 gpp TS 38.104。“NR;基站(BS)无线电发射和接受。”第三代合作伙伴项目;技术规范集团无线接入网络。
[2]3 gpp TS 38.214。“NR;物理层数据程序。”第三代合作伙伴项目;技术规范集团无线接入网络。
[3]3 gpp TS 38.321。“NR;介质访问控制(MAC)协议规范。”第三代合作伙伴项目;技术规范集团无线接入网络。
[4]3 gpp TS 38.322。“NR;无线链路控制(RLC)协议规范。”第三代合作伙伴项目;技术规范集团无线接入网络。
[5]3 gpp TS 38.323。“NR;包数据融合协议(PDCP)规范。”第三代合作伙伴项目;技术规范集团无线接入网络。
[6]3 gpp TS 38.331。“NR;无线资源控制(RRC)协议规范。”第三代合作伙伴项目;技术规范集团无线接入网络。
[7]3 gpp TR 37.910。“研究自我评价对imt - 2020投降。”第三代合作伙伴项目;技术规范集团无线接入网络。