主要内容

802.11ax下行OFDMA和多用户MIMO吞吐量模拟

此示例显示了IEEE®802.11ax™多用户下行链路传输在TGax室内衰落信道上的发送和接收处理。模拟了三种传输模式:OFDMA、MU-MIMO和OFDMA和MU-MIMO的组合。

简介

本例模拟一个接入点(AP)使用IEEE Std 802.11ax™-2021规定的高效(HE)多用户(MU)格式数据包同时向四个站(sta)传输数据的场景[1]。

HE多用户格式可以配置为OFDMA传输、MU-MIMO传输或两者的组合。这种灵活性允许HE-MU包在整个频带上传输给单个用户,在频带的不同部分(OFDMA)上传输给多个用户,或在频带的同一部分(MU-MIMO)上传输给多个用户。

在多用户下行场景下,比较了三种传输方式:

  1. OFDMA -四个用户中的每一个都被分配一个单独的资源单元(RU),传输是波束形成的。

  2. MU-MIMO -所有四个用户共享整个频段。

  3. 混合MU-MIMO和OFDMA -在MU-MIMO配置中,两个用户共享一个RU,其余两个用户各分配一个RU。

有关802.11ax格式的详细概述,请参见802.11ax波形生成的例子。

对于每种传输模式,AP发送10个数据包的突发,每个STA解调和解码用于它的数据。在AP和每个STA之间建立了一个带有AWGN的不断演进的TGax室内MIMO信道。原始AP吞吐量是用来比较传输模式的一个度量,是通过计算成功传输到所有sta的数据包数量来计算的。对不同的路径损耗进行重复模拟。在这个例子中,所有的传输都是波束形式的。因此,在模拟数据传输之前,AP与各站之间的信道在完美条件下进行声音探测,以获取信道状态信息。

传输配置

一个wlanHEMUConfig对象用于配置HE-MU报文的传输。指定了三个传输配置对象来定义三种不同的AP传输:

  1. cfgMUMIMO是MU-MIMO配置,由单个242音RU和4个用户组成。每个用户有一个时空流。

  2. cfgOFDMA是一种OFDMA配置,由四个52音ru组成,每个ru有一个用户。每个用户有两个时空流。

  3. cfgMixed是一种混合OFDMA和MU-MIMO配置,由两个用户共享一个106音RU和两个52音RU组成,每个RU由一个用户共享。MU-MIMO用户各有一个时空流,OFDMA用户各有两个时空流。

20 MHz的信道带宽用于所有传输。其他传输参数,如APEPLength和MCS对所有用户在所有配置中都是相同的。

首先定义MU-MIMO配置。分配指标195定义一个242色调的RU,在MU-MIMO中有四个用户。有关选择分配索引的说明,请参见802.11ax波形生成的例子。

% MU-MIMO配置-一个242音RU上有4个用户cfgMUMIMO = wlanHEMUConfig(195);

分配图显示一个RU被分配给所有四个用户。

showAllocation (cfgMUMIMO);

现在已经为每个用户配置了传输参数。

numTx = 6;%发射天线个数guardInterval = 0.8;%保护间隔(微秒)为所有用户配置公共参数cfgMUMIMO。numtransmitantenna = numTx;cfgMUMIMO。GuardInterval = GuardInterval;为每个用户配置参数% sta #1cfgMUMIMO.User{1}。NumSpaceTimeStreams = 1;cfgMUMIMO.User{1}。MCS = 4;cfgMUMIMO.User{1}。APEPLength = 1000;% sta #2cfgMUMIMO.User{2}。NumSpaceTimeStreams = 1;cfgMUMIMO.User{2}。MCS = 4;cfgMUMIMO.User{2}。APEPLength = 1000;% sta #3cfgMUMIMO.User{3}。NumSpaceTimeStreams = 1;cfgMUMIMO.User{3}。MCS = 4;cfgMUMIMO.User{3}。APEPLength = 1000;% sta #4cfgMUMIMO.User{4}。NumSpaceTimeStreams = 1;cfgMUMIMO.User{4}。MCS = 4;cfgMUMIMO.User{4}。APEPLength = 1000;

接下来定义OFDMA配置。分配指标112定义了4个52音的ru,每个ru为单个用户服务。

% OFDMA配置- 4个用户,每个在一个52音RUcfgOFDMA = wlanHEMUConfig(112);

