主要内容

基于上行触发反馈NDP的802.11ax反馈状态错检仿真

本示例展示了如何度量多个上行链路sta (high efficiency -based TB)反馈NDP (high efficiency -based TB - feedback null data packet)传输中反馈状态信息检测错误的概率。

简介

802.11ax [1HE TB反馈NDP是HE TB物理层协议数据单元(PPDU)的一种变体。HE TB反馈NDP传输完全由一个接入点(AP)控制。传输所需的所有参数都在NDP反馈报告轮询(NFRP)类型的触发帧中提供,发送给所有参与HE TB反馈传输的sta。在AP发送NFRP触发帧之后,多个sta可能同时发送一个HE TB反馈NDP,该NDP携带资源请求信息(反馈状态),如图所示。有关NDP反馈报告程序的详细信息,请参阅wlanHETBConfig参考页面。

本例通过比较发送和接收的反馈状态来测量HE TB反馈NDP误检测反馈状态信息的概率。当恢复的反馈状态不正确或不确定时,错误检测被记录。该示例使用端到端模拟对四个sta和一个AP之间的传输执行此测量。STA从请求NFRP触发帧的User Info字段推断传输参数。在每个信噪比(SNR)点,STA传输多个数据包,除了多径衰落和噪声外没有任何损害。STA对报文进行解调,恢复反馈状态。AP通过比较恢复的反馈状态和传输的反馈状态来判断误检反馈状态的概率。

每个STA通过执行这些处理步骤来传输波形。

  1. 确定STA是否计划传输HE TB反馈NDP。

  2. 确定所有发射sta的RU音集索引和开始时空流号。

  3. 为sta生成HE TB反馈NDP。

  4. 通过室内通道传递每个STA的波形wlanTGaxChannel年代系统对象。的UserIndex属性为每个用户和每个包建模不同的通道实现wlanTGaxChannel.这一过程导致所有sta具有相同的空间相关属性。

  5. 结合所有sta的波形。

  6. 在接收波形中添加加性高斯白噪声(AWGN)。AWGN在对每个STA进行正交频分复用(OFDM)解调后,为每个子载波创建所需的平均信噪比。

接收器(AP)对接收到的波形执行这些处理步骤。

  1. 使用完美的信道延迟估计来同步。

  2. 从同步波形中提取HE-LTF并解调HE-LTF。

  3. 从解调的HE-LTF符号中恢复反馈状态信息[2]。

该图显示了STA和AP之间每条链路的处理过程。

模拟上行链路传输

本节以多sta多信噪比的端到端上行场景为例进行仿真。指定sta个数和信噪比范围。本节估计所有sta错误检测反馈状态的概率。反馈状态表示来自STA的资源请求信息,定义如表26-3所示。1]。

设置传输参数numSTAs =4%上行链路sta个数稳重的=[1 19 2 4]% STA关联ID,分配给每个与AP关联的STAmultiplexingFlag =[0 1 0 0]%每个STA在NFRP触发框中有信号feedbackStatus =[1 0 10 0]每个STA发出的资源请求信息startingAID =0% NFRP型触发框内有信号设置仿真参数numPackets =50%要模拟的数据包数snrRange =2:2:6信噪比% (dB)chanBW =“CBW20”通道带宽%numTx =1%假设所有sta的发射天线数量相同numRx =4%接收(AP)天线数

HE TB反馈NDP波形配置

为每个STA配置波形发生器。这些步骤由STA执行。

  • 检查STA是否计划发送。

  • 计算每个STA的RUToneSetIndex稳重的startingAID,chanBW。

  • 计算所有sta的起始时空流编号稳重,startingAID,而且chanBW。

  • 为所有sta生成配置对象。

返回发送sta的索引。计算所有sta的RUToneSetIndex和起始时空流。[txSTAIndex,ruToneSetIndexPerSTA,startingSTSNumPerSTA] = heTBNDPMappingParams(chanBW,numSTAs,multiplexingFlag,startingAID,STAID);numTxSTAs = numel(txSTAIndex);%计划发送的STAscfgSTA = cell(1,numTxSTAs);生成配置对象并为所有sta设置反馈状态属性cfgBase = wlanHETBConfig(“ChannelBandwidth”chanBW,“NumTransmitAntennas”numTx,“SpatialMapping”“傅里叶”);cfgNDP = getNDPFeedbackConfiguration(cfgBase);如果numSTAs ~ =元素个数(feedbackStatus)错误(FeedbackStatus中的元素数量必须等于sta的数量);结束u = 1: numTxSTAs cfgNDP。RUToneSetIndex = ruToneSetIndexPerSTA(u);cfgNDP。年代tartingSpaceTimeStream = startingSTSNumPerSTA(u); cfgNDP.FeedbackStatus = feedbackStatus(txSTAIndex(u)); cfgSTA{u} = cfgNDP;结束

通道配置

本例使用了TGax非视距(NLOS)室内通道模型,该模型具有延迟剖面模型- d。当发射机和接收机之间的距离大于或等于10米时,Model-D被认为是NLOS。有关更多信息,请参见wlanTGaxChannel.本例假设所有sta与AP的距离相同。

