主要内容

基于MATLAB的802.11ax多节点住宅场景系统级仿真

此示例显示如何建模IEEE®802.11ax™的性能[1]网络中使用WLAN Toolbox™。

使用这个例子,你可以:

  • 通过配置网络和通道参数来模拟住宅场景。

  • 模拟多节点WLAN系统,可视化网络相关统计信息。

  • 通过在介质访问控制(MAC)和物理层(PHY)的抽象和完整模型之间切换来模拟网络。

仿真结果显示了吞吐量、延迟和丢包等性能指标。

住宅场景描述

本示例演示了一个系统级模拟,以评估住宅场景中802.11ax网络的性能。住宅场景包括一个3层的建筑。以下是住宅场景的特点:

  • 楼层间距为1.5米。

  • 每层楼由四个房间组成,每个房间的尺寸都是10m x 10m x 3m。

  • 每个房间都有一个接入点(AP)和两个随机放置的站(sta)x- - -y-距离地面1.5米的位置。

  • 每个AP都有存在于同一房间的sta的数据。

仿真场景根据节点之间的距离以及WLAN信号所经过的墙壁和地板的数量指定路径损耗模型。该图显示了本例中模拟的住宅场景。

residentialscenario_1.PNG

这个示例使用抽象对所有节点(ap和sta)的MAC层和PHY进行建模。MAC层实现了增强的分布式通道访问(EDCA)功能。MAC层使用抽象来生成帧和解码。抽象是指MAC层发送和接收帧元数据,而不是发送或接收经过编码的MAC帧字节。类似地,PHY对WLAN信号的生成和解码使用抽象。有关PHY抽象的更多信息,请参见系统级仿真的物理层抽象的例子。

本例根据TGax评估方法中指定的Box-3和Box-5场景进行校准[2].为TGax模拟方案文件中提及的方案计算的网络吞吐量[3.],以验证TGax任务小组公布的校准结果,以确认符合IEEE 802.11标准。

配置参数

仿真参数

属性指定模拟时间(以毫秒为单位)simulationTime变量。要可视化所有节点的活动状态转换图,请设置showLiveStateTransitionPlot变量为true。若要在模拟结束时显示包含网络统计信息的表,请设置displayStatistics变量为true。

将随机数生成器的种子设置为1。种子值控制随机数生成的模式。由种子值产生的随机数影响MAC的回退计数器选择和PHY的路径损失建模。对于高保真模拟结果,更改种子值并在多个模拟中平均结果。

rng (1,“combRecursive”);随机数生成器的种子simulationTime = 100;%模拟时间,单位为毫秒showLiveStateTransitionPlot = true;显示所有节点的实时状态转换图displayStatistics = true;在模拟结束时显示统计信息将该文件夹添加到访问所有辅助文件的路径目录(genpath (fullfile (pwd,“mlWLANSystemSimulation”)));

住宅场景参数

ScenarioParameters结构使用这些参数定义住宅建筑的大小和布局。

  • BuildingLayout:以三个方向的房间数目指明建筑物的布局

  • RoomSize:每个房间的大小,单位为米

  • NumRxPerRoom:每个房间的站数

该示例假设每个房间中有一个发送AP和两个接收sta。的hDropNodes函数随机生成AP和sta在每个房间中的位置。

场景参数= struct;% [x,y,z]方向上的房间数ScenarioParameters。BuildingLayout= [2 2 3];%每个房间的大小,单位为米[x,y,z]ScenarioParameters。RoomSize= [10 10 3];%每个房间的sta数量ScenarioParameters。NumRxPerRoom = 2;获取节点的随机位置[apPositions, stpositions] = hDropNodes(场景参数);

节点参数

hLoadConfiguration函数加载指定节点的MAC和PHY配置nodeConfigs所指定的传输节点的应用程序流量配置trafficConfigs.该函数为网络中的所有节点分配名称和位置。

获取每个节点的id和位置[nodeConfigs, trafficConfigs] = hLoadConfiguration(场景参数,apPositions, stpositions);

wlanNodeConfig.mat文件定义了指定节点的MAC和PHY配置的结构。有关MAT文件中详细配置参数的更多信息,请使用命令hConfigurationHelp(“wlanNodeConfig”).的nodeConfigs的输出hLoadConfigurationFunction是这些结构的数组。用户可以修改发送报文的MAC配置参数,如格式、信道带宽、MCS (modulation and coding scheme)索引、STS (space-time stream)数等。还可以修改发射功率、发射增益、接收增益、噪声功率等物理层参数。例如,这段代码将node-1配置为使用固定的MCS-6传输数据包。

nodeConfigs(1)。TxMCS = 6
nodeConfigs =1×36包含字段的struct数组:NodeName NodePosition TxFormat Bandwidth TxMCS TxNumSTS NumTxChains MPDUAggregation DisableAck MaxSubframes RTSThreshold DisableRTS MaxShortRetries MaxLongRetries DLOFDMAFrameSequence MaxDLStations BasicRates Use6MbpsForControlFrames BandAndChannel CWMin CWMax AIFSSlots RateControl PowerControl TxPower TxGain RxGain EDThreshold RxNoiseFigure ReceiverRange FreeSpacePathloss IsMeshNode MeshTTL IsAP

