主要内容

NR PUSCH FDD调度

这个例子的吞吐量和资源共享公平性性能评估上行(UL)调度策略在频分双工(FDD)模式和无线链路控制(RLC)层集成。UL调度策略分配物理上行共享信道资源(PUSCH)资源的一组用户设备连接到一个gNB(问题)。未确认的例子使用模式(嗯)的RLC层和一层透传体育(体育)。透传PHY层不涉及任何物理层处理和采用概率方法模型包接收失败。示例日志事件的模拟也显示了运行时可视化观察网络性能。

介绍

这个例子展示了如何调度策略(gNB)控制的分配UL资源问题。gNB中的例子考虑以下操作问题,促进UL传输和招待会。

完整PUSCH数据包传输的符号分配的符号集。接收机处理数据包在刚刚过去的符号象征符号集分配。

调度器每p名额分配UL资源,p是调度程序的配置的周期性。在每次运行,槽数将等于调度程序运行的周期性,p。第一槽中p槽运行计划,是下一个即将到来的槽满足PUSCH准备时间问题的能力。例如,图中显示的方式调度器选择槽在两个连续运行期间。它假定调度器周期性(p)3槽。因此,调度程序运行后每3槽,3槽和时间表参考资料。PUSCH准备时间能力的问题假定是大于1槽(14符号),但小于2插槽(28)的象征。

  • 1:当调度程序运行开始时的槽,它计划3槽从Slot-C开始,因为槽和b槽口问题得不到足够的PUSCH准备时间(问题的0符号开始的槽和14符号开始b槽口)。Slot-C,问题得到28符号PUSCH准备这满足PUSCH准备时间的能力。因此,Slot-C、D和E计划运行。

  • 使用2:当调度器Slot-D开始运行,它计划未来3连续槽从Slot-F (Slot-F、G和H)。

你可以选择任何一个实现的调度策略:比例公平(PF)、医院药学部最好,或者轮循(RR)。列出了各种支持输入UL调万博1manbetx度器的调度策略,考虑他们。

这两个控制数据包,缓冲状态报告(BSR)和UL任务,是乐队的假定为发送不需要的资源传播。

解调参考信号(DM-RS)不是在这个例子中建模。然而,一个符号保持闲置的PUSCH作业。

这个示例模型:

  • 基于槽UL调度。UL调度程序确保问题得到所需PUSCH准备时间。

  • 非连续分配频域资源的资源块组(篮板)。

  • 可配置的副载波间距导致不同的槽的持续时间。

  • 异步UL混合自动重发请求(HARQ)机制。

  • UL接待成功或失败的检测问题使用新数据指标(NDI)标志出现在UL任务。

  • 多个逻辑通道交通模式支持不同的应用程序。万博1manbetx

  • 逻辑信道优先级(LCP)在问题分发收到UL分配逻辑通道。

  • 周期性的UL应用程序流量模式。

  • RLC在嗯运营模式。

场景配置

仿真,设置这些关键配置参数:

  • 仿真时间

  • 数量的问题

  • 距离的问题gNB(影响医院药学部UL值问题)

  • 应用交通模式产生交通问题

  • RLC配置为Tx和Rx实体分别为问题和gNB

  • 逻辑信道的配置问题和gNB

  • 医院药学部调度策略:PF,最好,RR

  • 周期性发送的建筑问题告知gNB等待缓冲区

  • PUSCH准备时间问题

  • PUSCH带宽的资源块的数量(RBs)

  • 副载波间距

  • 篮板大小配置类型

  • 最初的UL信道质量和更新机制

