主要内容

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

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

介绍

该示例模拟了一个接入点(AP)使用IEEE P802.11ax™/D4.1中规定的高效(HE)多用户(MU)格式包同时向四个站(sta)传输的场景[1]。

可以为OFDMA传输,MU-MIMO传输或两者的组合配置HE多用户格式。这种灵活性允许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解调并解码用于它的数据。具有AWGN的演变的TGAX室内MIMO通道在AP和每个STA之间建模。提供原始的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被分配给所有四个用户。

展示(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定义四个52色调rus,每个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;%sta#2(ru#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使用两个用户和两个52色调RU定义106色调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;%sta#2(ru#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.transmitreceivedistance = 10;%非瞄准距离TGAXBASE.CHANNELBANDWIDTH = CFGMUMIMO.CHANNELBANDWIDTH;TGAXBASE.SAMPLEDE = WLANSAMPLEDE(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;%设置唯一用户索引结束

波束形成反馈

多种多数和MU-MIMO的传输波束成形依赖于在波束形成器处的发射机和接收器之间的信道状态的知识。每个STA通过信道探测提供每个子载波通道状态的反馈。AP发送空数据包(NDP),每个STA使用该分组来确定信道状态。然后将信道状态送回AP。相同的过程用于802.11ac™802.11ac传输波束形成802.11AC多用户MIMO预编码示例,但使用HE单用户NDP数据包而不是VHT数据包。在这个例子中,反馈被认为是完美的;频道响声没有噪声,反馈未压缩。的heUserBeamformingFeedback辅助功能检测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得到反馈信道状态矩阵。Stafedback = Cell(1,Numusers);useridx = 1:numel(tgax)%填充50个样品时用户STA接收到的波形。没有噪音。rx = tgax {useridx}([txndp; zeros(50,尺寸(txndp,2))]);%为用户获得全频带波束形成反馈staFeedback {userIdx} = heUserBeamformingFeedback (rx cfgNDP);结束

仿真参数

在此示例中模拟了不同的路径损耗。对所有用户应用相同的路径损耗和噪声底板。对于模拟的每个路径损耗,通过通道传递10个分组。数据包分隔20微秒。

cfgsim = struct;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);%将转向矩阵应用于每个rucfgOFDMA.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吞吐量66.1 MBPS Pathloss 99.0 DB,AP吞吐量66.1 MBPS Pathloss 102.0 DB,AP吞吐量49.6 MBPS Pathloss 105.0 DB,AP吞吐量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 ...');贯穿vimumo = hemusimulatescenario(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);%将转向矩阵应用于每个rucfgmixed.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和所有配置的百分比吞吐量数字;plot(cfgsim.pathloss,sum(吞吐量,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的增强。