wlanTrafficConfig.mat文件定义用于指定应用程序流量配置的结构。有关MAT文件中详细配置参数的更多信息,请使用命令hConfigurationHelp(“wlanTrafficConfig”).的trafficConfigs的输出hLoadConfigurationFunction是这些结构的数组。每个结构都对应于一个特定的源节点和目标节点对。您可以为数组中的每个应用程序修改包大小、数据速率或访问类别等参数。本例中的模拟场景配置从ap到sta的Best Effort (AC0)流量。例如,数组中的第一个结构指定从节点1 (AP)到节点13 (STA)的应用程序流量。这段代码配置了1000字节大小的应用程序数据包从节点1传输到节点13。所有其他发射器使用默认的1500字节数据包大小。

trafficConfigs(1)。PacketSize = 1000
trafficConfigs =1×24包含字段的struct数组:SourceNode DestinationNode PacketSize DataRateKbps AccessCategory

创建网络

根据节点配置创建发射机和接收机站点。根据场景参数创建建筑几何形状。

创建发射机和接收机站点[txs,rxs] = hCreateSitesFromNodes(nodeConfigs);创建三角测量对象并可视化场景tri = hTGaxResidentialTriangulation(场景参数);hVisualizeScenario(三、tx rx,同位语);

图中包含一个轴对象。axis对象包含40个类型为patch、line、text、scatter的对象。这些对象代表AP, STA。

本例使用TGax驻留传播模型来确定节点之间的路径损耗。路径损耗是墙壁数量、楼层数量和节点之间距离的函数。使用hTGaxResidentialPathLoss函数创建一个路径损耗模型。

propModel = hTGaxResidentialPathLoss(“三角”三,“ShadowSigma”0,“FacesPerWall”1);

使用hCreatePathlossTable辅助函数获取网络中每对节点之间的路径损失。

[pl,tgaxIndoorPLFn] = hCreatePathlossTable(txs,rxs,propModel);

hCreateWLANNodesHelper函数使您可以:

  • 按上述参数配置APP层、MAC层和PHY层,创建WLAN节点

  • 中的算法配置相关代码,在APP、MAC和PHY层添加自定义算法hCreateWLANNodes

默认情况下,hCreateWLANNodeshelper功能用于在WLAN各节点上配置抽象MAC和PHY。

在发送端和接收端,建模完整的MAC处理包括在MAC层生成完整的MAC帧。类似地,建模完整的PHY处理包括通过衰落信道与波形传输和接收相关的完整操作。在模拟大型网络时,完整的MAC和PHY处理计算成本很高。

在抽象MAC中,节点不生成或解码MAC层的任何帧。类似地,在抽象PHY中,节点不生成或解码PHY上的任何波形。MAC和PHY抽象使您能够最小化系统级模拟的复杂性和持续时间。有关PHY抽象的更多信息,请参见系统级仿真的物理层抽象的例子。

hCreateWLANNodeshelper功能允许您在抽象MAC和完整MAC或PHY之间切换MACFrameAbstraction而且PHYAbstractionType输入参数。这些参数的有效值为:

  • MACFrameAbstraction:是或否

  • PHYAbstractionType:“TGax评估方法附录1”(默认),“TGax模拟场景MAC校准”或“无”

如果你设置PHYAbstractionType到“TGax评估方法附录1”,PHY通过使用有效的信干扰加噪声比(SINR)映射来估计TGax信道模型链路的性能。的“TGax模拟场景MAC校准”值PHYAbstractionType假定数据包因干扰而失败,而不实际计算链路性能。要使用全PHY,请设置的值PHYAbstractionType“没有”。

MACFrameAbstraction =真正的;PHYAbstractionType =TGax评估方法附录1;wlanNodes = hCreateWLANNodes(nodeConfigs, trafficConfigs,...“CustomPathLoss”tgaxIndoorPLFn,“MACFrameAbstraction”MACFrameAbstraction,“PHYAbstractionType”, PHYAbstractionType);

的值,显示了如何在抽象MAC或完整MAC或PHY之间切换MACFrameAbstraction而且PHYAbstractionType输入参数。

wlanSLSTable.png

模拟

若要初始化可视化参数并模拟WLAN场景,请使用hWLANStatsLogger而且hWirelessNetworkSimulator分别为辅助函数。

初始化可视化参数visualizationInfo =结构;visualizationInfo。Nodes = wlanNodes;statsLogger = hWLANStatsLogger(visualizationInfo);如果showLiveStateTransitionPlot hPlotStateTransition (visualizationInfo);配置状态转换可视化结束初始化无线网络模拟器networkSimulator = hWirelessNetworkSimulator(wlanNodes);

类型的网络模拟器提供了在模拟中调度自定义事件的灵活性scheduleEvent对象的功能。

