主要内容

本文中描述802.11 ax包错误率模拟上行基于触发器的格式是可行

这个例子展示了如何衡量一个IEEE®802.11的包错误率ax™效率高(他)上行,trigger-based (TB)格式。

介绍

802.11 ax [1本文中描述]他基于触发器的(他是可行结核病)格式允许OFDMA上行或MU-MIMO传播。一个他完全控制结核病传播一个接入点(AP)。提供了所需的所有参数传输触发帧斯塔斯参与他结核病传播。每个车站(STA)传送一个他同时结核病包,当由美联社如下列图所示。

在这个例子中一个端到端的模拟用于确定他的包错误率结核病链接四个斯塔斯MU-MIMO配置。在每一个信噪比点多个数据包传输没有障碍除了信道和噪声。接收到的数据包解调和为每个STA PSDUs恢复。PSDUs相比那些传播决定数据包的数量错误,因此所有用户的数据包出错率。包检测、定时同步和均衡是由接收方执行的象征。在本例中不执行频率偏移校正。他的处理结核病处理链下图所示。

接收者执行minimum-mean-square-error-based下令连续干扰消除(MMSE-SIC)过程的数据均衡(2]。为了避免误差传播在取消阶段,数据流为所有斯塔斯按降序排序顺序根据信道状态信息和平衡的。这个图表显示了MMSE-SIC均衡的过程。

均衡方法

在本例中,您可以指定均衡方法“患者”或“mmse-sic”。默认的均衡器是“mmse-sic”。

equalizationMethod =“mmse-sic”;

用户配置

在这个例子中分配信息和传输参数多个上行斯塔斯使用一个配置heTBSystemConfig对象。

allocationIndex = 195;% 4上行用户MU-MIMO配置cfgSys = heTBSystemConfig (allocationIndex);

在本文中描述一个基于触发器的传输是可行所有上行用户一些参数是相同的,而一些可以不同。的用户的属性cfgSys包含一个用户单元阵列配置。细胞是一个对象数组的每个元素,可以配置为个人用户的参数设置。在这个例子中,所有用户都具有相同的传输参数。

%这些参数相同MU-MIMO系统中的所有用户cfgSys。HELTFType = 4;% HE-LTF压缩模式cfgSys。GuardInterval = 3.2;%警卫队间隔类型cfgSys。SingleStreamPilots = 1;%的单流飞行员HE-LTF的传播numRx = 8;%接收(美联社)天线的数量%以下个人参数指定为每个用户allocInfo = ruInfo (cfgSys);numUsers = allocInfo.NumUsers;%的上行用户数量userIdx = 1: numUsers cfgSys.User {userIdx}。NumTransmitAntennas = 1;cfgSys.User {userIdx}。NumSpaceTimeStreams = 1;cfgSys.User {userIdx}。SpatialMapping =“直接”;cfgSys.User {userIdx}。MCS = 7;cfgSys.User {userIdx}。APEPLength = 1 e3;cfgSys.User {userIdx}。ChannelCoding =“方法”;结束

本文中描述一个基于触发器的传输是可行的单用户系统配置了一个wlanHETBConfig对象。所有用户的传输配置使用方法生成getUserConfig。创建一个单元阵列的四个他结核病对象来描述四个用户的传输。

cfgTB = getUserConfig (cfgSys);

仿真参数

对于每一个信噪比(dB)信噪比向量生成的数据包数量,通过一个通道和解调来决定数据包出错率。

信噪比= 20:2:24;%的采样率和现场指标他结核病包是一样的%的用户。这里第一个用户的触发配置使用%的采样率和现场指标他PPDU结核病。fs = wlanSampleRate (cfgTB {1});%为所有用户印第安纳州= wlanFieldIndices (cfgTB {1});%为所有用户

通道配置

在这个例子中,TGax仿真结果室内信道模型是使用延迟概要b型。b型被认为是仿真结果,当发射机和接收机之间的距离大于或等于5米。这是进一步描述wlanTGaxChannel。在这个例子中所有斯塔斯认为是在同一距离美联社。

tgaxBase = wlanTGaxChannel;tgaxBase。SampleRate = f;tgaxBase。TransmissionDirection =“上行”;tgaxBase。TransmitReceiveDistance = 10;chanBW = cfgSys.ChannelBandwidth;tgaxBase。ChannelBandwidth = chanBW;tgaxBase。NumReceiveAntennas = numRx;tgaxBase。NormalizeChannelOutputs = false;

一个人的四个用户创建通道。每个通道的克隆tgaxBase,但有不同的UserIndex财产,存储在一个单元阵列tgax。的UserIndex每个频道的属性设置为每个用户提供一个独特的通道。在这个例子中随机信道实现用于每个数据包通过随机改变UserIndex属性为每个数据包传输。

