主要内容

802.11AX下行链路与多用户和多用户MIMO吞吐量仿真

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

介绍

该示例使用IEEE P802.11AX™/ D4.1中规定的高效率(HE)多用户(MU)格式数据包来模拟发送到四站(STA)的接入点(AP)的场景。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色调rus,每个都有一个用户。MU-MIMO用户每个都具有一个时空流,OFDMA用户每个用户都有两个时空流。

20 MHz通道带宽用于所有传输。所有配置中的所有用户都相同,例如Apeplength和MCS的其他传输参数相同。

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

%mu-mimo配置 -  422-tone 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色调ru上cfgofdma = wlanhemuconfig(112);

分配绘图显示四个RU,每个rus都有一个用户。当将该分配曲线与全频带MU-MIMO图进行比较时,显而易见的是,所用的子载波总数(4×52 = 208个子载波)小于MU-MIMO分配(242个子载波)。较少的子载波允许每个OFDMA用户之间的防护。

展示(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;

最后,定义了混合的MU-MIMO和OFDMA配置。分配指数25.使用两个用户和两个52色调RU定义106色调RU,每个用户都有一个用户。

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

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

展示(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 =.'Model-D';%延迟配置文件tgaxbase.numtransmitantennas = numtx;百分比的发射天线数量tgaxbase.numreceiveannas = 2;%每个用户有两个接收天线tgaxbase.transmitreceivedistance = 10;%非瞄准距离TGAXBASE.CHANNELBANDWIDTH = CFGMUMIMO.CHANNELBANDWIDTH;TGAXBASE.SAMPLEDE = WLANSAMPLEDE(CFGMUMIMO);%设置了频道的固定种子tgaxbase.randomstream =.'MT19937AR与种子';tgaxbase.seed = 5;

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

%单元阵列存储通道对象,每个用户一个numusers = numel(cfgmixed.user);在此示例中模拟的用户数量Tgax = Cell(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)%在用户STA处接收波形,具有50个样本填充。无噪音。rx = tgax {useridx}([txndp; zeros(50,尺寸(txndp,2))]);%获得用户的全带波束成形反馈stafedback {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;DBM%STA噪音地板cfgsim.idletime = 20;在我们的数据包之间的%空闲时间

用OFDMA模拟

首先用OFDMA配置模拟方案并传输波束成形。

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

每个RU的%,计算转向矩阵以申请为了ruidx = 1:numel(cfgofdma.ru)%计算转向矩阵授予RU给出反馈steeringmatrix = memucalculatesteiringmatrix(Stafedback,Cfgofdma,cfgndp,ruidx);%将转向矩阵应用于每个rucfgofdma.ru {ruidx} .spatialmapping ='风俗';cfgofdma.ru {ruidx} .spatialmappingmatrix = steeringmatrix;结尾

Hemusimulatecenario.辅助功能执行模拟。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 ... 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配置模拟方案。这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 ...');贯穿vimumo = hemusimulatescenario(cfgmumimo,tgax,cfgsim);
模拟MU-MIMO ... PATHLOSS 96.0 DB,AP吞吐量110.5 MBPS Pathloss 99.0 DB,AP吞吐量110.5 MBPS Pathloss 102.0 DB,AP吞吐量71.8 MBPS Pathloss 105.0 DB,AP吞吐量0.0 Mbps

用MU-MIMO和OFDMA的模拟

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

每个RU的转向矩阵使用来自STA的反馈来计算,包括MU-MIMO RU。这Hemucalculateseiringmatrix.辅助函数根据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 ...');横向= hemusimulatecenario(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吞吐量。结果显示在高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,sum(吞噬,2),'-s');网格;Xlabel('pathloss(db)');ylabel('吞吐量(Mbps)');传奇('OFDMA''mu-mimo''mu-mimo&ofdma');标题('原始AP吞吐量');

附录

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

选定的书目

  1. IEEE P802.11AX™/ D4.1信息技术标准草案 - 系统之间的电信和信息交流 - 本地和大都市区域网络 - 特定要求 - 第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格 -修正案6:高效WLAN的增强。