主要内容

开始使用MATLAB中的WLAN系统级仿真

本示例展示了如何对由IEEE®802.11ax™标准组成的WLAN网络进行建模。1通过使用WLAN Toolbox™和Communications Toolbox™无线网络仿真库(Wireless Network Simulation Library)实现AP和STA。

使用这个例子,你可以:

  • 通过在每个节点上配置APP (application layer)、MAC (medium access control)和PHY (physical layer)参数,模拟一个多节点的WLAN系统。

  • 对AP和STA之间的上行和下行通信进行建模。

  • 在MAC层和物理层的抽象模型和完整模型之间切换。

  • 可视化每个节点在空闲、争用、传输和接收状态下花费的时间。

  • 捕获每个节点的APP、MAC和PHY统计信息。

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

此外,您可以使用这个示例脚本生成、配置和添加外部应用程序流量模式,如On-Off、Video、Voice和FTP到WLAN节点。有关更多信息,请参见进一步的探索

WLAN系统级仿真

本示例向您展示如何在AP和STA之间进行上行和下行通信的WLAN网络建模。下图展示了示例网络。

AP和STA之间的通信

下图显示了示例工作流。

确认符合IEEE 802.11标准[2],本例中的特性通过TGax评估方法中指定的Box-3和Box-5场景进行验证[3.]。为TGax仿真场景计算的网络吞吐量[4]根据TGax任务组公布的校准结果进行验证。

检查“支持包安装”金宝app

检查是否安装了Communications Toolbox™Wireless Network Simulation Library支持包。金宝app如果没有安装支金宝app持包,MATLAB®将返回一个错误,并提供下载和安装支持包的链接。

wirelessnetwork金宝appSupportPackageCheck

配置仿真参数

将随机数生成器的种子设置为1。种子值控制随机数生成的模式。由种子值生成的随机数影响模拟中的几个过程,包括MAC层的退退计数器选择和预测物理层的数据包接收成功。为了在运行模拟后提高模拟结果的准确性,您可以更改种子值,再次运行模拟,并对多个模拟的结果进行平均。

rng (1,“combRecursive”

指定以秒为单位的模拟时间。要可视化所有节点的实时状态转换图,请设置showLiveStateTransitionPlot变量来真正的

simulationTime =1;showLiveStateTransitionPlot =真正的;

在发送端和接收端,完整的MAC处理建模涉及MAC层完整的MAC帧生成。同样,建模完整的PHY处理涉及到通过衰落信道的波形发送和接收的完整操作。当模拟大型网络时,完整的MAC和PHY处理在计算上是昂贵的。

在抽象MAC中,节点不生成或解码MAC层的任何帧。同样,在抽象的PHY中,节点不会在PHY上生成或解码任何波形。MAC和PHY抽象使您能够最大限度地减少系统级模拟的复杂性和运行时间。有关PHY抽象的更多信息,请参见系统级仿真的物理层抽象的例子。

下表显示了如何通过配置的值在抽象MAC和完整MAC或PHY之间切换MACFrameAbstractionPHYAbstractionMethod的属性wlanNode对象。

如果你设置PHYAbstractionMethodtgax-evaluation-methodology, PHY通过使用有效的信噪比(SINR)映射来估计具有TGax信道模型的链路的性能。或者,如果您设置PHYAbstractionMethodtgax-mac-calibrationPHY假定由于干扰导致数据包失败,而不实际计算链路性能。若要使用完整的PHY,请设置PHYAbstractionMethod没有一个

MACFrameAbstraction =;PHYAbstractionMethod =“tgax-evaluation-methodology”;

配置WLAN操作场景

初始化无线网络模拟器wirelessNetworkSimulator对象。

networkSimulator = wirelessNetworkSimulator.init;

节点

wlanDeviceConfig对象用于设置AP和STA的配置参数。创建两个WLAN设备配置对象,一个用于AP,另一个用于STA。指定AP和STA的工作模式、调制编码方案和发射功率(以dBm为单位)。

accessPointCfg = wlanDeviceConfig(Mode=“美联社”MCS = 2, TransmitPower = 15);% AP设备配置stationCfg = wlanDeviceConfig(Mode=“STA”MCS = 2, TransmitPower = 15);% STA设备配置

从指定的WLAN设备配置中创建AP节点和STA节点,使用wlanNode对象。指定AP和STA的名称和位置。指定AP和STA使用的PHY抽象方式。配置MACFrameAbstraction的性质wlanNode对象来指示MAC帧是否被节点抽象。

accessPoint = wlanNode(Name=“美联社”位置=[10 0 0],DeviceConfig = accessPointCfg,PHYAbstractionMethod = PHYAbstractionMethod,MACFrameAbstraction = MACFrameAbstraction);station = wlanNode(Name=“STA”位置=[20 00 00],DeviceConfig = stationCfg,PHYAbstractionMethod = PHYAbstractionMethod,MACFrameAbstraction = MACFrameAbstraction);

创建由AP和STA组成的WLAN网络。

nodes = [accessPoint station];

为确保所有节点配置正确,请使用hCheckWLANNodesConfigurationhelper函数。

hCheckWLANNodesConfiguration(节点)

关联和应用流量

将STA关联到APassociateStationswlanNode对象的object函数。配置AP和STA之间的上下行应用流量时,使用FullBufferTraffic论证associateStations对象的功能。

associateStations (accessPoint、车站、FullBufferTraffic =“上”);

无线信道

要对每个节点之间的随机TGax衰落信道进行建模,本示例使用hSLSTGaxMultiFrequencySystemChannelhelper对象。将信道模型添加到无线网络模拟器中addChannelModel的对象函数wirelessNetworkSimulator对象。

channel = hSLSTGaxMultiFrequencySystemChannel(nodes);addChannelModel (networkSimulator channel.ChannelFcn)

导出WLAN MAC帧到PCAP或PCAPNG文件

该示例演示了AP和STA节点上的数据包捕获。设置capturePacketsFlag旗帜真正的捕获在模拟过程中交换的数据包。包捕获(PCAP)或下一代包捕获(PCAPNG)文件。pcap or .pcapng, respectively) is a widely used packet capture file format to perform packet analysis. The packets are captured into a PCAP file in this example.