%单元阵列存储通道对象,每一个用户tgax =细胞(1、numUsers);userIdx = 1: numUsers tgax {userIdx} =克隆(tgaxBase);tgax {userIdx}。NumTransmitAntennas = cfgSys.User {userIdx} .NumTransmitAntennas;tgax {userIdx}。UserIndex= userIdx;结束

处理信噪比点

为每一个信噪比点的数据包数量进行测试,计算包错误率。pre-HE序言802.11 ax ac™802.11向后兼容,因此在这个例子的定时同步组件VHT波形同步使用他在接收波形。为每个用户,以下处理步骤来创建一个波形发生在接收包含所有四个用户:

  1. 创建一个他结核病波形,PSDU创建并编码为每个用户根据用户预先定义的参数。

  2. 每个用户的波形是通过室内TGax信道模型。不同频道实现建模对不同用户和数据包,通过随机改变UserIndex房地产的渠道。这导致所有用户空间相关性属性相同。

  3. 所有他结核病的波形相同用户比例和组合,以确保为每个用户信噪比后的噪音。

  4. 情况下被添加到接收到的波形来创建所需的平均信噪比活跃的副载波OFDM解调后。

在接收机(美联社)以下处理步骤发生:

  1. 检测到数据包。

  2. 好时机建立同步。L-STF, L-LTF L-SIG样本提供的好时机允许数据包检测L-STF的开始或结束。

  3. HE-LTF和数据字段为所有用户从同步接收波形中提取。HE-LTF和OFDM解调数据字段。

  4. 提取解调HE-LTF执行每个俄文和信道估计。

  5. 噪声估计是使用解调数据字段执行每个俄罗斯飞行员。

  6. 所有用户的数据字段提取和平衡的在一个俄文,解调数据字段。

  7. 对于每一个俄文,在俄罗斯和用户,用户的空间流解调和解码恢复PSDU传播。

parfor循环可用于并行化处理的信噪比点。使使用并行计算速度的增加注释掉”的声明和取消下面的“parfor”声明。