例如,每次调用模拟器时,都可以安排一个事件来刷新状态转换可视化。指定函数句柄、输入参数、调用时间和回调的周期。有关调度事件的更多信息,请在MATLAB命令提示符中输入此命令。

帮助hWirelessNetworkSimulator.scheduleEvent

%当您从MATLAB命令提示符运行脚本时,暂停每5毫秒刷新一次可视化scheduleEvent(networkSimulator, @() pause(0.001), [], 0,5);

运行网络中指定的所有节点simulationTime时间。可视化节点的状态转换周期。

%模拟无线网络运行(networkSimulator simulationTime);

{

清除函数中使用的持久变量清晰的hPlotStateTransition

结果

检索统计信息并将其存储在一个mat文件中。UI表显示模拟期间收集的所有统计信息。

检索统计信息并将其存储在一个mat文件中statistics = getStatistics(statsLogger, displayStatistics);
频带2.4和信道号6的统计表
statisticsTable =157×36表Node1 Node2 Node3 Node4 Node5 Node6 Node7 Node8 Node9 Node10 Node11 Node12 Node13 Node25 Node14 Node26 Node15 Node27 Node16 Node28 Node17 Node29 Node18 Node30 Node19 Node31 Node20 Node32 Node21 Node33 Node22 Node34 Node23 Node35 Node24 Node36  __________ _______ _______ _______ _______ _______ _______ _______ _______ _______ _______ _______ ________ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______________ ______ 频率2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 2.437 ActiveOperationInFreq 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 AppTxAC_BE 12143 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppTxAC_BK 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppTxAC_VI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppTxAC_VO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppTxBytes 1.4643 1.5 e + e + 07年07年1.5 1.5 e + e + 07年07年1.5 1.5 e + e + 07年07年1.5 1.5 e + e + 07年07年1.5 1.5 e + e + 07年07年1.5 1.5 e + e + 07年07年0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppRxAC_BE 0 0 0 0 0 0 0 0 0 0 0 0 129 3 58 0 0 32 0 32 0 32 0 0 0 0 0 0 32 64 0 32 0 96 0 64 AppRxAC_BK 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppRxAC_VI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppRxAC_VO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppRxBytes 0 0 0 0 0 0 0 0 0 0 0 0 1.29e+05 4500 87000 0 0 48000 0 48000 0 48000 0 0 0 0 0 0 48000 96000 0 48000 0 1.44e+05 0 96000 AppTxOverflow 11444 9488 9488 9488 9456 9488 9485 9424 9456 9488 9392 9328 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AppAvgPacketLatency 0 0 0 0 0 0 0 0 0 0 0 0 70356 596 86568 0 0 22527 0 33615 0 44721 0 0 0 0 0 0 50286 61091 0 72483 0 49663 0 49967 AppAvgPacketLatencyAC_BE 0 0 0 0 0 0 0 0 0 0 0 0 70356 596 86568 0 0 22527 0 33615 0 44721 0 0 0 0 0 0 50286 61091 0 72483 0 49663 0 49967 AppAvgPacketLatencyAC_BK 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ⋮

方法可以访问上表中的所有统计信息statistics.mat文件。

将统计数据保存到一个mat文件保存(“statistics.mat”“统计数据”);

hPlotNetworkStatsHelper函数对收集到的统计数据进行解析,并绘制各节点的吞吐量、丢包率和平均包延迟值。该图显示了每个发射机(ap)的吞吐量和丢包率。该图还显示了每个接收节点(sta)上经历的平均数据包延迟。吞吐量以兆比特每秒(Mbps)为单位显示每个AP上实现的数据速率。丢包率反映数据传输失败的次数占总数据传输次数的比例。平均数据包延迟显示每个STA从AP接收其下行流量所经历的平均延迟。

%绘制每个节点的吞吐量、丢包率和平均包延迟hPlotNetworkStats(统计,wlanNodes);

图中包含3个轴对象。标题为Throughput at Each Transmitter的Axes对象1包含一个类型为bar的对象。标题为“每个发射器丢包”的坐标轴对象2包含一个类型为bar的对象。标题为“每个接收者的平均数据包延迟”的坐标轴对象3包含一个类型为bar的对象。

从路径中删除文件夹rmpath (genpath (fullfile (pwd,“mlWLANSystemSimulation”)));

进一步的探索

当STA在房间内移动时,要观察吞吐量的变化,您可以对具有固定AP的STA的不同位置运行模拟。您可以观察吞吐量与其AP距离的变化。在所有不同位置捕获的吞吐量集可以用于绘制如图所示的热图。

heatmap.jpg

参考文献

  1. IEEE标准802.11ax™-2021。修订6:高效无线局域网的增强信息技术标准草案。系统间的电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范

  2. “TGax模拟场景”,博士。IEEE 802.11 14/0980r16。

  3. “11ax评估方法”,博士。IEEE 802.11 14/0571r12。

相关的话题