rng (“默认”);%重置随机数发生器simParameters = [];%的模拟参数simParameters。NumFramesSim = 200;%仿真时间的10 ms帧的数量%的问题模拟。问题被假定顺序广播%网络临时标识符(RNTIs)从1到NumUEs。如果你改变%的数量问题,确保仿真参数% simParameters。UEDistance simParameters。PacketPeriodicityUEs是%的数组长度等于NumUEs;simParameters.PacketSizesUEs,% simParameters的属性。RLCConfig,simParameters。LCHConfig%由等于numUEs的行数。simParameters。NumUEs = 4;%每个问题的逻辑通道数量。如果你改变的数量%的逻辑通道,确保仿真参数% simParameters。PacketSizesUEs, properties of simParameters.RLCConfig, and% simParameters。LCHConfig包括列数相等% NumLogicalChannels。simParameters。NumLogicalChannels = 3; simParameters.UEDistance = [100; 250; 700; 750];%的距离问题从gNB(单位:米)%设置应用程序流量模式问题。例如,向量%元素值10指数4代表的逻辑% UE-4渠道,一个数据包生成每10毫秒simParameters。PacketPeriodicityUEs = [30; 20; 30; 10];%的周期性问题在逻辑通道生成数据包(女士)% N-by-P矩阵表示生成的数据包的大小%的问题在每个逻辑信道,“N”代表问题的数量%,“P”代表逻辑通道的数量。例如,值% 1000指数(4,1)代表一个产生的大小1000字节数据包% UE-4逻辑通道ID 1simParameters。PacketSizesUEs = [4000 6000 8000; 500 8000 8000; 12000 8000 4000; 1000 8000 4000];% RLC配置%的每个属性RLCConfig必须是N-by-P矩阵,其中“N”表示问题的数量%,“P”代表逻辑通道的数量。一个矩阵元素的位置% (i, j)对应于属性值RNTI价值问题的“我”和逻辑通道ID“j”。%序列号(SN)字段长度(比特)使用每个问题的逻辑通道simParameters.RLCConfig。SNFieldLength = [6 6 12;6 6 12;6 12 6;6 6 12];%重新组装计时器使用每个问题的逻辑通道simParameters.RLCConfig。ReassemblyTimer = [5 10 15;5 5 10;5 5 5;5 10 15];%最大数量的服务数据单元(sdu)在每个逻辑通道的Tx缓冲区(Tx缓冲区溢出模型)simParameters.RLCConfig。MaxTxBufferSDUs = [4 3 11;3 4 5;6 1 3;11 6 26);%的逻辑通道(禄)配置%的每个属性LCHConfig必须是N-by-P矩阵,其中“N”表示问题的数量%,“P”代表逻辑通道的数量。一个矩阵元素的位置% (i, j)对应于属性值RNTI价值问题的“我”和逻辑通道ID“j”。%之间的映射逻辑信道和逻辑通道组(LCG) IDsimParameters.LCHConfig。LCGID = [1 3 2;1 2 2;1 2 3;5 1 2];%每个逻辑信道的优先级simParameters.LCHConfig。优先级= [1 5 8;1 1 6;4 10 4;10 11 13];%优先比特率(PBR)的每个逻辑通道(千字节每秒)simParameters.LCHConfig。PBR =[8 16个32;8 128 32;8 16个32;8 16个32];%桶大小持续时间(BSD)的每个逻辑通道(女士)simParameters.LCHConfig。BSD = [5 10 50;5 20 20;5 5 5;5 10 20];%的介质访问控制(MAC)配置%设置调度程序运行周期性的插槽的数量。值必须是%不到在10毫秒内槽的数量simParameters。SchedulerPeriodicity = 4;simParameters。SchedulerStrategy =“PF”;%支万博1manbetx持调度策略:“PF”、“农达”和“BestCQI”%移动平均重量参数区间[0,1]中的计算%的平均数据速率问题。使用的值是PF调度策略。%参数值接近1瞬时意味着更多的重量%数据速率。参数值接近0意味着更多的重量在过去%数据速率% AverageDataRate = ((1 - MovingAvgDataRateWeight) * PastDataRate) + (MovingAvgDataRateWeight * InstantaneousDataRate)simParameters。MovingAvgDataRateWeight = 0.5;simParameters。BSRPeriodicity = 5;%的女士simParameters。EnableHARQ = true;%的旗帜来启用或禁用HARQ。如果禁用,没有重发simParameters。NumHARQ = 16;%的HARQ过程在每一个问题% PUSCH准备时间。收到gNB确保PUSCH作业%问题PUSCHPrepTime的传输时间simParameters。PUSCHPrepTime = 200;%在微秒%最大苏格兰皇家银行分配的问题PUSCH传播(限制%适用于新PUSCH作业和不重发)simParameters。RBAllocationLimitUL = 15;% PHY层和通道配置% RB计数5 MHz频带15 kHz副载波间距(SCS)。完整的% UL带宽是PUSCH假定为分配simParameters。NumRBs = 25;simParameters。SCS = 15;%千赫simParameters。ULBandwidth = 5 e6;%赫兹simParameters。ULCarrierFreq = 2.515 e9;%赫兹%设置篮板大小配置1(配置1篮板表)或2%(配置2篮板表)3 gpp TS 38.214节中定义% 5.1.2.2.1simParameters。RBGSizeConfig = 1;%配置参数更新信道条件问题。通道%定期质量是改善或恶化CQIDelta每个% channelUpdatePeriodicity秒所有苏格兰皇家银行的问题。通道是否%条件为特定问题改善或恶化是随机的%确定:RBCQI = RBCQI + / - CQIDeltasimParameters。通道UpdatePeriodicity = 0.5;%的交会simParameters。CQIDelta = 1;% gNB距离之间的映射(第一列米)和最大医院药学部%达到UL值(第二列)。例如,如果一个问题是700%从gNB米之外,它可以实现医院药学部最大价值的10%距离落在(501、800)米范围内,根据映射。集%的距离增加医院药学部秩序和可实现的价值减少%的顺序simParameters。CQIvsDistance = [200 15;500 12;800年10;1000 8;1200 7];%的日志和可视化的配置医院药学部%国旗来启用或禁用运行时可视化simParameters。CQIVisualization = true;%的旗帜来启用或禁用运行时的可视化RB任务。如果启用,%然后基于槽调度更新每一帧(10 ms)显示RB%分配问题的不同时段的最后一帧。simParameters。RBVisualization = true;%的输出指标阴谋NumMetricsSteps次更新%的模拟simParameters。NumMetricsSteps = 20;% mat文件用于仿真可视化simParameters.ParametersLogFile=“simParameters”;%用于日志记录仿真参数simParameters.SimulationLogFile=“simulationLogs”;%用于日志记录仿真日志hNRULSchedulingValidateConfig (simParameters);%验证仿真配置

