主要内容

802.11ax下行OFDMA多节点系统级仿真

此示例展示了如何建模一个由IEEE®802.11ax™[1]接入点(AP)和4个站(sta)。

使用这个例子,你可以:

  • 从AP到sta的OFDMA通信,并在两个DL帧交换序列之间切换。

  • 添加自定义调度器。

  • 比较正交频分复用(OFDM)和OFDMA的吞吐量。

查看DL OFDMA通信的性能指标,如吞吐量、分组延迟、分组丢失和其他网络相关指标statistics.mat文件。

OFDM和OFDMA

IEEE 802.11ax标准较现有的802.11ac标准有重大改进[2].其中一个关键的改进是OFDMA,它是OFDM数字调制技术在多用户环境中的扩展。OFDMA的基本目标是有效地利用可用的频率空间。OFDMA将信道带宽划分为多个相互排斥的子带,称为资源单位(ru)。通过划分信道带宽,可以实现多个用户同时访问该信道。因此,802.11ax支持向多个用户并发传输金宝app数据包。

例如,一个传统的20mhz信道最多可以划分为9个子信道。802.11ax AP可以通过OFDMA同时向9个802.11ax sta发送报文。帧的同时传输减少了介质访问控制层过多的争用开销,并最大限度地减少了物理(PHY)前导开销。在OFDMA中,AP控制ru的分配。

802.11ax标准指定了两种类型的OFDMA:

  • Dl ofdma -AP将数据包同时发送到多个STA,每个STA使用不同的RU。

  • 上行链路(UL) OFDMA -多个STA同时向一个AP发送数据包,每个STA使用不同的RU。

在该图中,802.11n/ac/ax AP在一段时间内将DL帧独立地传输到四个OFDM sta。AP使用整个信道带宽与单个OFDM STA通信。类似地,一个OFDM STA使用整个信道带宽与UL OFDM传输中的802.11n/ac/ax AP通信。

这个图显示了OFDMA传输。802.11ax AP在连续的基础上将信道带宽划分为4个OFDMA sta的ru,以同时进行DL传输。

WLAN系统级仿真场景

假设AP和sta是预关联的,这意味着AP和sta在模拟开始之前已经连接。该图显示了一个WLAN系统级场景,该场景模拟了AP和四个sta之间的DL通信。

在上图中:

  1. AP同时向所有sta发送DL数据。

  2. sta在接收到来自AP的DL数据帧时响应UL确认帧。

配置仿真参数

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

simulationTime = 100;showLiveStateTransitionPlot = true;displayStatistics = true;

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

rng (1,“combRecursive”);

要访问本例中的所有帮助文件,请添加mlWLANSystemSimulation文件夹到MATLAB路径

目录(genpath (fullfile (pwd,“mlWLANSystemSimulation”)));

节点

通过这些参数配置WLAN节点。

  • numNodes—网络节点数。

  • nodePositions—指定节点的位置 x -, y - - - - - -, z ——笛卡尔坐标系。

  • nodeConfig—指定每个节点的MAC和PHY配置。

指定网络中的节点数量。

numNodes = 5;

将WLAN节点的位置指定为numNodes-by-3矩阵。单位是米。向量的每一行都指定了一个节点的笛卡尔坐标,从第一个节点开始。

nodePositions = [0 0 0;0 30 0;30 0 0;0 -30 0;-30 0 0];

指定每个WLAN节点的配置为numNodes1的向量。节点的配置为awlanNodeConfig结构。的wlanNodeConfig.matfile指定节点的MAC、PHY和通道配置结构。通过初始化默认节点配置,然后配置每个节点的PHY和MAC上的参数来配置节点。有关MAC、PHY和通道中的配置参数的详细信息,请参见WLAN节点组成与配置

本示例实现了AP节点的这些配置参数。

  • MaxDLStations—一次DL多用户(MU)传输可调度的最大sta个数。

  • DLOFDMAFrameSequence用于DL OFDMA MU传输的帧交换序列类型。

如果您想使用DL MU帧与触发响应调度(TRS)控制和UL块ack (BA)序列,请设置DLOFDMAFrameSequence为1。在这个帧交换序列中,AP调度的所有sta发送一个即时响应。DL帧的TRS Control子字段携带调度信息。

如果您想使用带有MU块ack请求(BAR)触发器的DL MU帧和一个UL BA序列,请设置DLOFDMAFrameSequence2。在此帧交换序列中,AP通过使用MU-BAR触发帧从多个调度sta请求确认帧。