delayProfile =“模型”% TGax通道多路径延迟配置文件tgaxBase = wlanTGaxChannel;tgaxBase。DelayProfile = DelayProfile;tgaxBase。年代ampleRate = wlanSampleRate(cfgSTA{1}); tgaxBase.TransmissionDirection =“上行”;tgaxBase。TransmitReceiveDistance = 10;tgaxBase。ChannelBandwidth = chanBW;tgaxBase。numreceiveantenna = numRx;tgaxBase。NormalizeChannelOutputs = false;tgaxBase。PathGainsOutputPort = true;

为每个STA创建单独的通道。每个频道都是克隆的tgaxBase,但有一个不同的UserIndex属性,并存储在单元格数组中tgax.的UserIndex属性为每个用户创建唯一的通道。此示例通过随机改变属性为每个包使用随机通道实现UserIndex每个传输数据包的属性。

单元格数组存储通道对象,每个STA一个。tgax = cell(1,numTxSTAs);u=1:numTxSTAs tgax{u} =克隆(tgaxBase);tgax{你}。numtransmitantenna = numTx;tgax{你}。UserIndex = u;结束chInfo = info(tgaxBase);chFilterCoefficients = chInfo.ChannelFilterCoefficients;%信道滤波器系数

处理信噪比点

本节在每个信噪比点测试大量的数据包,并计算错误检测恢复反馈状态的概率。

为了并行化SNR点的处理,你可以使用parfor循环。为了使用并行计算来提高速度,注释掉'for'语句并取消注释下面的'parfor'语句。

%处理信噪比点ofdmInfo = wlanHEOFDMInfo(“HE-LTF”, cfgNDP);numSNR = nummel (snrRange);信噪比百分比misdetectionProbability = 0 (numTxSTAs,numSNR);ind = wlanFieldIndices(cfgNDP);%所有sta相同%parfor isnr=1:numSNR %使用'parfor'加快模拟速度isnr = 1: numSNR每次迭代设置随机子流索引,以确保每个子流的索引迭代使用一组可重复的随机数流= RandStream(“combRecursive”“种子”, 0);流。年代ubstream = isnr; RandStream.setGlobalStream(stream); rxFeedbackStatus = zeros(numPackets,numTxSTAs); chDelay = zeros(1,numTxSTAs);pktIdx=1:numPackets rx波形= 0;为每个包随机生成信道实现通道的UserIndex属性。这假设了所有的sta%拥有相同数量的发射天线。chPermutations = randperm(numTxSTAs);u = 1: numTxSTAs为每个STA生成HE TB反馈NDP波形txSTA = wlanWaveformGenerator([],cfgSTA{u});%通过随机TGax通道传递波形channelIdx = chPermutations(u);重置(tgax {channelIdx});%新渠道实现[rxSTA,h] = tgax{channelIdx}([txSTA;0(50、大小(txSTA 2))));%执行完美的信道延迟估计以找到起始点%数据包chDelay(u) = channelDelay(h,chFilterCoefficients);将所有sta的上行波形合并为一个波形rx波形= rx波形+rxSTA;结束%稍后使用最大通道延迟同步%作为包的开始pktOffset = max(chDelay(u));包开始索引通过AWGN通道传递波形。考虑噪音%未使用子载波能量。snrVal = snrRange(isnr)-10*log10(ofdmInfo.FFTLength/ofdmInfo.NumTones);rx波形= awgn(rx波形,snrVal);%上行链路处理(AP)rxHELTF = rx波形(pktOffset+(ind.HELTF(1):ind.HELTF(2)),:);heltfDemod = wlanHEDemodulate(rxHELTF,“HE-LTF”, cfgNDP.GuardInterval chanBW cfgNDP.HELTFType);恢复所有sta的反馈状态u=1:numTxSTAs rxFeedbackStatus(pktIdx,u) = wlanHETBNDPFeedbackStatus(heltfDemod,cfgSTA{u});结束结束每个STA的漏检概率%misdetectionProbability(:,isnr) = 1-sum(rxFeedbackStatus==feedbackStatus(txSTAIndex))/numPackets;disp ([“信噪比”num2str (snrRange (isnr))“完成”]);结束
信噪比-2完成信噪比0完成信噪比2完成信噪比4完成信噪比6完成

误检概率与信噪比的关系

标记=“牛* sd ^ v > < ph值+ ';numMarkers =数字(标记);u = 1: numTxSTAs semilogy (snrRange misdetectionProbability (u,:), (“- - -”标记(mod (u-1 numMarkers) + 1)]);持有结束包含(“信噪比(dB)”);ylabel (“漏检概率”);dataStr = arrayfun(@(x)sprintf(“沉静的% d ', x)的(txSTAIndex),“UniformOutput”、假);标题(sprintf ('%s,通道%s, %d-by-%d', delayProfile chanBW numTx numRx));传奇(dataStr);网格

图中包含一个轴对象。标题为CBW20的axis对象,Channel Model-D, 1 × 4,包含4个类型为line的对象。这些对象表示STAID 1, STAID 19, STAID 2, STAID 4。

在每个信噪比点测试的包数取决于numPackets.为了获得有意义的结果,增加的值numPackets.这个数字是通过运行一个更长的模拟numPackets: 1 e4和snrRange: 2:2:6。

选定的参考书目

  1. IEEE标准802.11ax™-2021。IEEE信息技术标准。系统间的电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。修改件1:高效WLAN的增强。

  2. Montreuil, L。et al。短反馈设计。IEEE 802.11-17/0044r4, 2017年5月。