导出参数

基于主配置参数,计算得到的参数。

simParameters。NCellID = 1;%的身体细胞IDsimParameters。DLCarrierFreq = 2.635 e9;%赫兹simParameters。DLBandwidth = 10 e6;%赫兹simParameters。GNBPosition = (0 0 0);% gNB的位置坐标(x, y, z)%槽时间为选定的SCS和槽数10 ms框架slotDuration = 1 / (simParameters.SCS / 15);槽时间百分比numSlotsFrame = 10 / slotDuration;%的插槽数量10 msnumSlotsSim = simParameters。NumFramesSim * numSlotsFrame;%的槽数模拟%包周期的研究议题的插槽的数量appPeriodicityUEsSlots = simParameters。PacketPeriodicityUEs。/ slotDuration;%最大RLC信号分配装置长度(字节)simParameters。maxRLCSDULength = 9000;% RLC实体方向。值0表示下行,1%代表UL, 2代表UL和下行%的方向。设置实体方向只有ULsimParameters.RLCConfig。EntityDir = (simParameters。NumUEs, simParameters.NumLogicalChannels);%的逻辑通道id(逻辑通道的id数据广播持有者从4)simParameters.LCHConfig。LCID= ones(simParameters.NumUEs, simParameters.NumLogicalChannels) .* (4:4+simParameters.NumLogicalChannels-1);% RLC记录器的构造信息lchInfo = repmat(结构体(“LCID”[],“EntityDir”[]),[simParameters。NumUEs 1]);idx = 1: simParameters。NumUEs lchInfo (idx)。LCID= simParameters.LCHConfig.LCID(idx, :); lchInfo(idx).EntityDir = simParameters.RLCConfig.EntityDir(idx, :);结束%为问题找到最大医院药学部实现值基于他们的距离%的gNB(simParameters maxUECQIs = 0。NumUEs, 1);%存储医院药学部的最大可实现的价值问题ueIdx = 1: simParameters.NumUEs%从gNB基于问题的距离,找到匹配的行% CQIvsDistance映射matchingRowIdx =找到(simParameters。CQIvsDistance (: 1) > simParameters.UEDistance (ueIdx));如果isempty (matchingRowIdx) maxUECQIs (ueIdx) = simParameters。CQIvsDistance (, 2);其他的maxUECQIs (ueIdx) = simParameters.CQIvsDistance (matchingRowIdx (1), 2);结束结束%初始UL通道质量定义为一个N-by-P矩阵,%,“N”问题和“P”的数量是苏格兰皇家银行在承运人的数量%的带宽。为每个RB医院药学部的初始值,对于每个问题,%随机和相对应的最大的医院药学部可实现的价值是有限的从gNB %的距离问题simParameters。(simParameters InitialChannelQualityUL = 0。NumUEs simParameters.NumRBs);%在苏格兰皇家银行存储当前医院药学部UL值不同的问题ueIdx = 1: simParameters.NumUEs苏格兰皇家银行、医院药学部%分配随机值限制医院药学部的最大可实现的价值simParameters。InitialChannelQualityUL (ueIdx:) =兰迪([1 maxUECQIs (ueIdx)], 1, simParameters.NumRBs);结束%的间隔标准可视化更新的数量%插槽。确保MetricsStepSize是整数simParameters。MetricsStepSize =装天花板(numSlotsSim / simParameters.NumMetricsSteps);如果国防部(numSlotsSim simParameters.NumMetricsSteps) ~ = 0%更新NumMetricsSteps参数如果numSlotsSim不是%完全整除simParameters。NumMetricsSteps = floor(numSlotsSim / simParameters.MetricsStepSize);结束