加载默认节点配置文件,并设置所有节点的默认节点配置参数。

负载(“wlanNodeConfig.mat”);nodeConfig = repmat(wlanNodeConfig,1,numNodes);

配置AP

nodeConfig(1)。节点名=“美联社”;nodeConfig(1)。NodePosition = nodePositions(1,:);nodeConfig(1)。TxFormat =“HE_MU”;nodeConfig(1)。BandAndChannel = {[5 36]};nodeConfig(1)。带宽= 20;% (MHz)nodeConfig(1)。TxPower = 5;% (dBm)nodeConfig(1)。TxMCS = 8;nodeConfig(1)。DisableRTS = true;启用或禁用MU-RTS/CTS交换nodeConfig(1)。DisableAck = false;启用或禁用UL确认的标志nodeConfig(1)。MaxSubframes = 5;nodeConfig(1)。MaxDLStations= 4;设置DL sta的最大数量nodeConfig(1)。DLOFDMAFrameSequence = 1;设置DL帧交换顺序

配置STA1。

nodeConfig(2)。节点名=“STA1”;nodeConfig(2)。NodePosition = nodePositions(2,:);nodeConfig(2)。BandAndChannel = {[5 36]};nodeConfig(2)。带宽= 20;% (MHz)

配置STA2。

nodeConfig(3)。节点名=“STA2”;nodeConfig(3)。NodePosition = nodePositions(3,:);nodeConfig(3)。BandAndChannel = {[5 36]};nodeConfig(3)。带宽= 20;% (MHz)

配置STA3。

nodeConfig(4)。节点名=“STA3”;nodeConfig(4)。NodePosition = nodePositions(4,:);nodeConfig(4)。BandAndChannel = {[5 36]};nodeConfig(4)。带宽= 20;% (MHz)

配置STA4。

nodeConfig(5)。节点名=“STA4”;nodeConfig(5)。NodePosition = nodePositions(5,:);nodeConfig(5)。BandAndChannel = {[5 36]};nodeConfig(5)。带宽= 20;% (MHz)

应用程序流量

wlanTrafficConfig.mat文件包含在每个节点上配置应用程序的结构。设置AP上的DL流量SourceNode而且DestinationNode中的值trafficConfig结构,分别对应AP和STA节点名称。

如果需要配置多个应用,请执行这些步骤。

  1. 类的每个元素复制默认配置trafficConfig结构向量。

  2. 更新新节点的流量配置。

有关配置参数的详细信息,请参见WLAN节点组成与配置

加载WLAN节点的应用流量配置。

负载(“wlanTrafficConfig.mat”);trafficConfig = repmat(wlanTrafficConfig,1,4);

为STA1配置DL应用程序流量。

trafficConfig(1)。SourceNode =“美联社”;trafficConfig(1)。DestinationNode =“STA1”;trafficConfig(1)。DataRateKbps = 100000;trafficConfig(1)。PacketSize = 100;%(字节)trafficConfig(1)。AccessCategory = 0;尽全力百分比(0),背景(1),视频(2),声音(3)

为STA2配置DL应用程序流量。

trafficConfig(2)。SourceNode =“美联社”;trafficConfig(2)。DestinationNode =“STA2”;trafficConfig(2)。DataRateKbps = 100000;trafficConfig(2)。PacketSize = 100;%(字节)trafficConfig(2)。AccessCategory = 0;尽全力百分比(0),背景(1),视频(2),声音(3)

为STA3配置DL应用程序流量。

trafficConfig(3)。SourceNode =“美联社”;trafficConfig(3)。DestinationNode =“STA3”;trafficConfig(3)。DataRateKbps = 100000;trafficConfig(3)。PacketSize = 100;%(字节)trafficConfig(3)。AccessCategory = 0;尽全力百分比(0),背景(1),视频(2),声音(3)

为STA4配置DL应用程序流量。

trafficConfig(4)。SourceNode =“美联社”;trafficConfig(4)。DestinationNode =“STA4”;trafficConfig(4)。DataRateKbps = 100000;trafficConfig(4)。PacketSize = 100;%(字节)trafficConfig(4)。AccessCategory = 0;尽全力百分比(0),背景(1),视频(2),声音(3)

创建WLAN场景

使用hCreateWLANNodesHelper函数执行这些任务:

  • 创建WLAN节点,并配置APP层、MAC层和PHY层。

  • 添加自定义调度器算法。

