主要内容

NR FDD调度性能评估

这个示例模型调度的下行(DL)网络性能和上行(UL)资源和措施在频分双工(FDD)模式。评估网络性能与不同的数据流量模式,无线链路控制层的模型示例还未答复的模式(RLC-UM)逻辑信道优先级(LCP)过程。本例使用link-to-system-mapping-based文摘物理层(体育)。调度策略的性能评价的吞吐量和资源共享的公平实现。

介绍

分配DL和UL资源,这个示例使用了轮循调度程序。调度器将资源分配决策基于这些输入:等待重发,缓冲状态和信道质量问题。

这个示例模型:

  • Slot-based DL和UL调度。

  • 多个逻辑通道(禄)来支持不同的应用程序。万博1manbetx

  • 逻辑信道优先级(LCP)分发收到任务之间的逻辑通道每问题UL和DL。

控制发送数据包需要被假定的乐队没有参考资料传输的需要。控制数据包UL任务,DL任务,缓冲状态报告(BSR)和PDSCH反馈。

场景模拟

检查通信工具箱安装无线网络仿真库支持包。万博1manbetx如果支持包没有万博1manbetx安装,MATLAB®返回一个错误的链接下载并安装包的支持。

wirelessnetwork万博1manbetxSupportPackageCheck

创建一个无线网络模拟器。

rng (“默认”)%重置随机数发生器numFrameSimulation = 50;%仿真时间的10 ms帧的数量networkSimulator = wirelessNetworkSimulator.init;

创建一个gNB节点。指定双工模式、载波频率、信道带宽,副载波间距,和接收节点的增益。

gNB = nrGNB (DuplexMode =“FDD”CarrierFrequency = 2.6 e9 ChannelBandwidth = 30 e6, SubcarrierSpacing = 15 e3, ReceiveGain = 11);

调度程序参数设置ResourceAllocationType通过使用configureScheduler函数。

configureScheduler (gNB ResourceAllocationType = 0);

创建4个问题节点。指定的名称、位置和接收每个问题节点。

uePositions = [100 0 0;250 0 0;700 0 0;750 0 0];ueNames =“问题——”+(1:尺寸(uePositions, 1));问题= nrUE (Name = ueNames、位置= uePositions ReceiveGain = 11);

加载应用程序配置包含这些字段表。表中的每一行代表一个应用程序,这些属性列。

  • DataRate——应用程序流量产生率(千比特/秒)。

  • PacketSize——数据包的大小(以字节为单位)。

  • HostDevice——定义的设备(问题或gNB)指定的应用程序安装与配置。设备需要值0或1。0和1的值表明gNB和应用程序的配置问题,分别。

  • RNTI——无线电网络问题的临时标识符。这个标识应用程序安装的问题。

  • LogicalChannelID——逻辑通道标识符。

负载(“NRFDDAppConfig.mat”)%验证配置的主机设备类型的应用程序validateattributes (AppConfig.HostDevice, {“数字”},{“非空的”,“整数”,“> =”0,“< =”1},“AppConfig.HostDevice”,“HostDevice”);

加载RLC无记名配置表。表中的每一行代表一个RLC无记名,这些属性列。

  • RNTI——无线电网络问题的临时标识符。

  • LogicalChannelID——逻辑通道标识符。

  • LogicalChannelGroup——逻辑通道组标识符。

  • SNFieldLength——定义了序列号字段长度。需要6或12。

  • BufferSize - Tx最大缓冲区大小的数量更高的层服务数据单元(sdu)。

  • ReassemblyTimer——定义了重组的计时器(女士)。

  • RLCEntityType——定义了RLC实体类型。需要价值观”UMDL”、“UMUL”,“嗯”,这表明是否RLC实体是单向DL,单向UL、或者双向的嗯,分别。

  • 优先级,优先级的逻辑通道。

  • PrioritizedBitRate——优先比特率(每秒千字节)。

  • BucketSizeDuration——水桶大小持续时间(女士)。

负载(“NRFDDRLCChannelConfig.mat”)

创建一组RLC无记名配置对象。