gNB和议题设置

创建gNB和发行对象,初始化UL gNB通道条件问题的信息,并建立逻辑通道gNB和问题。辅助类hNRGNB.mhNRUE.m分别创建gNB和问题节点,包含RLC和MAC层。对MAC层,hNRGNB.m使用辅助类hNRGNBMAC.m实现gNB MAC功能和hNRUE.m使用hNRUEMAC.mMAC功能实现问题。调度器实现在hNRSchedulerRoundRobin.m(循环),hNRSchedulerProportionalFair.m(比例公平),hNRSchedulerBestCQI.m医院药学部(最佳)。所有的调度程序从基类继承hNRScheduler.m它包含核心调度功能。对RLC层,hNRGNB.mhNRUE.m使用hNRUMEntity.m实现的功能RLC发射机和接收机。透传的问题和实现gNB PHY层hNRUEPassThroughPhy.mhNRGNBPassThroughPhy.m,分别。

simParameters。Position = simParameters.GNBPosition; gNB = hNRGNB(simParameters);%创建gNB节点%创建和添加调度器开关(simParameters.SchedulerStrategy)情况下“农达”%轮循调度程序调度器= hNRSchedulerRoundRobin (simParameters);情况下“PF”%比例公平调度程序调度器= hNRSchedulerProportionalFair (simParameters);情况下“BestCQI”医院药学部%最好调度器调度器= hNRSchedulerBestCQI (simParameters);结束addScheduler (gNB,调度器);%增加gNB调度器gNB。PhyEntity = hNRGNBPassThroughPhy(simParameters);%创建透传体育configurePhy (gNB simParameters);setPhyInterface (gNB);%设置界面PHY层%创建问题的节点的集合问题=细胞(simParameters。NumUEs, 1);ueIdx = 1: simParameters.NumUEssimParameters。Position = [simParameters.UEDistance(ueIdx) 0 0];%的位置问题问题{ueIdx} = hNRUE (simParameters ueIdx);simParameters。InitialChannelQualityDL = simParameters.InitialChannelQualityUL;问题{ueIdx}。PhyEntity = hNRUEPassThroughPhy(simParameters, ueIdx);%增加透传体育configurePhy(问题{ueIdx}, simParameters);setPhyInterface(用正餐{ueIdx});%设置界面PHY层%初始化在gNB医院药学部UL值updateChannelQuality (gNB simParameters。InitialChannelQualityUL (ueIdx:) 1 ueIdx);% 1的UL%设置逻辑通道lcIdx = 1: simParameters.NumLogicalChannels%创建RLC通道配置结构rlcChannelConfigStruct。EntityType = simParameters.RLCConfig。EntityDir (ueIdx lcIdx);rlcChannelConfigStruct。LogicalChannelID = simParameters.LCHConfig。LCID (ueIdx lcIdx);rlcChannelConfigStruct。SeqNumFieldLength = simParameters.RLCConfig。SNFieldLength (ueIdx lcIdx);rlcChannelConfigStruct。MaxTxBufferSDUs = simParameters.RLCConfig。MaxTxBufferSDUs (ueIdx lcIdx);rlcChannelConfigStruct。ReassemblyTimer = simParameters.RLCConfig。ReassemblyTimer (ueIdx lcIdx); rlcChannelConfigStruct.EntityType = simParameters.RLCConfig.EntityDir(ueIdx, lcIdx); rlcChannelConfigStruct.LCGID = simParameters.LCHConfig.LCGID(ueIdx, lcIdx); rlcChannelConfigStruct.Priority = simParameters.LCHConfig.Priority(ueIdx, lcIdx); rlcChannelConfigStruct.PBR = simParameters.LCHConfig.PBR(ueIdx, lcIdx); rlcChannelConfigStruct.BSD = simParameters.LCHConfig.BSD(ueIdx, lcIdx);%设置逻辑通道在gNB问题configureLogicalChannel (gNB ueIdx rlcChannelConfigStruct);%设置逻辑通道问题configureLogicalChannel(问题{ueIdx}, ueIdx rlcChannelConfigStruct);%添加数据流量模式发电机节点问题。应用程序数据%被抽到RLC层按照安装交通模式packetSize = simParameters。PacketSizesUEs(ueIdx, lcIdx);%计算数据速率(kbps)断断续续的交通模式使用%数据包大小(以字节为单位)和包间隔(女士)dataRate =装天花板(1000 / simParameters.PacketPeriodicityUEs (ueIdx)) * packetSize * 8 e - 3;%限制生成的应用程序包的规模最大% RLC信号分配装置的尺寸。支持的最大RLC信号分配万博1manbetx装置大小是9000字节如果packetSize > simParameters。maxRLCSDULength packetSize = simParameters.maxRLCSDULength;结束%为开关网络流量模式创建一个对象并将其添加到%指定的问题。这个对象生成上行(UL)数据流量问题应用= networkTrafficOnOff (“PacketSize”packetSize,“GeneratePacket”,真的,“定时”simParameters.NumFramesSim / 100,“停止时间”0,“DataRate”,dataRate);问题{ueIdx}。addApplication (ueIdx simParameters.LCHConfig。LCID (ueIdx lcIdx),应用程序);结束结束%设置UL和DL包分配机制simParameters。MaxReceivers = simParameters.NumUEs;%创建DL包分配对象dlPacketDistributionObj = hNRPacketDistribution (simParameters 0);%创建UL包分配对象ulPacketDistributionObj = hNRPacketDistribution (simParameters, 1);hNRSetUpPacketDistribution (gNB simParameters,问题,dlPacketDistributionObj ulPacketDistributionObj);

