802.11ax下行OFDMA与多用户MIMO吞吐量仿真

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

介绍

本例模拟了接入点(AP)使用IEEE P802.11ax™/D4.1中指定的高效多用户(MU)格式数据包同时向四个站点(STAs)传输的场景[1].

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

比较了多用户下行场景下的三种传输模式:

  1. 每个用户分配一个单独的资源单元(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吞吐量被提供为比较传输模式的度量,并通过计算成功传输到所有STAs的包的数量来计算。对不同的路径损耗进行了重复仿真。在这个例子中,所有的传输都是波束形成的。因此,在模拟数据传输之前,先对AP与各站之间的信道进行完美条件下的试探,以获取信道状态信息。

传输配置

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

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

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

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

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

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

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

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

showAllocation (cfgMUMIMO);

现在配置了每个用户的传输参数。

numTx = 6;%发射天线数guardInterval = 0.8;%保护间隔(微秒)为所有用户配置公共参数cfgMUMIMO。NumTransmitAntennas = 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色调的RUs,每个服务于一个用户。

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

分配图显示了四个RUs,每个RUs有一个用户。当将这个分配图与muo - mimo全波段分配图进行比较时,可以明显看出,使用的子载波总数(4x52 = 208子载波)小于muo - mimo分配(242子载波)。子载波的数量越少,每个OFDMA用户之间就可以进行保护。

showAllocation (cfgOFDMA);

现在配置了每个用户的传输参数。

为所有用户配置公共参数cfgOFDMA。NumTransmitAntennas = numTx;cfgOFDMA。GuardInterval = GuardInterval;%配置每个用户参数% STA #1(如#1)cfgOFDMA.User {1}。NumSpaceTimeStreams = 2;cfgOFDMA.User {1}。MCS = 4;cfgOFDMA.User {1}。APEPLength = 1000;% STA #2(如2)cfgOFDMA.User {2}。NumSpaceTimeStreams = 2;cfgOFDMA.User {2}。MCS = 4;cfgOFDMA.User {2}。APEPLength = 1000;% STA #3(如3)cfgOFDMA.User {3}。NumSpaceTimeStreams = 2;cfgOFDMA.User {3}。MCS = 4;cfgOFDMA.User {3}。APEPLength = 1000;%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。

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

分配图显示了三个RUs,一个有两个用户(MU-MIMO),另一个每个用户有一个用户(OFDMA)。

显示分配(cfgMixed);

现在配置了每个用户的传输参数。

为所有用户配置公共参数cfgMixed。NumTransmitAntennas = numTx;cfgMixed。GuardInterval = GuardInterval;%配置每个用户参数% RU #1有两个用户(MU-MIMO),总共有两个STS(每个用户一个)% STA #1(如#1)cfgMixed.User {1}。NumSpaceTimeStreams = 1;cfgMixed.User {1}。MCS = 4;cfgMixed.User {1}。APEPLength = 1000;% STA #2(如1)cfgMixed.User{2}.NumSpaceTimeStreams=1;cfgMixed.User{2}.MCS=4;cfgMixed.User{2}.APEPLength=1000;%其余两个用户是OFDMA% STA #3(如2)cfgMixed.User {3}。NumSpaceTimeStreams = 2;cfgMixed.User {3}。MCS = 4;cfgMixed.User {3}。APEPLength = 1000;%第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 ='D型';%延迟概要tgaxBase。NumTransmitAntennas = numTx;%发射天线数tgaxBase。NumReceiveAntennas = 2;%每个用户有两个接收天线tgaxBase.TransmitReceiveDistance=10;%非视线距离tgaxBase.ChannelBandwidth=cfgMUMIMO.ChannelBandwidth;tgaxBase.SampleRate=wlanSampleRate(cfgMUMIMO);设置通道的固定种子tgaxBase。RandomStream =“与种子mt19937ar”;tgaxBase。种子= 5;

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

单元格数组存储通道对象,每个用户一个numUsers =元素个数(cfgMixed.User);本例中模拟的用户数量tgax =细胞(1、numUsers);%为每个用户生成频道userIdx=1:numerstgax{userIdx}=clone(tgaxBase);tgax{userIdx}.UserIndex=userIdx;设置唯一的用户索引结束

波束形成反馈

OFDMA和MU-MIMO的传输波束形成都依赖于发射机和接收机在波束形成器上的信道状态信息。每个STA通过信道探测提供每副载波信道状态的反馈。一个空数据包(NDP)由AP传输,每个STA使用这个数据包来确定信道状态。通道状态然后反馈回AP802.11交流传输波束形成802.11ac多用户MIMO预编码例如,但是使用了一个单用户NDP包而不是VHT包。在这个例子中,反馈被认为是完美的;信道探测无噪声,反馈无压缩。辅助函数heUserBeamformingFeedback检测NDP并使用信道估计来确定信道状态信息。然后利用奇异值分解(SVD)来计算波束形成反馈。

创建一个NDP数据包,该数据包具有正确的空时流数目生成足够的LTF符号cfgNDP=wlanHESUConfig(“APEPLength”,0,“守卫者”,0.8);NDP中没有数据cfgNDP.ChannelBandwidth=tgaxBase.ChannelBandwidth;cfgNDP.numtransmitantenas=cfgMUMIMO.numtransmitantenas;cfgNDP.NumSpaceTimeStreams=cfgMUMIMO.numtransmitantenas;生成NDP包-用一个空的PSDU作为没有数据txNDP=wlanwaveormgenerator([],cfgNDP);对于每个用户STA,通过通道传递NDP数据包并计算% SVD反馈通道状态矩阵。staFeedback =细胞(1、numUsers);用户IDX=1:numel(tgax)%在用户STA处接收到带有50个样本填充的波形。没有噪音。rx=tgax{userIdx}([txNDP;零(50,大小(txNDP,2)));%获得用户的全频带波束形成反馈staFeedback {userIdx} = heUserBeamformingFeedback (rx cfgNDP);结束

仿真参数

在这个例子中模拟了不同的路径损耗。所有用户均采用相同的路径损耗和噪声地板。对于每个模拟的路径丢失,10个数据包通过信道。数据包间隔20微秒。

cfgSim =结构;cfgSim。NumPackets = 10;模拟每个路径丢失的包的数目cfgSim。Pathloss = (96:3:105);在dB中模拟的路径损耗%cfgSim。TransmitPower = 30;%AP发射功率(单位:dBm)cfgSim。NoiseFloor = -89.9;%噪声地板dBmcfgSim.IdleTime=20;%美国数据包之间的空闲时间

模拟与OFDMA

该场景首先使用OFDMA配置和传输波束形成进行模拟。

每个RU的转向矩阵是通过来自STAs的反馈计算出来的。辅助函数heMUCalculateSteeringMatrix计算给定CSI反馈的RU的波束形成矩阵。

%对于每个RU,计算要应用的转向矩阵ruIdx=1:numel(cfgOFDMA.RU)%计算转向矩阵应用于RU给定的反馈steeringMatrix = heMUCalculateSteeringMatrix (staFeedback cfgOFDMA、cfgNDP ruIdx);%应用到每个RU的转向矩阵cfgOFDMA.RU {ruIdx}。SpatialMapping =“自定义”;cfgOFDMA.RU {ruIdx}。SpatialMappingMatrix = steeringMatrix;结束

辅助函数铁杉执行仿真。802.11ax的前置前导与802.11ac向后兼容,因此在本例中,VHT波形的前端同步组件用于在每个STA同步HE波形。对每个模拟的包和路径丢失进行以下处理步骤:

  1. 创建并编码PSDU以创建单个分组波形。

  2. 波形通过一个演进的TGax通道模型传递,AWGN被添加到接收的波形中。信道状态在数据包之间保持。

  3. 检测到数据包。

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

  5. 建立了精密定时同步。

  6. 对小载波频偏进行了估计和校正。

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

  8. 从同步接收的波形中提取数据场并进行OFDM解调。

  9. 共导频相位跟踪用于跟踪任何剩余载波频率偏移。

  10. 相位校正的OFDM符号与信道估计相平衡。

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

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

  13. 将恢复的PSDU与发送的PSDU进行比较,以确定包是否已成功恢复。

模拟运行OFDMA配置。

显示(“模拟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配置来模拟该场景。helper函数heMUCalculateSteeringMatrix计算给定MU-MIMO分配中所有用户的CSI反馈的RU的波束形成矩阵。使用迫零解计算辅助函数内的转向矩阵。

%计算转向矩阵应用于RU给定的反馈ruIdx = 1;唯一的RU的%索引steeringMatrix = heMUCalculateSteeringMatrix (staFeedback cfgMUMIMO、cfgNDP ruIdx);%应用转向矩阵的俄罗斯cfgMUMIMO.RU{1}.空间映射=“自定义”;cfgMUMIMO.RU {1}。SpatialMappingMatrix = steeringMatrix;

运行MU-MIMO配置的模拟。

显示('模拟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

多输入多输出和OFDMA相结合的仿真

最后,结合MU-MIMO和OFDMA配置对场景进行了模拟。

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

为每个RU计算应用的转向矩阵ruIdx=1:numel(cfgMixed.RU)%计算转向矩阵应用于RU给定的反馈steeringMatrix=HemucalculateeringMatrix(状态反馈,cfgMixed,cfgNDP,ruIdx);%应用到每个RU的转向矩阵cfgMixed.RU {ruIdx}。SpatialMapping =“自定义”;cfgMixed.RU {ruIdx}。SpatialMappingMatrix = steeringMatrix;结束

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

显示(“模拟混合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吞吐量。结果表明,对于在高snr(低路径损耗)下的信道实现,MU-MIMO配置提供的吞吐量超过OFDMA配置。MU-MIMO配置的分组持续时间大约是提供吞吐量增益的OFDMA配置的一半。随着信噪比的降低,噪声占主导地位,采用OFDMA进行发射波束形成变得更加有效。当分组持续时间相同时,组合的MU-MIMO和OFDMA配置的性能遵循与OFDMA配置相似的趋势。由于RU的大小和时空流的数量不同,性能也不同。

%所有STA的总吞吐量和所有配置的绘图图;绘图(cfgSim.Pathloss,sum(throughputOFDMA,2),“- x”);持有;绘图(cfgSim.Pathloss,sum(通过putmumimo,2),“o”);情节(cfgSim.Pathloss总和(throughputMixed, 2),“s”);网格;包含(“Pathloss (dB)”);ylabel (吞吐量(Mbps)的);图例(“OFDMA”,“MU-MIMO”,“MU-MIMO & OFDMA”);职务('原始AP吞吐量');

附录

这个例子使用了以下辅助函数:

选定的参考书目

  1. IEEE P802.11ax™/ D4.1信息技术标准草案——电信和信息交换系统之间-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层(体育)规范-第六修正案:高效WLAN的增强。