本例在每个WLAN节点上使用抽象的MAC和PHY,并仅对抽象的MAC和PHY支持OFDMA。金宝app有关抽象MAC和PHY的更多信息,请参见开始使用MATLAB的WLAN系统级仿真的例子。

属性为每个传输选择stahSchedulerRoundRobin函数。方法来合并自己的算法或实现一个新对象,可以对此函数进行修改hSchedulerhelper函数。

为了模拟每个节点之间的随机TGax衰落信道,本示例使用“TGax评估方法附录1“PHY抽象。当您对衰落信道建模时,数据包传输成功的概率取决于这些因素。

  • 所选RU的AP和STA之间通道的质量。

  • 调制和编码方案(MCS)

在本例中,调度器不考虑AP和每个STA之间通道的质量。因此,如果AP与STA之间的信道质量较差,而选择的MCS较多,则容易出现丢包现象。如果您不想对节点之间的频率选择性衰落信道建模,请设置PHYAbstractionTypeTGax模拟场景MAC校准”。

配置MAC调度算法。

schedulerAlgorithm = hSchedulerRoundRobin(numNodes);wlanNodes = hCreateWLANNodes(nodeConfig,trafficConfig,“MACScheduler”schedulerAlgorithm,...“MACFrameAbstraction”,真的,...“PHYAbstractionType”TGax评估方法附录1);

模拟

方法初始化可视化参数并模拟WLAN场景hWLANStatsLogger而且hWirelessNetworkSimulator分别为辅助函数。

visualizationInfo =结构;visualizationInfo。节点= wlanNodes; statsLogger = hWLANStatsLogger(visualizationInfo);如果showLiveStateTransitionPlot hPlotStateTransition (visualizationInfo);结束

初始化无线网络模拟器。

networkSimulator = hWirelessNetworkSimulator(wlanNodes);

计划一个事件来刷新状态转换可视化。当您从MATLAB®命令提示符运行示例时,此事件每隔5毫秒暂停执行以刷新可视化。

scheduleEvent (networkSimulator @()暂停(0.001),[],0 5);

有关调度事件的详细信息,请在MATLAB®命令提示符中输入此命令。

帮助hWirelessNetworkSimulator.scheduleEvent

在指定的模拟时间内运行网络中的所有节点,并可视化节点的状态转换周期。

运行(networkSimulator simulationTime);