处理循环

模拟运行槽槽。在每个位置,执行这些操作:

  • 运行MAC层和物理层gNB层

  • 运行MAC层和物理层层问题

  • 层特定日志和可视化

  • 提前的计时器节点。每1毫秒也将触发发送给应用程序和RLC层。应用程序层和RLC层执行其预定业务基于1毫秒计时器触发。

%存储以下问题指标为每个槽:吞吐量字节%传播,传播goodput字节,和等待缓冲区字节。% goodput字节的数量计算,不包括从总重发%的传输(simParameters UESlotMetrics = 0。NumUEs 3);%存储每个槽的RLC统计ueRLCStats =细胞(simParameters。NumUEs, 1);gNBRLCStats =细胞(simParameters。NumUEs, 1);%在苏格兰皇家银行存储当前医院药学部UL值不同的问题(simParameters uplinkChannelQuality = 0。NumUEs simParameters.NumRBs);去年收到NDI %存储值UL HARQ进程(simParameters HARQProcessStatus = 0。NumUEs simParameters.NumHARQ);%为MAC调度信息可视化和日志创建一个对象(UL方向表示为1)simSchedulingLogger = hNRSchedulingLogger (simParameters, 1);%为RLC可视化和日志创建一个对象(UL方向表示为1)simRLCLogger = hNRRLCLogger (simParameters lchInfo 1);symbolNum = 0;%处理循环运行slotNum = 1: numSlotsSim%运行MAC层和物理层gNB层运行(gNB.MACEntity);运行(gNB.PhyEntity);%运行MAC层和物理层层问题ueIdx = 1: simParameters.NumUEs%读最后收到NDI旗帜HARQ进程%日志(读它之前被运行MAC)的函数覆盖HARQProcessStatus (ueIdx:) = getLastNDIFlagHarq(问题{ueIdx}。MACEntity, 1);% 1的UL运行(问题{ueIdx} .MACEntity);运行(问题{ueIdx} .PhyEntity);结束% RLC日志ueIdx = 1: simParameters.NumUEs%为所有问题%得到RLC统计ueRLCStats {ueIdx} = getRLCStatistics(用正餐{ueIdx}, ueIdx);gNBRLCStats {ueIdx} = getRLCStatistics (gNB ueIdx);结束logRLCStats (simRLCLogger ueRLCStats gNBRLCStats);%更新RLC统计日志% MAC日志%读UL作业由gNB MAC调度程序在当前时间。%调度器返回的资源分配是空的,如果UL%调度器不是调度运行在当前时间或没有%的资源有预定resourceAssignmentsUL = getCurrentSchedulingAssignments (gNB.MACEntity);ueIdx = 1: simParameters.NumUEs%在gNB读UL通道质量为每个问题的日志记录uplinkChannelQuality (ueIdx:) = getChannelQuality (gNB 1 ueIdx);% 1的UL%读吞吐量和goodput字节传送的问题%当前创科实业日志记录[UESlotMetrics ueIdx, 1), UESlotMetrics (ueIdx, 2)] = getTTIBytes(用正餐{ueIdx});UESlotMetrics (ueIdx 3) = getBufferStatus(用正餐{ueIdx});%读等待缓冲问题(以字节为单位)结束%更新调度日志基于当前槽运行的问题和gNB。%更新日志在每个槽,RB网格可视化更新%每一帧,和指标情节metricsStepSize就更新一次%槽logScheduling (simSchedulingLogger symbolNum + 1 resourceAssignmentsUL UESlotMetrics, uplinkChannelQuality, HARQProcessStatus, 1);%的可视化%如果RB可视化标志设置,更新的RB分配网格%每一帧的最后位置如果simParameters。RBVisualization & &国防部(slotNum numSlotsFrame) = = 0 plotRBGrids (simSchedulingLogger);结束医院药学部%如果可视化标记集,更新医院药学部的网格在最后%每一帧的位置如果simParameters。CQIVisualization & &国防部(slotNum numSlotsFrame) = = 0 plotCQIRBGrids (simSchedulingLogger);结束%的阴谋MAC调度性能,RLC吞吐量指标每metricsStepSize插槽如果国防部(slotNum simParameters.MetricsStepSize) = = 0 plotMetrics (simSchedulingLogger);plotMetrics (simRLCLogger);结束tickGranularity = 14;%的符号数槽%预付计时器滴答gNB和问题由“tickGranularity”符号advanceTimer (gNB tickGranularity);ueIdx = 1: simParameters.NumUEs%为所有问题advanceTimer(问题{ueIdx}, tickGranularity);结束%符号数字仿真symbolNum = symbolNum + tickGranularity;结束