capturePacketsFlag =真正的;

创建一个hExportWLANPacketshelper对象来生成PCAP文件。指定要捕获数据包的节点对象。helper对象捕获这些节点上传输和接收的数据包,并为每个节点生成PCAP文件。如果希望捕获PCAPNG文件中的数据包,请指定字符串“PCAPNG”作为对象函数调用的第二个参数。请注意,只有在以下情况下才能捕获数据包MACFrameAbstraction标志设置为

如果capturePacketsFlag清晰capturePacketsObj;%清除现有的助手对象capturePacketsObj = hExportWLANPackets(节点);结束

您可以通过第三方包分析工具(如Wireshark)对PCAP或PCAPNG文件进行可视化分析。

模拟

将节点添加到无线网络模拟器中。

addnode (networkSimulator节点)

要查看状态转换和性能指标图,请创建hSimulationPlotViewerhelper对象。仿真显示了在仿真中配置的所有节点的图。要可视化特定节点的状态转换和性能指标,请将相应的节点对象指定为helper对象的第二个参数。

viewerObj = hSimulationPlotViewer(showLiveStateTransitionPlot,nodes);

在指定的仿真时间内运行网络仿真。运行时可视化显示AP和STA在空闲、争用、传输和接收状态下花费的时间。

运行(networkSimulator simulationTime);

图MAC状态随时间的转换包含一个轴对象和另一个uicontrol类型的对象。具有xlabel Node Timeline(微秒),ylabel Node Names的axis对象包含2843个矩形条类型的对象。这些对象分别表示:Contention、Transmission、Reception、Reception(去往节点)、Other (EIFS/SIFS/Idle/Busy)。

结果

方法检索每个节点上的APP、MAC和PHY统计信息统计数据的对象函数wlanNode对象。

Stats =统计(节点);

绘制每个节点的性能plotNetworkStats的对象函数hSimulationPlotViewer对象。你可以可视化这些模拟图。

  • 每个发射机(AP和STA)的吞吐量(以Mbps为单位)。

  • 丢包率,即每个发射机(AP和STA)上传输失败的数据与总传输数据的比率。

  • 每个接收端(AP和STA)的平均数据包延迟。平均报文时延表示STA接收AP发送的下行流量的平均时延和AP接收STA发送的上行流量的平均时延。

plotNetworkStats (viewerObj simulationTime)

图中包含3个轴对象。轴对象1标题为吞吐量在每个发射器,xlabel节点名称,ylabel吞吐量(Mbps)包含一个类型为bar的对象。标题为“每个发射机丢包,xlabel节点名称,ylabel丢包率”的轴对象2包含一个类型为bar的对象。标题为“每个接收器的平均数据包延迟,xlabel节点名称,ylabel平均数据包延迟(s)”的轴对象3包含一个类型为bar的对象。

因为hExportWLANPacketshelper对象不会覆盖现有的PCAP或PCAPNG文件,从而删除此模拟中使用的PCAP对象。

如果capturePacketsFlag删除(capturePacketsObj.PCAPObjList);结束

进一步的探索

配置外部应用流量

如果需要在WLAN节点上生成和添加外部应用流量模式(On-Off、Video、Voice和FTP),则需要修改本例中的流量配置。要生成On-Off应用程序流量,请创建两个networkTrafficOnOff下行流量对象和上行流量对象。通过指定应用数据速率和数据包大小来配置这些对象。

% trafficSourceDL = networkTrafficOnOff(DataRate=100000,PacketSize=1500);% trafficSourceUL = networkTrafficOnOff(DataRate=100000,PacketSize=1500);

将下行应用流量从AP节点挂载到STA节点addTrafficSource的对象函数wlanNode对象。同理,将STA节点上的应用上行流量挂载到AP节点上。

% addTrafficSource (accessPoint trafficSourceDL DestinationNode =站,AccessCategory = 0);% addTrafficSource(站、trafficSourceUL DestinationNode = accessPoint AccessCategory = 0);

如果需要生成视频、语音和FTP应用流量,请使用networkTrafficVideoConferencenetworkTrafficVoIP,networkTrafficFTP对象,分别

附录

这个例子使用了这些帮助器:

参考文献

  1. 电气和电子工程师协会(IEEE)。IEEE信息技术标准-系统本地和城域网之间的电信和信息交换-特殊要求第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范修订1:增强高效WLANIEEE 802.11 ax - 2021。IEEE, 2021年5月19日。https://doi.org/10.1109/IEEESTD.2021.9442429

  2. 电气和电子工程师协会(IEEE)。IEEE信息技术标准-系统本地和城域网之间的电信和信息交换-特殊要求第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范IEEE 802.11 -2020。IEEE, 2021年2月26日。https://doi.org/10.1109/IEEESTD.2021.9363693

  3. 电气和电子工程师协会(IEEE)。11ax评估方法。IEEE 802.11 14/0571r12。IEEE, 2016年1月。

  4. 电气和电子工程师协会(IEEE)。TGax仿真场景。IEEE 802.11 14/0980r16。IEEE 2015。

另请参阅

功能

对象

相关的话题