本示例展示了通过TGax室内衰落信道的IEEE®802.11ax™多用户下行传输的发送和接收处理。模拟了三种传输模式:OFDMA, MU-MIMO,以及OFDMA和MU-MIMO的组合。
该示例模拟了接入点(AP)使用IEEE P802.11ax中指定的高效(HE)多用户(MU)格式数据包同时向四个站点(STA)传输数据的场景™/D4.1[1].
多用户格式可以配置为OFDMA传输、MU-MIMO传输或两者的组合。这种灵活性允许HE-MU分组在整个频带上发送给单个用户,在频带的不同部分上发送给多个用户(OFDMA),或者在频带的相同部分上发送给多个用户(MU-MIMO)。
对于多用户下行链路场景,比较了三种传输模式:
OFDMA-四个用户中的每一个都被分配一个单独的资源单元(RU),并且传输是波束形成的。
MU-MIMO -所有四个用户共享全频带。
混合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传输:
cfgMUMIMO
是一个MU-MIMO配置,它由一个带有4个用户的242音RU组成。每个用户都有一个时空流。
cfgOFDMA
是一个OFDMA配置,由4个52音RUs组成,每个RUs有一个用户。每个用户都有两个时空流。
cfgMixed
是一个混合OFDMA和MU-MIMO配置,由两个用户共享一个106音RU和两个52音RU组成,每个用户一个用户。MU-MIMO用户每个有一个时空流,OFDMA用户每个有两个时空流。
20 MHz信道带宽用于所有传输。其他传输参数(如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;%保护间隔,单位为微秒%为所有用户配置公共参数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音RU,每个RU为单个用户服务。
% OFDMA配置- 4个用户,每个52音RUcfgOFDMA=wlanHEMUConfig(112);
分配图显示了四个RU,每个RU都有一个用户。当将此分配图与全频带MU-MIMO图进行比较时,显然使用的子载波总数(4x52=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;% st# 3 (run# 3)cfgOFDMA.User{3}。NumSpaceTimeStreams = 2;cfgOFDMA.User{3}。MCS = 4;cfgOFDMA.User{3}。APEPLength = 1000;% sta #4 (#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)。
showAllocation (cfgMixed);
现在已配置每个用户的变速箱参数。
%为所有用户配置公共参数cfgMixed。NumTransmitAntennas = 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% st# 3 (r# 2)cfgMixed.User{3}.NumSpaceTimeStreams=2;cfgMixed.User{3}.MCS=4;cfgMixed.User{3}.APEPLength=1000;% st# 4 (run# 3)cfgmix.User{4}.NumSpaceTimeStreams=2;cfgmix.User{4}.MCS=4;cfgmix.User{4}.APEPLength=1000;
本例中使用TGax室内信道模型。单个信道用于模拟AP和每个用户之间的链路。TGax信道对象,tgaxase
创建时具有与所有用户相关的属性。在本例中,所有用户都可以使用延迟配置文件(模型- d)和接收天线数量。当发射机与接收机之间的距离大于或等于10米时,d模型被认为是视线非线性。这将在后面进一步描述wlanTGaxChannel
. 通道使用固定种子以允许重复性。
%为所有用户创建公用通道配置tgaxBase = wlanTGaxChannel;tgaxBase。DelayProfile =“模型”;%延迟曲线tgaxBase.NumTransmitAntennas=numTx;%发送天线数tgaxBase.numreceiveantens=2;%每个用户有两个接收天线tgaxBase。TransmitReceiveDistance = 10;%非视距tgaxBase。ChannelBandwidth = cfgMUMIMO.ChannelBandwidth;tgaxBase。SampleRate = wlanSampleRate (cfgMUMIMO);%为频道设置固定种子tgaxBase.RandomStream=“带种子的mt19937ar”tgaxBase.Seed=5;
接下来为每个用户创建一个频道。每个用户的频道是tgaxase
,但有一个独特的用户索引
属性,并存储在单元格数组中tgax
.的用户索引
属性为每个用户提供一个唯一的通道。仿真中使用的合成通道如下所示。
%单元格数组存储通道对象,每个用户一个numUsers=numel(cfgMixed.User);%本例中模拟的用户数tgax=细胞(1,微乳);%生成每个用户通道为userIdx = 1:numUsers tgax{userIdx} =克隆(tgaxBase);tgax {userIdx}。用户索引= userIdx;%设置唯一的用户索引终止
OFDMA和MU-MIMO的发射波束形成都依赖于波束形成器处发射机和接收机之间的信道状态的知识。每个STA通过信道探测提供每个子载波信道状态的反馈。AP发送空数据分组(NDP),并且每个STA使用该分组来确定信道状态。然后将信道状态反馈给AP。802.11ac也使用相同的过程™ 在802.11ac发射波束形成和802.11ac多用户MIMO预编码例,使用HE单用户NDP报文代替VHT报文。在这个例子中,反馈被认为是完美的;没有噪声存在信道探测和反馈是未压缩的。的信息反馈
helper函数检测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))));%为用户获得全频带波束形成反馈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;%以dBm为单位的STA噪声地板cfgSim。IdleTime = 20;%在我们的数据包之间的空闲时间
该场景首先通过OFDMA配置和发射波束形成进行模拟。
使用来自STA的反馈计算每个RU的转向矩阵heMUCalculateSteeringMatrix
helper函数计算给定CSI反馈的RU的波束形成矩阵。
%对于每个RU,计算转向矩阵应用为ruIdx = 1:元素个数(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波形。对于模拟的每个包和路径丢失,会发生以下处理步骤:
一个PSDU被创建并被编码以创建单个数据包波形。
波形通过演变的TGax信道模型,AWGN被添加到接收波形中。通道状态在数据包之间保持。
检测到报文。
估计并校正粗略载波频率偏移。
建立了精细定时同步。
估计并校正精细载波频率偏移。
从同步接收波形中提取HE-LTF。对HE-LTF进行OFDM解调并进行信道估计。
从同步接收波形中提取HE数据场,并对其进行OFDM解调。
执行公共导频相位跟踪以跟踪任何剩余载波频率偏移。
相位校正的OFDM符号与信道估计进行均衡。
噪声估计使用解调数据场导频和导频子载波的单流信道估计。
均衡符号被解调和解码以恢复PSDU。
将恢复的PSDU与发送的PSDU进行比较,以确定数据包是否已成功恢复。
模拟运行OFDMA配置。
disp (“模拟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配置模拟该场景。的heMUCalculateSteeringMatrix
helper函数计算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…”);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
最后,结合MU-MIMO和OFDMA配置对该场景进行了仿真。
使用来自sta(包括MU-MIMO RU)的反馈来计算每个RU的转向矩阵。这个heMUCalculateSteeringMatrix
helper函数计算给定CSI反馈的RU的波束形成矩阵。
%对于每个RU,计算要应用的转向矩阵为ruIdx = 1:元素个数(cfgMixed.RU)%计算转向矩阵,以适用于RU给定的反馈steeringMatrix = heMUCalculateSteeringMatrix (staFeedback 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吞吐量。结果表明,在高信噪比(低路径损耗)的信道实现中,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总和(throughputMixed, 2),“-s”);网格在…上;xlabel(“路径损耗(dB)”); 伊拉贝尔(“吞吐量(Mbps)”);传奇(“OFDMA”,“MU-MIMO”,“MU-MIMO和OFDMA”);标题(“原始美联社吞吐量”);
这个例子使用了这些辅助函数。
IEEE P802.11ax™/D4.1信息技术标准草案-系统间电信和信息交换-局域网和城域网-特定要求-第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规范-修改件6:高效WLAN增强。