仿真可视化

四种类型的运行时可视化显示是:

  • 医院药学部的显示值在PUSCH带宽问题:,信道质量可视化的图的更多细节。

  • 显示网格的资源分配问题:二维时频网格更新每10毫秒(帧长度),显示了RB分配问题在前面的框架。PUSCH作业的HARQ过程也显示与RNTI的问题。新的传输黑色和重发蓝色所示所示使用每个问题的HARQ进程ID,一个重传作业可以映射到其先前失败的传播。详情,请参阅“网格资源分配”为更多的细节图。

  • 显示UL调度指标的情节:上行调度性能指标的图块包括:UL吞吐量(每个问题和细胞),UL goodput(每个问题和细胞),资源之间共享比例问题(总UL的资源)来传达调度的公平性,并等待UL缓冲区的状态问题显示问题是否能够得到足够的资源。UL吞吐量的最大可实现的数据速率值用虚线所示的吞吐量和goodput情节。每一块更新的性能指标metricsStepSize槽。

  • 情节的RLC指标:RLC吞吐量可视化的图代表的吞吐量RLC层(每个逻辑通道)的选择问题。更新每一个情节的RLC指标metricsStepSize槽。

模拟日志

用于模拟和仿真的参数日志文件保存在垫post-simulation分析和可视化。仿真参数保存在一个垫作为文件名的文件配置参数的值simParameters.ParametersLogFile。每个时间步日志,调度任务日志和RLC日志文件保存在垫子上simParameters.SimulationLogFile。仿真后,打开文件加载ULTimeStepLogs,SchedulingAssignmentLogsRLCLogs在工作区中。