ofdmInfo = wlanHEOFDMInfo (“数据”、cfgSys.ChannelBandwidth cfgSys.GuardInterval);numSNR =元素个数(信噪比);%的信噪比点numPackets = 50;%的数据包数量来模拟packetErrorRate = 0 (numUsers numSNR);txPSDU =细胞(numUsers);% parfor isnr = 1: numSNR %使用parfor加快仿真isnr = 1: numSNR%创建他结核病对象进行接收处理cfgHETB = wlanHETBConfig;cfgHETB。ChannelBandwidth = cfgSys.ChannelBandwidth;cfgHETB。HELTFType = cfgSys.HELTFType;cfgHETB。SingleStreamPilots = cfgSys.SingleStreamPilots;%设置随机substream每迭代确保每个索引%迭代使用一组可重复的随机数字流= RandStream (“combRecursive”,“种子”,0);流。Substream = isnr;RandStream.setGlobalStream(流);%俄文分配信息sysInfo = ruInfo (cfgSys);%模拟多个数据包numPacketErrors = 0 (numUsers, 1);pktIdx = 1: numPackets%传输处理rxWaveform = 0;packetError = 0 (numUsers, 1);txPSDU =细胞(1、numUsers);%生成随机信道实现每个数据包的不同%的UserIndex属性通道。这个假设所有用户%有相同数量的传输天线。chPermutations = randperm (numUsers);userIdx = 1: numUsers%他结核为每个用户配置对象cfgUser = cfgTB {userIdx};%生成一个随机PSDU包txPSDU {userIdx} =兰迪([0,1],getPSDULength (cfgUser) * 8, 1,“int8”);%生成他结核病波形,包含为单一用户负载txTrig = wlanWaveformGenerator (txPSDU {userIdx}, cfgUser);%波形通过随机TGax通道channelIdx = chPermutations (userIdx);重置(tgax {channelIdx});%的新通道实现rxTrig = tgax {channelIdx} ([txTrig;0(15、大小(txTrig 2))));%规模用户的传输功率在一个俄文。这是为了%保证同样的信噪比为每个用户后的噪音。ruNum = cfgSys.User {userIdx} .RUNumber;科幻小说=√1 / sysInfo.NumUsersPerRU (ruNum)) * sqrt (cfgUser.RUSize / (sum (sysInfo.RUSizes)));%结合上行用户为一个波形rxWaveform = rxWaveform +科幻* rxTrig;结束%通过波形通过AWGN信道。占噪音%能量null信噪比是每副载波活动定义。packetSNR =信噪比(isnr) -10 * log10 (ofdmInfo.FFTLength / sum (sysInfo.RUSizes));rxWaveform = awgn (rxWaveform packetSNR);%接收处理%包检测和确定粗包抵消coarsePktOffset = wlanPacketDetect (rxWaveform chanBW 0, 0.05);如果isempty (coarsePktOffset)%如果空没有L-STF检测;包错误numPacketErrors = numPacketErrors + 1;继续;%去下一个循环迭代结束%提取non-HT领域并确定好包抵消nonhtfields = rxWaveform (coarsePktOffset + (ind.LSTF (1): ind.LSIG (2)),:);finePktOffset = wlanSymbolTimingEstimate (nonhtfields chanBW);%确定最终包抵消pktOffset = coarsePktOffset + finePktOffset;%如果包检测的范围和预期的延迟%信道建模;包错误如果pktOffset > 50 numPacketErrors = numPacketErrors + 1;继续;%去下一个循环迭代结束%提取HE-LTF俄文和数据字段rxLTF = rxWaveform (pktOffset + (ind.HELTF (1): ind.HELTF (2)),:);rxData = rxWaveform (pktOffset + (ind.HEData (1): ind.HEData (2)),:);ruIdx = 1: allocInfo.NumRUs%解调HE-LTF俄文和数据字段的兴趣俄文= [allocInfo.RUSizes (ruIdx) allocInfo.RUIndices (ruIdx)];demodHELTFRU = wlanHEDemodulate (rxLTF,“HE-LTF”,cfgSys.GuardInterval chanBW cfgSys.HELTFType,俄文);demodHEDataRU = wlanHEDemodulate (rxData,“数据”,cfgSys.GuardInterval chanBW俄文);%在他结核病配置相关属性对象cfgHETB。RUSize = allocInfo.RUSizes (ruIdx);cfgHETB。RUIndex = allocInfo.RUIndices (ruIdx);cfgHETB。NumSpaceTimeStreams = allocInfo.NumSpaceTimeStreamsPerRU (ruIdx);%信道估计(陈,ssPilotEst) = wlanHELTFChannelEstimate (demodHELTFRU cfgHETB);%的指标数据和飞行员在俄文(没有空格)ruOFDMInfo = wlanHEOFDMInfo (“数据”cfgSys.ChannelBandwidth cfgSys.GuardInterval,[allocInfo.RUSizes (ruIdx) allocInfo.RUIndices (ruIdx)]);%估计噪声功率在他领域的每个用户据nvar = heNoiseEstimate (demodHEDataRU (ruOFDMInfo.PilotIndices,:,:), ssPilotEst, cfgSys, ruIdx);%丢弃飞行员副载波demodDataSym = demodHEDataRU (ruOFDMInfo.DataIndices,:,);chanEstData =成龙(ruOFDMInfo.DataIndices,:,);%平衡如果strcmpi (equalizationMethod“mmse-sic”)(eqSym, csi) = heSuccessiveEqualize (demodDataSym chanEstData,据nvar, cfgSys, ruIdx);其他的[eqSym, csi] = heEqualizeCombine (demodDataSym chanEstData,据nvar, cfgSys);结束userIdx = 1: allocInfo.NumUsersPerRU (ruIdx)%获得结核为每个用户配置对象userNum = cfgSys.RU {ruIdx} .UserNumbers (userIdx);cfgUser = cfgTB {userNum};%获得当前用户的时空流指数stsIdx = cfgUser.StartingSpaceTimeStream-1 + (1: cfgUser.NumSpaceTimeStreams);% Demap和解码比特rxPSDU = wlanHEDataBitRecover (eqSym (:,:, stsIdx),据nvar, csi (:, stsIdx) cfgUser,“LDPCDecodingMethod”,“norm-min-sum”);% /计算任何(biterr packetError (userNum) = (txPSDU {userNum}, rxPSDU));结束结束numPacketErrors = numPacketErrors + packetError;结束%计算包错误率在信噪比点(/)packetErrorRate (:, isnr) = numPacketErrors / numPackets;disp ([“信噪比”num2str(信噪比(isnr))“完成”num2str (numUsers)“用户”]);结束
信噪比20完成4用户信噪比22完成用户信噪比为4用户24日完成

图包误码率和信噪比

标记=“牛* sd ^ v > < ph值+牛* sd ^ v ';颜色=“bmcrgbrkymcrgbrkymc”;图;nSTA = 1: numUsers semilogy(信噪比、packetErrorRate (nSTA:)。”“- - -”标记(nSTA)颜色(nSTA)]);持有;结束网格;包含(“信噪比(dB)”);ylabel (“每”);dataStr = arrayfun (@ (x) sprintf (STA - % d ',x), 1: numUsers,“UniformOutput”、假);传奇(dataStr);标题(“每上行802.11 ax链接”);

数据包的数量控制在每个信噪比测试点numPackets。有意义的结果,这个值应该比那些在这个例子。下图是由模拟运行时间numPackets:1 e4和信噪比:20:2:28,显示了包错误率MMSE均衡器和MMSE-SIC均衡器。

附录

这个示例使用以下辅助函数和对象:

选定的参考书目

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

  2. m . Debbah b . Muquet m . de考维尔,神气活现的m、s Simoens和p . Loubaton。MMSE连续干扰消除方案为一个新的可调混合传播OFDM系统。IEEE第51车辆技术会议论文集,页745 - 749,2卷,2000年。