rlcBearerConfig =细胞(1、长度(问题);rlcBearerInfoIdx = 1:尺寸(RLCChannelConfig 1) rlcBearerConfigStruct = table2struct (RLCChannelConfig (rlcBearerInfoIdx, 2:结束));ueIdx = RLCChannelConfig.RNTI (rlcBearerInfoIdx);%创建一个RLC无记名配置对象与指定的逻辑%通道标识rlcBearerObj = nrRLCBearerConfig (LogicalChannelID = rlcBearerConfigStruct.LogicalChannelID);%设置指定的其他配置对象的属性值rlcBearerObj。LogicalChannelGroup = rlcBearerConfigStruct.LogicalChannelGroup;rlcBearerObj。SNFieldLength = rlcBearerConfigStruct.SNFieldLength;rlcBearerObj。BufferSize = rlcBearerConfigStruct.BufferSize;rlcBearerObj.ReassemblyTimer = rlcBearerConfigStruct.ReassemblyTimer;rlcBearerObj.Priority = rlcBearerConfigStruct.Priority;rlcBearerObj.PrioritizedBitRate = rlcBearerConfigStruct.PrioritizedBitRate;rlcBearerObj.BucketSizeDuration = rlcBearerConfigStruct.BucketSizeDuration; rlcBearerObj.RLCEntityType=rlcBearerConfigStruct.RLCEntityType; rlcBearerConfig{ueIdx} = [rlcBearerConfig{ueIdx} rlcBearerObj];结束

问题的节点连接到gNB节点。指定将用于的RLC无记名配置之间建立RLC无记名gNB节点,每个节点问题。

ueIdx = 1:长度(问题)connectUE (gNB,问题(ueIdx) BSRPeriodicity = 5, RLCBearerConfig = RLCBearerConfig {ueIdx})结束

设置周期性DL和UL应用程序流量模式问题。

appIdx = 1:尺寸(AppConfig, 1)%为开关网络流量模式创建一个对象应用= networkTrafficOnOff (PacketSize = AppConfig.PacketSize (appIdx) GeneratePacket = true,定时= numFrameSimulation / 100,停止时间= 0,DataRate = AppConfig.DataRate (appIdx));如果AppConfig.HostDevice (appIdx) = = 0%下行线上添加交通模式,生成交通addTrafficSource (gNB应用,DestinationNode =问题(AppConfig.RNTI (appIdx)), LogicalChannelID = AppConfig.LogicalChannelID (appIdx))其他的%增加交通模式产生上行流量addTrafficSource(问题(AppConfig.RNTI (appIdx)),应用,LogicalChannelID = AppConfig.LogicalChannelID (appIdx))结束结束

gNB节点和问题节点添加到网络模拟器。

addnode (networkSimulator gNB) addnode (networkSimulator问题)

设置enableTraces真正的记录痕迹。如果enableTraces被设置为,然后痕迹不登录模拟。加快仿真,设置enableTraces

enableTraces = true;

cqiVisualizationrbVisualization参数控制医院药学部的显示可视化和RB分别作业可视化。默认情况下,启用这些情节。可以通过设置禁用它们各自的国旗为false。

cqiVisualization = true;rbVisualization = true;

设置RLC记录器、调度日志记录器和PHY记录器。

如果enableTraces%对RLC跟踪日志创建一个对象simRLCLogger = helperNRRLCLogger (gNB numFrameSimulation,用正餐);%为调度程序创建一个对象跟踪日志记录simSchedulingLogger = helperNRSchedulingLogger (gNB numFrameSimulation,用正餐);医院药学部%创建一个对象和RB网格可视化gridVisualizer = helperNRGridVisualizer (gNB numFrameSimulation,问题,CQIGridVisualization = cqiVisualization,ResourceGridVisualization = rbVisualization SchedulingLogger = simSchedulingLogger);结束

这个例子情节定期更新指标。在模拟集更新的数量。

numMetricsSteps = 20;

建立度量可视化工具。

问题,metricsVisualizer = helperNRMetricsVisualizer (gNB NumMetricsSteps = NumMetricsSteps,PlotSchedulerMetrics = true, PlotRLCMetrics = true);

写日志mat文件。post-simulation的例子使用这些日志分析和可视化。

simulationLogFile =“simulationLogs”;%用于日志记录模拟痕迹

指定的模拟运行numFrameSimulation帧。

%计算仿真时间(以秒为单位)simulationTime = numFrameSimulation * 1飞行;%运行仿真运行(networkSimulator simulationTime)
自定义通道模型不是补充道。使用自由空间路径损耗(fspl)模型作为默认的信道模型。

图质量可视化频道包含的对象类型的热图,uigridlayout。类型的热图的图表标题通道质量可视化细胞ID - 1。

图包含一个网格资源分配轴uigridlayout类型的对象和另一个对象。坐标轴对象与标题的网格资源分配细胞ID - 1,包含槽在10毫秒内,ylabel资源块包含233个对象类型的文本,线。

阅读每个节点数据。

gNBStats =统计(gNB);ueStats =统计(问题);

最后仿真、系统性能指标的实现值相比,他们的理论高峰值(考虑到零开销)。性能指标显示实现数据速率(UL和DL),实现了频谱效率(UL和DL),并阻止错误率(提单)观察用正餐(UL和DL)。高峰值计算根据3 gpp TR 37.910。

displayPerformanceIndicators (metricsVisualizer)
UL峰值吞吐量:199.08 Mbps。实现细胞UL吞吐量:121.95 Mbps取得UL吞吐量为每个问题:[46.25 17.48 39.8 18.42]UL光谱峰值效率:6.64比特/秒/ Hz。细胞达到UL频谱效率:4.07比特/秒/ Hz DL峰值吞吐量:199.08 Mbps。实现细胞DL吞吐量:131.47 Mbps实现DL吞吐量为每个问题:[45.96 16.4 48.64 20.47]DL光谱峰值效率:6.64比特/秒/ Hz。实现细胞DL频谱效率:4.38比特/秒/ Hz

仿真可视化

运行时可视化显示是:

  • 显示UL调度指标的情节:,“上行调度性能指标”图描述NR细胞绩效评估与再分配的例子。

  • 显示DL调度指标的情节:详情,参见图描述“下行调度性能指标”NR细胞绩效评估与再分配的例子。

  • 情节的RLC指标:“RLC指标可视化”图代表了RLC层传输的字节数为每个问题。

模拟日志

仿真post-simulation分析日志保存在mat文件。每个时间步日志、调度任务日志和RLC日志保存在MAT-filesimulationLogFile。仿真后,打开文件加载DLTimeStepLogs,ULTimeStepLogs,SchedulingAssignmentLogs,RLC日志在工作区中。

时间步日志:在时间步日志格式的更多信息,见NR细胞绩效评估与再分配

调度任务日志:调度日志格式的更多信息,请参阅NR细胞绩效评估与再分配

RLC日志:RLC日志中的每一行代表一个槽和包含这些信息:

  • 时间戳:时间戳(以毫秒为单位)

  • 框架:帧数。

  • :帧槽数量。

  • 问题RLC统计:N以p细胞,N是数量的问题,P所收集的数据的数量。每一行代表问题的统计数据。最后一行包含整个的累积RLC统计模拟。

  • gNB RLC统计:N以p细胞,N是数量的问题,P所收集的数据的数量。每一行代表数据的逻辑通道gNB问题。最后一行包含整个的累积RLC统计模拟。

问题和gNB RLC统计数据表的每一行表示一个逻辑通道的问题,包含:

  • UEID问题:节点ID。

  • RNTI:无线网络问题的临时标识符。

  • TransmittedPackets:由RLC MAC层发送的数据包数量。

  • TransmittedBytes:MAC层由RLC发送的字节数。

  • ReceivedPackets:收到的数据包数量的RLC MAC层。

  • ReceivedBytes:从MAC层RLC接收到的字节数。

  • DroppedPackets:收到的数据包数量从MAC下降了RLC层。

  • DroppedBytes:从MAC接收字节数下降了RLC层。

保存模拟登录垫文件。

如果enableTraces simulationLogs =细胞(1,1);如果gNB。DuplexMode = =“FDD”logInfo =结构(“DLTimeStepLogs”[],“ULTimeStepLogs”[],“SchedulingAssignmentLogs”[],“RLCLogs”[]);[logInfo.DLTimeStepLogs, logInfo。ULTimeStepLogs] = getSchedulingLogs(simSchedulingLogger);其他的% TDDlogInfo =结构(“TimeStepLogs”[],“SchedulingAssignmentLogs”[],“RLCLogs”[]);logInfo。TimeStepLogs = getSchedulingLogs (simSchedulingLogger);结束%得到调度作业日志logInfo。SchedulingAssignmentLogs = getGrantLogs (simSchedulingLogger);%的RLC日志logInfo。RLCLogs = getRLCLogs (simRLCLogger);%保存模拟MAT-file日志simulationLogs {1} = logInfo;保存(simulationLogFile,“simulationLogs”)结束

进一步的探索

你可以用这个例子来进一步探索TDD建模。

TDD的建模

你可以用这个例子来进一步探索TDD的建模通过设置DuplexMode属性gNB反对“TDD”。你也可以定制DL-UL槽TDD模式配置为使用DLULConfigTDD nrGNB对象的属性。

附录

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

引用

[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.331。“NR;无线资源控制(RRC)协议规范。”第三代合作伙伴项目;技术规范集团无线接入网络

另请参阅

对象

相关的话题