时间步日志:表显示了一个示例时间步条目。表的每一行代表一个槽。

表的每一行代表一个槽,并包含以下信息:

  • 框架:帧数。

  • :帧槽数量。

  • 篮板分配图:N-by-P位图矩阵,N问题的数量和吗P篮板的数量。如果一个篮板被分配给一个特定的问题,相应的位设置为1。例如,[0 0 1 1 0 1 0 1 0 1 0 0 0;1 1 0 0 0 0 0 0 0 0 1 0 0;0 0 0 0 1 0 1 0 1 0 0 1 1;0 0 0 0 0 0 0 0 0 0 0 0 0]意味着UL分配带宽有13个篮板和UE-1篮板指数:2,3,5,7,9;UE-2分配篮板指数0 1和10;UE-3分配篮板指数4、6、8、11和12,UE-4没有分配任何篮板。

  • MCS:行向量的长度N,在哪里N是数量的问题。每个值对应的调制和编码方案(MCS)指数PUSCH传播。例如,[10 12 8 1]意味着只有UE-1 UE-2,和资源分配UE-3 UL槽和使用MCS值10,12日和8位。

  • HARQ过程:行向量的长度N,在哪里N是数量的问题。值是使用的HARQ进程ID PUSCH传输问题。例如,[0 3 6 1]意味着只有UE-1 UE-2,这个位置和UE-3分配UL资源并使用HARQ进程id 0, 3和6。

  • 抗利尿:行向量的长度N,在哪里N是数量的问题。中的值是NDI标志值UL PUSCH传输的任务。例如,[0 0 1 1]意味着只有UE-1 UE-2,这个位置和UE-3分配UL资源并使用NDI标志值(确定一个新的传播或使用重传)0,0,1,分别。

  • Tx型:Tx类型指定传输类型(新传输或重传)。行向量的长度N,在哪里N是数量的问题。可能的值是“newTx”、“reTx”,或“noTx”。”noTx意味着问题不是PUSCH分配资源。例如,['newTx' 'newTx' 'reTx' 'noTx']意味着只有UE-1、UE-2 UE-3 UL资源分配槽。UE-1 UE-2传输新的数据包从指定HARQ过程,而UE-3重新传输数据包缓冲区的指定HARQ过程。

  • CQI的问题:N-by-P矩阵,N问题的数量和吗P带宽是苏格兰皇家银行的数量。一个矩阵元素的位置(i, j)对应的医院药学部UL值与RNTI问题在RBj

  • HARQ NDI状态:N-by-P矩阵,N问题的数量和吗P问题是HARQ进程的数量。一个矩阵元素的位置(i, j)在问题是最后收到NDI国旗吗对于HARQ进程IDj。新传输,这个值和NDI国旗PUSCH作业必须切换。例如,在槽的第1帧5中描述调度日志,UE-1使用HARQ ID 0最后NDI HARQ ID 0在UE-1标志值是1。表明一个新的传播,NDI PUSCH分配标志值更改为0。

  • 吞吐量字节:行向量的长度N,在哪里N是数量的问题。值代表MAC字节通过在这个位置问题。

  • Goodput字节:行向量的长度N,在哪里N是数量的问题。代表新MAC传输字节传送的值在这个位置问题。

  • 缓冲区的状态问题:行向量的长度N,在哪里N是数量的问题。的值代表等待缓冲区的数量问题。