分配图显示了四个ru,每个ru都有一个用户。当将此分配图与全频带MU-MIMO图进行比较时,显然使用的子载波总数(4x52 = 208个子载波)小于MU-MIMO分配(242个子载波)。子载波数量越少,每个OFDMA用户之间的保护就越好。

showAllocation (cfgOFDMA);

现在已经为每个用户配置了传输参数。

为所有用户配置公共参数cfgOFDMA。numtransmitantenna = numTx;cfgOFDMA。GuardInterval = GuardInterval;为每个用户配置参数% sta #1 (ru #1)cfgOFDMA.User{1}。NumSpaceTimeStreams = 2;cfgOFDMA.User{1}。MCS = 4;cfgOFDMA.User{1}。APEPLength = 1000;% sta #2 (ru #2)cfgOFDMA.User{2}。NumSpaceTimeStreams = 2;cfgOFDMA.User{2}。MCS = 4;cfgOFDMA.User{2}。APEPLength = 1000;% sta #3 (ru #3)cfgOFDMA.User{3}。NumSpaceTimeStreams = 2;cfgOFDMA.User{3}。MCS = 4;cfgOFDMA.User{3}。APEPLength = 1000;% sta #4 (ru #4)cfgOFDMA.User{4}。NumSpaceTimeStreams = 2;cfgOFDMA.User{4}。MCS = 4;cfgOFDMA.User{4}。APEPLength = 1000;

最后,定义了MU-MIMO和OFDMA混合配置。分配指标25定义一个106音的RU和两个用户,以及两个52音的RU,每个RU都有一个用户。

混合OFDMA和MU-MIMO配置cfgMixed = wlanHEMUConfig(25);

分配图显示了三个ru,一个有2个用户(MU-MIMO),另一个各有一个用户(OFDMA)。

showAllocation (cfgMixed);

现在已经为每个用户配置了传输参数。

为所有用户配置公共参数cfgMixed。numtransmitantenna = numTx;cfgMixed。GuardInterval = GuardInterval;为每个用户配置参数% RU #1有两个用户(MU-MIMO)和2个STS(每个用户1个)% sta #1 (ru #1)cfgMixed.User{1}。NumSpaceTimeStreams = 1;cfgMixed.User{1}。MCS = 4;cfgMixed.User{1}。APEPLength = 1000;% sta #2 (ru #1)cfgMixed.User{2}。NumSpaceTimeStreams = 1;cfgMixed.User{2}。MCS = 4;cfgMixed.User{2}。APEPLength = 1000;其余两个用户为OFDMA% sta #3 (ru #2)cfgMixed.User{3}。NumSpaceTimeStreams = 2;cfgMixed.User{3}。MCS = 4;cfgMixed.User{3}。APEPLength = 1000;% sta #4 (ru #3)cfgMixed.User{4}。NumSpaceTimeStreams = 2;cfgMixed.User{4}。MCS = 4;cfgMixed.User{4}。APEPLength = 1000;

通道模型配置

本例中使用TGax室内通道模型。一个单独的通道用于模拟AP和每个用户之间的链接。TGax通道对象,tgaxBase使用与所有用户相关的属性创建。本例中,延迟配置文件(Model-D)和接收天线数量对所有用户都是通用的。当发射机与接收机之间的距离大于或等于10米时,模型- d被认为是非视距。这将在中进一步描述wlanTGaxChannel.通道使用固定的种子以允许可重复性。

为所有用户创建公共通道配置tgaxBase = wlanTGaxChannel;tgaxBase。DelayProfile =“模型”%延迟配置文件tgaxBase。numtransmitantenna = numTx;%发射天线个数tgaxBase。numreceiveantenna = 2;每个用户有两个接收天线tgaxBase。TransmitReceiveDistance = 10;%非视线距离tgaxBase。ChannelBandwidth = cfgmmimo .ChannelBandwidth;tgaxBase。SampleRate = wlanSampleRate(cfgMUMIMO);为通道设置固定的种子tgaxBase。RandomStream =“mt19937ar with seed”;tgaxBase。种子= 5;

接下来为每个用户创建一个通道。每个用户的通道是tgaxBase,但具有独特UserIndex属性,并存储在单元格数组中tgax.的UserIndex属性设置为为每个用户提供唯一的通道。所得到的通道用于模拟,如下所示。

