主要内容

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。

CoChannelCells.png

场景设置

检查通信工具箱安装无线网络仿真库支持包。金宝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,用正餐);

图网络拓扑可视化包含一个坐标轴对象。坐标轴标题网络拓扑可视化对象,包含坐标(米),ylabel坐标(米)包含18行类型的对象,散射。感兴趣的这些对象代表干扰细胞,细胞,gNodeB问题。

指定的模拟运行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叫做侵略者和宏观问题节点称为受害者。

Aggressor-Victim.png

  • 模型多个集群,每个集群由细胞操作在不同的频率,并分析干扰细胞边缘用户的影响。

本地函数

函数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];结束结束

附录

这个例子使用这些辅助类:

引用

[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投降。”第三代合作伙伴项目;技术规范集团无线接入网络

另请参阅

对象

相关的话题