调度任务日志:所有调度作业的信息和相关信息记录在这个文件中。表显示了示例日志条目。

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

  • 框架:帧数。

  • :帧槽数量。

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

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

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

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

  • LCID:逻辑通道标识符。

  • TxDataPDU:数据发送的pdu RLC MAC层。

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

  • ReTxDataPDU:数量的数据由RLC pdu转播的MAC层。

  • ReTxDataBytes:由RLC转播的MAC层的数据字节数。

  • TxControlPDU:号码发送的控制pdu RLC MAC层。

  • TxControlBytes:由RLC发送MAC层的控制字节数。

  • TxPacketsDropped: RLC sdu数量下降了RLC Tx缓冲区溢出。

  • TxBytesDropped:的字节数下降了RLC Tx缓冲区溢出。

  • TimerPollRetransmitTimedOut:多次调查重新发送计时器过期了。

  • RxDataPDU:收到的数据pdu的RLC MAC层。

  • RxDataBytes:收到的数据字节数的RLC MAC层。

  • RxDataPDUDropped:收到MAC数据pdu的数量下降了RLC层。

  • RxDataBytesDropped:从MAC是接收的数据的字节数下降了RLC层。

  • RxDataPDUDuplicate:收到的重复的pdu的RLC MAC层。

  • RxDataBytesDuplicate:收到的RLC重复数据的字节数从MAC层。

  • RxControlPDU:收到的控制pdu的RLC MAC层。

  • RxControlBytes:收到的RLC控制字节数从MAC层。

  • TimerReassemblyTimedOut:多次重组的计时器过期了。

  • TimerStatusProhibitTimedOut:多次禁止状态计时器过期了。

您可以运行脚本NRPostSimVisualization一篇日志的仿真可视化。在仿真脚本后,您提供变量isLogReplay这些选项,它提供了可视化的网格资源分配和信道质量可视化数据。

  • isLogReplay真正的为模拟日志的重演。

  • isLogReplay日志和分析模拟输入帧数来可视化调度信息的特定的框架

%在mat文件读取日志并拯救他们simulationLogs =细胞(1,1);simulationLogs{1} =结构(“ULTimeStepLogs”[],“SchedulingAssignmentLogs”[],“RLCLogs”[]);(~ simulationLogs {1}。ULTimeStepLogs] = getSchedulingLogs(simSchedulingLogger);% UL时间步调度日志simulationLogs {1}。SchedulingAssignmentLogs = getGrantLogs (simSchedulingLogger);%调度作业日志simulationLogs {1}。RLCLogs= getRLCLogs(simRLCLogger);% RLC统计日志保存(simParameters.SimulationLogFile,“simulationLogs”);%保存模拟MAT-file日志保存(simParameters.ParametersLogFile,“simParameters”);%保存MAT-file仿真参数

附录

本例使用这些辅助函数和类:

引用

[1]3 gpp TS 38.214。“NR;物理层数据程序。”第三代合作伙伴项目;技术规范集团无线接入网络

[2]3 gpp TS 38.321。“NR;介质访问控制(MAC)协议规范。”第三代合作伙伴项目;技术规范集团无线接入网络

[3]3 gpp TS 38.322。“NR;无线链路控制(RLC)协议规范。”第三代合作伙伴项目;技术规范集团无线接入网络

相关的话题