单元格数组存储通道对象,每个用户一个numUsers = nummel (cfgMixed.User);%本例中模拟的用户数tgax = cell(1,numUsers);生成每个用户的通道userIdx = 1:numUsers tgax{userIdx} =克隆(tgaxBase);tgax {userIdx}。UserIndex= userIdx;设置唯一用户索引结束

波束形成的反馈

OFDMA和MU-MIMO的发射波束形成都依赖于波束形成器上发射机和接收机之间的信道状态。每个STA通过信道测深提供每个子载波信道状态的反馈。AP发送一个空数据包(NDP),每个STA使用这个数据包来确定信道状态。信道状态然后被反馈给AP。在802.11ac™中使用相同的过程802.11ac传输波束形成而且802.11ac多用户MIMO预编码例,但是使用HE单用户NDP报文代替VHT报文。在这个例子中,反馈被认为是完美的;通道测深没有噪声,反馈是未压缩的。的heUserBeamformingFeedbackhelper函数检测NDP并使用信道估计来确定信道状态信息。然后采用奇异值分解(SVD)方法计算波束形成反馈。

用正确数量的时空流创建一个NDP足够的LTF符号cfgNDP = wlanHESUConfig(“APEPLength”,0,“GuardInterval”, 0.8);NDP中无数据cfgNDP。ChannelBandwidth = tgaxBase.ChannelBandwidth;cfgNDP。numtransmitantenna = cfgmmimo . numtransmitantenna;cfgNDP。NumSpaceTimeStreams = cfgmmimo . numtransmitantenna;生成NDP报文- PSDU为空,无数据txNDP = wlanWaveformGenerator([],cfgNDP);%对于每个用户STA,将NDP报文通过通道,并计算用SVD对反馈通道状态矩阵进行奇异值分解。stfeedback = cell(1,numUsers);userIdx = 1:数字(tgax)%在用户STA接收的波形与50个样本填充。没有噪音。rx = tgax{userIdx}([txNDP;0(50、大小(txNDP 2))));为用户获得全波段波束形成反馈。stfeedback {userIdx} = heUserBeamformingFeedback(rx,cfgNDP);结束

仿真参数

本例模拟了不同的路径损耗。相同的路径损耗和噪声下限适用于所有用户。对于每个模拟的路径损耗,通道中传递10个包。数据包之间的间隔为20微秒。

cfgSim = struct;cfgSim。NumPackets = 10;每个路径丢失要模拟的包数cfgSim。路径损耗= (96:3:105);%要模拟的路径损耗,单位为dBcfgSim。透射功率= 30;% AP发射功率,单位为dBmcfgSim。噪声地板= -89.9;% STA噪声底在dBmcfgSim。IdleTime = 20;% us中数据包之间的空闲时间

OFDMA仿真

该场景首先用OFDMA配置和发射波束形成进行模拟。

每个RU的转向矩阵是使用来自STAs的反馈来计算的。的heMUCalculateSteeringMatrixhelper函数在给定CSI反馈的情况下计算RU的波束形成矩阵。

%对于每个RU,计算转向矩阵应用ruIdx = 1: number (cfgOFDMA.RU)计算转向矩阵,应用到RU给定的反馈steeringMatrix = heMUCalculateSteeringMatrix(stfeedback,cfgOFDMA,cfgNDP,ruIdx);将转向矩阵应用到每个俄服cfgOFDMA.RU {ruIdx}。SpatialMapping =“自定义”;cfgOFDMA.RU {ruIdx}。spatialmapingmatrix = steeringMatrix;结束

heMUSimulateScenarioHelper函数执行模拟。802.11ax的pre-HE导语向后兼容802.11ac,因此在本例中,VHT波形的前端同步组件用于在每个STA处同步HE波形。对于模拟的每个数据包和路径丢失,会发生以下处理步骤:

  1. PSDU被创建和编码以创建单个数据包波形。

  2. 波形通过不断演进的TGax信道模型传递,AWGN被添加到接收的波形中。在包之间维护通道状态。

  3. 检测到报文。

  4. 对粗载波频偏进行了估计和校正。

  5. 建立了良好的定时同步。

  6. 估计并校正了较细的载波频偏。

  7. HE-LTF是从同步接收的波形中提取的。对HE-LTF进行OFDM解调,并进行信道估计。

  8. HE数据字段从同步接收波形中提取,OFDM解调。

  9. 执行通用导频相位跟踪以跟踪任何剩余载波频率偏移。

  10. 相位校正后的OFDM符号用信道估计进行均衡。

  11. 使用解调数据场导频和导频子载波上的单流信道估计进行噪声估计。

  12. 对均衡后的符号进行解调和解码以恢复PSDU。

  13. 将恢复的PSDU与传输的PSDU进行比较,以确定数据包是否已成功恢复。

