主要内容

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是一个由四个52音rus组成的OFDMA配置,每个都有一个用户。每个用户都有两个时空流。

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

所有传输都使用20mhz的信道带宽。其他传输参数(如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;microSeconds的%保护间隔%配置所有用户的公共参数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);

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

showAllocation (cfgOFDMA);

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

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

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

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

展示(CFGMIXED);

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

%配置所有用户的公共参数cfgMixed。NumTransmitAntennas = numTx;cfgMixed。GuardInterval = GuardInterval;%配置每个用户参数% RU #1有两个用户(MU-MIMO)和2个STS(每个用户1个)% st# 1 (r# 1)cfgMixed.User{1}。NumSpaceTimeStreams = 1;cfgMixed.User{1}。MCS = 4;cfgMixed.User{1}。APEPLength = 1000;% st# 2 (r# 1)cfgMixed.User{2}。NumSpaceTimeStreams = 1;cfgMixed.User{2}。MCS = 4;cfgMixed.User{2}。APEPLength = 1000;%其余两个用户是OFDMA% st# 3 (r# 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创建时具有与所有用户相关的属性。在本例中,所有用户都可以使用延迟配置文件(模型- d)和接收天线数量。当发射机与接收机之间的距离大于或等于10米时,d模型被认为是视线非线性。这将在后面进一步描述wlanTGaxChannel.通道使用固定的种子,以允许重复性。

为所有用户创建通用通道配置tgaxBase = wlanTGaxChannel;tgaxBase。DelayProfile ='model-d'%延迟概要tgaxBase。NumTransmitAntennas = numTx;百分比的发射天线tgaxBase。NumReceiveAntennas = 2;%每个用户有两个接收天线TGAXBASE.TRANSMITRECEIDASTANCE = 10;%非视线距离TGAXBASE.CHANNELBANDWIDTH = CFGMUMIMO.CHANNELBANDWIDTH;tgaxbase.samplerve = wlansamplerate(cfgmumimo);为通道设置一个固定的种子tgaxBase。RandomStream =“与种子mt19937ar”;tgaxBase。种子= 5;

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

%单元格数组存储通道对象,每个用户一个numUsers =元素个数(cfgMixed.User);%本例中模拟的用户数tgax =细胞(1、numUsers);%生成每个用户通道UserIDX = 1:NUMUSERS TGAX {USERIDX} =克隆(TGAXBASE);tgax {useridx} .userIndex = UserIDX;%设置唯一的用户索引结束

波束形成反馈

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

%使用要生成的时空流的正确数量创建一个NDP%足够的LTF符号cfgndp = wlanhauconfig(“APEPLength”,0,'guardinterval', 0.8);% NDP中没有数据cfgndp.channelbandwidth = tgaxbase.channelbandwidth;cfgndp.numtransmitantennas = cfgmumimo.numtransmitantannas;cfgndp.numspacetimestreams = cfgmumimo.numtransmitantannas;%生成NDP包-一个空的PSDU作为没有数据txndp = wlanwaveformgenerator([],cfgndp);%对于每个用户STA,将NDP报文通过通道并进行计算%通过SVD得到反馈信道状态矩阵。staFeedback =细胞(1、numUsers);useridx = 1:numel(tgax)%填充50个样品时用户STA接收到的波形。没有噪音。rx = tgax {useridx}([txndp; zeros(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;% STA噪音地板在dBmcfgsim.idletime = 20;在我们的数据包之间的%空闲时间

模拟与OFDMA

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

每个RU的转向矩阵是用sta的反馈来计算的。的heMUCalculateSteeringMatrixhelper函数计算给定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;结束

heMUSimulateScenario辅助函数执行模拟。802.11ax的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……Pathloss 96.0 dB, AP throughput 66.1 Mbps Pathloss 99.0 dB, AP throughput 66.1 Mbps Pathloss 102.0 dB, AP throughput 49.6 Mbps Pathloss 105.0 dB, AP throughput 16.5 Mbps

模拟与MU-MIMO

现在,使用MU-MIMO配置模拟方案。的heMUCalculateSteeringMatrixhelper函数计算RU的波束形成矩阵,给定MU-MIMO分配中所有用户的CSI反馈。零强迫解用于计算辅助函数中的转向矩阵。

%计算转向矩阵,以适用于RU给定的反馈ruIdx = 1;% Index of the one and only RUsteeringMatrix = heMUCalculateSteeringMatrix (staFeedback cfgMUMIMO、cfgNDP ruIdx);%应用转向矩阵到RUcfgmumimo.ru {1} .spatialmapping =“自定义”;cfgMUMIMO.RU{1}。SpatialMappingMatrix = steeringMatrix;

运行MU-MIMO配置的模拟。

DISP('模拟mu-mimo ...');横向肿瘤=萱草(CFGMUMIMO,TGAX,CFGSIM);
模拟MU-MIMO……Pathloss 96.0 dB, AP throughput 110.5 Mbps Pathloss 99.0 dB, AP throughput 110.5 Mbps Pathloss 102.0 dB, AP throughput 71.8 Mbps Pathloss 105.0 dB, AP throughput 0.0 Mbps

用MU-MIMO和OFDMA的模拟

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

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

%为每个RU计算转向矩阵应用ruidx = 1:numel(cfgmixed.ru)%计算转向矩阵,以适用于RU给定的反馈steeringmatrix = memucalculatesteiringmatrix(Stafedback,cfgmixed,cfgndp,ruidx);%对每个RU应用转向矩阵cfgMixed.RU {ruIdx}。SpatialMapping =“自定义”;cfgMixed.RU {ruIdx}。SpatialMappingMatrix = steeringMatrix;结束

运行MU-MIMO和OFDMA组合配置的仿真。

DISP(“模拟混合MU-MIMO和OFDMA……”);throughputMixed = heMUSimulateScenario (cfgMixed tgax cfgSim);
模拟混合MU-MIMO和OFDMA…Pathloss 96.0 dB, AP throughput 66.1 Mbps Pathloss 99.0 dB, AP throughput 66.1 Mbps Pathloss 102.0 dB, AP throughput 66.1 Mbps Pathloss 105.0 dB, AP throughput 47.9 Mbps

阴谋的结果

绘制了每个传输模式的原始AP吞吐量。结果显示在高SNR(低路径)处的此频道实现,由MU-MIMO配置提供的吞吐量超过OFDMA配置。MU-MIMO配置的数据包持续时间大约为OFDMA配置的一半,其提供吞吐量增益。随着SNR减少,噪声主导并使用OFDMA传输波束成形变得更有效。由于数据包持续时间是相同的,因此Mu-MIMO和OFDMA配置的性能遵循与OFDMA配置类似的趋势。由于ru尺寸和时空流的数量不同,性能不同。

所有STA和所有配置的百分比吞吐量数字;绘图(CFGSIM.PATPLOSS,SUM(吞吐量DDMA,2),“- x”);持有;绘图(cfgsim.pathloss,sum(吞噬vumimo,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的增强。