主要内容

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

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

介绍

本例模拟了接入点(AP)使用IEEE P802.11ax™/D4.1中规定的高效(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配置,由具有4个用户的单个242色调RU组成。每个用户都有一个时空流。

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

  3. cfgMixed是一个混合的OFDMA和MU-MIMO配置,它由两个用户共享的一个106色调RU,以及两个52色调rus,每个都有一个用户。MU-MIMO用户每个都具有一个时空流,OFDMA用户每个用户都有两个时空流。

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

首先,定义MU-MIMO配置。分配指数195定义单个242色调RU,在MU-MIMO中有四个用户。有关选择分配索引的描述,请参阅802.11ax参数化的波形产生和仿真的例子。

% MU-MIMO配置- 4个用户在一个242音RU上cfgMUMIMO = wlanHEMUConfig (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定义了四个52音RUs,每个RUs为单个用户服务。

%ofdma配置 -  4个用户,每个都在52色调ru上cfgOFDMA = wlanHEMUConfig (112);

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

showAllocation (cfgOFDMA);

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

%配置所有用户的常用参数cfgofdma.numtransmitantennas = 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;

最后,定义了mui - mimo和OFDMA混合配置。分配指数25定义一个带有两个用户的106音RU和两个带有一个用户的52音RU。

%混合OFDMA和MU-MIMO配置cfgmixed = wlanhemuconfig(25);

分配绘图显示三个RU,一个有2个用户(MU-MIMO),以及每个用户的其他用户(OFDMA)。

showAllocation (cfgMixed);

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

%配置所有用户的常用参数cfgmixed.numtransmitantannas = 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米时,Model-D被认为是非视线。这进一步描述了wlanTGaxChannel.信道使用固定的种子以允许可重复性。

%创建所有用户共用的通道配置tgaxbase = wlantgaxchannel;tgaxbase.delayprofile =“模型”%延迟概要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:numUsers tgax{userIdx} = clone(tgaxBase);tgax {userIdx}。UserIndex= userIdx;%设置唯一的用户索引结尾

波束形成的反馈

OFDMA和MU-MIMO的发射波束形成都依赖于波束形成器中发射机和接收机之间的信道状态。每副载波信道状态的反馈由信道探测的每个STA提供。一个空数据包(NDP)由AP发送,每个STA使用这个包来确定信道的状态。然后将信道状态反馈给AP802.11交流传输波束形成多用户MIMO预编码示例,但使用一个HE单用户NDP包代替VHT包。在这个例子中,反馈被认为是完美的;信道探测没有噪声,反馈是不压缩的。这heUserBeamformingFeedbackhelper函数检测NDP并使用信道估计来确定信道状态信息。然后用奇异值分解(SVD)计算波束形成反馈。

%创建一个带有要生成的正确数量的时空流的NDP%足够的LTF符号cfgNDP = wlanHESUConfig (“APEPLength”0,“GuardInterval”, 0.8);% NDP中没有数据cfgNDP。ChannelBandwidth = tgaxBase.ChannelBandwidth;cfgNDP。NumTransmitAntennas = cfgMUMIMO.NumTransmitAntennas;cfgNDP。NumSpaceTimeStreams = cfgMUMIMO.NumTransmitAntennas;%生成NDP包-与一个空的PSDU没有数据txNDP = wlanWaveformGenerator ([], cfgNDP);%对于每个用户STA,通过通道传递NDP数据包并计算通过SVD%反馈信道状态矩阵。staFeedback =细胞(1、numUsers);为了userIdx = 1:元素个数(tgax)%用户STA接收波形,填充50个样本。没有噪音。rx = tgax {userIdx} ([txNDP;0(50、大小(txNDP 2))));%获得用户的全带波束成形反馈stafedback {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;% STA噪音下限,单位为dBmcfgSim。IdleTime = 20;%数据包之间的空闲时间

模拟与OFDMA

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

每个RU的转向矩阵使用sta的反馈进行计算。这Hemucalculateseiringmatrix.辅助函数根据CSI反馈计算RU的波束成形矩阵。

%为每个RU,计算转向矩阵应用为了ruIdx = 1:元素个数(cfgOFDMA.RU)%计算转向矩阵授予RU给出反馈steeringmatrix = memucalculatesteiringmatrix(Stafedback,Cfgofdma,cfgndp,ruidx);%应用转向矩阵到每个RUcfgofdma.ru {ruidx} .spatialmapping =“自定义”;cfgOFDMA.RU {ruIdx}。SpatialMappingMatrix = steeringMatrix;结尾

heMUSimulateScenario辅助功能执行模拟。802.11AX的预先前导码与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 ...');吞吐量达玛=萱草(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配置模拟该场景。这Hemucalculateseiringmatrix.辅助功能为ru计算了MU-MIMO分配中所有用户的CSI反馈,计算RU的波束形成矩阵。零强制解决方案用于计算辅助功能内的转向矩阵。

%计算转向矩阵授予RU给出反馈ruidx = 1;%索引唯一的rusteeringmatrix = memucalculatesteiringmatrix(Stafedback,cfgmumimo,cfgndp,ruidx);%将转向矩阵应用于rucfgMUMIMO.RU{1}。SpatialMapping =“自定义”;cfgMUMIMO.RU{1}。SpatialMappingMatrix = 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

结合mui - mimo和OFDMA的仿真

最后,利用组合的MU-MIMO和OFDMA配置模拟了场景。

每个RU的转向矩阵使用sta(包括MU-MIMO RU)的反馈进行计算。这Hemucalculateseiringmatrix.辅助函数根据CSI反馈计算RU的波束成形矩阵。

%为每个RU计算转向矩阵应用为了ruIdx = 1:元素个数(cfgMixed.RU)%计算转向矩阵授予RU给出反馈steeringMatrix = heMUCalculateSteeringMatrix (staFeedback cfgMixed、cfgNDP ruIdx);%应用转向矩阵到每个RUcfgMixed.RU {ruIdx}。SpatialMapping =“自定义”;cfgmixed.ru {ruidx} .spatialmappingmatrix = steeringmatrix;结尾

对mui - mimo和OFDMA组合配置进行仿真。

disp (模拟混合MU-MIMO和OFDMA…);throughputMixed = heMUSimulateScenario (cfgMixed tgax cfgSim);
模拟混合MU-MIMO和OFDMA ... PATHLOSS 96.0 DB,AP吞吐量66.1 MBPS PATHLOSS 99.0 DB,AP吞吐量66.1 MBPS PATHLOSS 102.0 DB,AP吞吐量66.1 MBPS PATHLOSS 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,sum(吞噬,2),“s”);网格;包含(“Pathloss (dB)”);ylabel (吞吐量(Mbps)的);传奇(“OFDMA”“MU-MIMO”“MU-MIMO & OFDMA”);标题(“原始美联社吞吐量”);

附录

此示例使用这些辅助功能。

选定的参考书目

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