模拟运行OFDMA配置。

disp (“模拟OFDMA…”);throughputOFDMA = heMUSimulateScenario(cfgOFDMA,tgax,cfgSim);
模拟OFDMA……路径损耗96.0 dB, AP吞吐量66.1 Mbps路径损耗99.0 dB, AP吞吐量66.1 Mbps路径损耗102.0 dB, AP吞吐量49.6 Mbps路径损耗105.0 dB, AP吞吐量16.5 Mbps

MU-MIMO仿真

现在使用MU-MIMO配置模拟该场景。的heMUCalculateSteeringMatrixhelper函数在给定CSI反馈的MU-MIMO分配中为所有用户计算RU的波束形成矩阵。在辅助函数中采用零强制解计算转向矩阵。

计算转向矩阵,应用到RU给定的反馈ruIdx = 1;%唯一RU的索引steeringMatrix = heMUCalculateSteeringMatrix(stfeedback,cfgMUMIMO,cfgNDP,ruIdx);应用转向矩阵到俄服cfgMUMIMO.RU{1}。SpatialMapping =“自定义”;cfgMUMIMO.RU{1}。spatialmapingmatrix = steeringMatrix;

运行MU-MIMO配置仿真。

disp (“模拟MU-MIMO…”);throughputMUMIMO = heMUSimulateScenario(cfgMUMIMO,tgax,cfgSim);
模拟MU-MIMO……路径损耗96.0 dB, AP吞吐量110.5 Mbps路径损耗99.0 dB, AP吞吐量110.5 Mbps路径损耗102.0 dB, AP吞吐量71.8 Mbps路径损耗105.0 dB, AP吞吐量0.0 Mbps

MU-MIMO和OFDMA联合仿真

最后,使用MU-MIMO和OFDMA组合配置对该场景进行了仿真。

每个RU的转向矩阵是使用来自STAs的反馈计算的,包括MU-MIMO RU。的heMUCalculateSteeringMatrixhelper函数在给定CSI反馈的情况下计算RU的波束形成矩阵。

%为每个RU计算转向矩阵应用ruIdx = 1: number (cfgMixed.RU)计算转向矩阵,应用到RU给定的反馈steeringMatrix = heMUCalculateSteeringMatrix(stfeedback,cfgMixed,cfgNDP,ruIdx);将转向矩阵应用到每个俄服cfgMixed.RU {ruIdx}。SpatialMapping =“自定义”;cfgMixed.RU {ruIdx}。spatialmapingmatrix = steeringMatrix;结束

运行MU-MIMO和OFDMA组合配置的模拟。

disp (“模拟混合MU-MIMO和OFDMA…”);throughputMixed = heMUSimulateScenario(cfgMixed,tgax,cfgSim);
模拟混合MU-MIMO和OFDMA…路径损耗96.0 dB, AP吞吐量66.1 Mbps路径损耗99.0 dB, AP吞吐量66.1 Mbps路径损耗102.0 dB, AP吞吐量66.1 Mbps路径损耗105.0 dB, AP吞吐量47.9 Mbps

阴谋的结果

绘制出每种传输模式的原始AP吞吐量。结果表明,在高信噪比(低路径损耗)下,MU-MIMO配置提供的吞吐量超过OFDMA配置。MU-MIMO配置的数据包持续时间大约是提供吞吐量增益的OFDMA配置的一半。随着信噪比的降低,噪声占主导地位,OFDMA传输波束形成变得更加有效。MU-MIMO和OFDMA组合配置的性能趋势与OFDMA配置相似,报文持续时间相同。由于RU的大小和时空流的数量不同,性能也不同。

所有sta的吞吐量总和和所有配置的图图;情节(cfgSim.Pathloss总和(throughputOFDMA, 2),“- x”);持有;情节(cfgSim.Pathloss总和(throughputMUMIMO, 2),“o”);情节(cfgSim.Pathloss总和(throughputMixed, 2),“s”);网格;包含(“Pathloss (dB)”);ylabel (吞吐量(Mbps)的);传奇(“OFDMA”“MU-MIMO”“mu-mimo & ofdma”);标题(“AP原始吞吐量”);

附录

本例使用这些helper函数。

选定的参考书目

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