{

结果

在每个节点上,模拟捕获这些网络统计信息。

  • MAC吞吐量

  • 处于竞争状态、空闲状态和发送数据状态的时间

  • APP、MAC和PHY上的发射器和接收器统计信息

检索统计数据并将其保存在mat文件中。

statistics = getStatistics(statsLogger,displayStatistics);
频带5和信道号36的统计表
statisticsTable =157×5表美联社STA1 STA2 STA3 STA4  __________ _____ _____ _____ _____ 频率5.18 5.18 5.18 5.18 5.18 ActiveOperationInFreq 1 1 1 1 1 AppTxAC_BE 50004 0 0 0 0 AppTxAC_BK 0 0 0 0 0 AppTxAC_VI 0 0 0 0 0 0 0 0 0 0 AppTxBytes AppTxAC_VO 5.0004 e + 06 0 0 380 760 579 170 0 0 0 AppRxAC_BE AppRxAC_BK 0 0 0 0 0 AppRxAC_VI 0 0 0 0 0 AppRxAC_VO 0 0 0 0 0 AppRxBytes 0 38000 76000 57900 17000 AppTxOverflow 47257 0 0 43595 27472 28663 42062 0 0 0 AppAvgPacketLatency AppAvgPacketLatencyAC_BE 0 43595 27472 28663 42062AppAvgPacketLatencyAC_BK 0 0 0 0 0
保存(“statistics.mat”“统计数据”);

属性可以访问此表中的所有统计信息statistics.mat文件。有关在每个节点捕获的统计信息的详细信息,请参见在WLAN系统级模拟中捕获的统计信息

绘制每个节点的吞吐量、丢包率和平均包延迟。该图显示了AP和sta的吞吐量(以Mbps为单位)和丢包率(不成功的数据传输与总数据传输的比率)。该图还显示了STA上的平均包延迟。平均数据包延迟表示STA接收来自AP的DL流量所引起的平均延迟。

hPlotNetworkStats(统计,wlanNodes);

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

在模拟结束时,删除mlWLANSystemSimulation路径中的文件夹。

rmpath (genpath (fullfile (pwd,“mlWLANSystemSimulation”)));

清理函数中使用的持久变量。

清晰的hPlotStateTransition

OFDM和OFDMA的吞吐量比较

生成这些OFDM和OFDMA传输场景的吞吐量结果。

  • 一个AP在OFDMA配置中最多为140个sta服务。要配置此场景,请设置DLOFDMAFrameSequence参数为1。

  • 一个AP在OFDMA配置中最多为140个sta服务。要配置此场景,请设置DLOFDMAFrameSequence参数为2。

  • 一个AP,通过OFDM配置,最多为140个sta提供服务。要配置此场景,请设置TxFormat节点参数为AP节点的“HE_SU”和MaxDLStations为1。

在这些模拟中PHYAbstractionType设置为"TGax模拟场景MAC校准, AP节点的配置值如下表所示。

为OFDM (HE SU .)绘制吞吐量结果作为DL sta数量的函数和OFDMA (HE MU配置。在每次模拟运行结束时,检索每个节点的吞吐量值statistics.mat文件。通过聚合这些吞吐量值来计算总吞吐量。

绘制OFDM和OFDMA配置的吞吐量结果。

plotThroughput;

图中包含一个轴对象。标题为Downlink Throughput at AP的axes对象包含3个类型为line的对象。这些对象表示OFDM, OFDMA DL-PPDU TRS Control, OFDMA DL-PPDU MU-BAR Trigger。

上图显示了使用两个DL帧交换序列的OFDM和OFDMA的802.11ax吞吐量比较。使用OFDMA获得的两种帧交换序列的吞吐量都大于使用OFDM获得的吞吐量。增加DL sta的数量对OFDM吞吐量没有影响。使用OFDMA DL序列获得的吞吐量DLOFDMAFrameSequence设置为1比序列高DLOFDMAFrameSequence设置为2因为将MU-BAR作为一个单独的帧传输增加了开销。

这个示例使您能够在多节点IEEE 802.11ax网络中建模DL OFDMA通信。通过配置APP,您可以将多个应用程序配置到不同的目标sta。本例使用轮询调度策略选择下一次传输的sta。对于给定数量的用户和带宽,ru的分配是固定的。仿真结果表明,使用OFDMA的AP的吞吐量比使用OFDM的吞吐量要高。

本地函数

函数plotThroughput图;DL sta的百分比numStations = [1 2 6 8 9 15 20 25 30 40 50 60 74 100 140];% OFDMA配置的吞吐量结果(Mbps),节点参数DLOFDMAFrameSequence设置为1。throughputOFDMASeq1 = [23.3623 36.5026 47.0532 60.1624 69.2308 115.3846 150.6410 188.3013 221.1538 288.4615 360.3099 423.0769 498.0769 509.1404 509.9359];当节点参数DLOFDMAFrameSequence设置为2时,OFDMA配置的吞吐量结果(Mbps)。throughputOFDMASeq2 = [20.4911 32.0026 43.2692 57.6081 63.3739 105.7692 137.7295 168.2692 197.1154 250.0000 304.4872 346.1538 403.2051 414.4166 414.5658];OFDM配置的吞吐量结果(Mbps)。throughputOFDM = [33.76 33.76 33.76 33.76 33.76 33.76 33.76 33.76 33.76 33.76 33.76 33.76 33.76 33.76 - 33.76);从OFDM模拟中获得的吞吐量图情节(numStations throughputOFDM,“o”);保留OFDM吞吐量图持有从序列1的OFDMA模拟中获得的吞吐量图情节(numStations throughputOFDMASeq1,“- x”);保留OFDM吞吐量图持有从序列2的OFDMA模拟中获得的吞吐量图情节(numStations throughputOFDMASeq2,”——+ ');网格;包含(“DL站数”);ylabel (吞吐量(Mbps)的);传奇({“OFDM”“OFDMA”+换行符+DL-PPDU TRS控制“OFDMA”+换行符+DL-PPDU MU-BAR触发器},“位置”“northeastoutside”);标题(“美联社的下行吞吐量”);结束

参考文献

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

[2] IEEE Std 802.11-2020。无线局域网介质访问控制(MAC)和物理层(PHY)规范IEEE信息技术标准。系统间的电信和信息交换。局域网和城域网。特殊要求。

相关的话题