主要内容

802.11ax物理层聚焦系统级仿真

此示例显示如何为IEEE®802.11ax执行以PHY为中心的系统级模拟™. 第(A)部分通过与公布的校准结果进行比较,验证了模拟场景、无线电特性和大规模衰落模型。第(B)部分通过模拟基本清晰信道评估方案下活动节点之间的单个链路,估计802.11ax网络的包误码率。

介绍

在本例中,802.11ax的性能[1.]在一个住宅公寓楼的网络评估使用物理层为重点的系统级模拟。

中指定了住宅公寓楼模拟场景[2.]这包括一栋五层楼的建筑,每层楼有二十套10米x 10米x 3米的公寓。每个单元都有一个接入点(AP)和一个或多个站点(STA),它们位于随机xy位置,这一过程称为“放置”节点。这将为每个公寓创建一个基本服务集(BSS),并随机分配三个频道中的一个。模拟场景根据节点之间的距离以及穿过的墙和楼板的数量指定大规模路径损耗模型。

TGax评估方法[3.]对于“PHY系统模拟”,本例如下所示:

  1. AP和STA在场景中随机“丢弃”。

  2. 对于每对节点,计算大规模路径损耗。

  3. 执行一个或多个“传输事件”。每个传输事件包括根据信道访问规则选择活动AP和STA,并确定每个链路的性能。

本示例由两部分组成:

在第(A)部分“校准”阶段,假设下行干扰传输,计算多个“下降”的信干噪比(SINR)。SINR捕获长期无线电特性。SINR的累积分布函数(CDF)与TGax任务组公布的结果进行比较[4.].

在第(B)部分“物理层系统级仿真”阶段,针对每个传输事件,为各个链路的物理层建模。基本的清晰信道评估(CCA)方案用于控制哪些AP处于活动状态。生成并组合受衰落信道模型影响的感兴趣信号和干扰信号的波形。结果分组由接收机处理以恢复感兴趣的分组。计算网络的平均分组错误率。

可以使用参数禁用此示例的两个部分校准系统级模拟. 当出现以下情况时,将显示一个显示仿真场景、节点、活动链路和干扰的图:展示场景图这是真的。

校准=真;%执行A部分校准测试systemLevelSimulation=true;%执行B部分系统级模拟showScenarioPlot=true;%显示动态模拟打印更新的步骤

模拟参数

主要仿真参数定义为属于物理层(PHY)、介质访问控制层(MAC)、场景或仿真。在此示例中,假设所有节点的PHY和MAC参数相同。

PHYParameters=struct;PHYParameters.TxPower=20;%dBm中的发射机功率PHYParameters.TxGain=0;%发射机天线增益(单位:dBi)PHYParameters.RxGain=-2;%接收机天线增益(单位:dBi)PHYParameters.NoiseFigure=7;%接收机噪声系数(dB)PHYParameters.numtxantenas=1;%发射机天线的数量PHYParameters.numrxanternas=1;%接收天线的数量物理信道带宽=“CBW80”;%系统带宽PHYParameters.TransmitterFrequency=5e9;%发射机频率(单位:Hz)MACParameters=struct;MACParameters.numChannel=3;%非重叠通道的数量MACParameters.CCALevel=-70;%CCA算法中的传输阈值(dBm)

场景参数根据[3]定义住宅建筑的大小和布局。

%[x,y,z]方向上的房间数ScenarioParameters=struct;ScenarioParameters.BuildingLayout=[10 2 5];%每个房间的尺寸(米)[x,y,z]ScenarioParameters.RoomSize=[10 3];%每个房间的接收器数量。请注意,只能使用一个接收器(STA)%在任何给定时间都处于活动状态。ScenarioParameters.numRxperoom=1;

这个NumDropsNumTxEventsPerDrop参数控制模拟的长度。在本例中,这些参数是为短模拟配置的,但对于有意义的结果,应增加这些参数。

“下降”会在场景中随机放置发射机和接收机,并为BSS选择信道。“传输”事件根据基本信道访问规则随机选择用于传输的发射机和接收机。

SimParameters=struct;SimParameters.NumDrops=3;SimParameters.NumTxEventsPerDrop=2;

生成发射机站点

在主体仿真之前,对发射站对象进行仿真txsite为便于参考,生成并分配了“room#”形式的房间名称。假设每个房间有一个发射器(AP)。每个发射器都是各向同性的。

%变送器总数,假设每个房间有一个变送器(tx)numTx=prod(ScenarioParameters.BuildingLayout);%使用各向同性天线元件创建发射机站点roomNames=字符串(1,numTx);对于siteInd=1:numTx房间名(siteInd)=“房间”+siteInd;终止txs=txsite(“笛卡尔”,“姓名”,房间名,...“发射机频率”,PHYParameters.TransmitterFrequency,...“传输功率”,10.^((PHYParameters.TxPower+PHYParameters.TxGain-30)/10),...“天线”,“各向同性”);

生成接收器站点

接收站点对象rxsite为便于参考,生成并分配了表格“Room#-STA#”的名称。Scenario参数NUMREXPERROOM用于定义每个房间中有多少个接收器(STA)。假定每个接收器是各向同性的。

%接收器总数,假设每个房间有一个发射器(tx)numRx=numTx*ScenarioParameters.numrxperoom;%创建接收者站点roomNames=字符串(1,numRx);对于siteInd=1:numRx房间名(siteInd)=“房间”+(国防部(siteInd-1,numTx)+1)+"-"+ceil(siteInd/numTx);终止rxs=rxsite(“笛卡尔”,“姓名”,房间名,“天线”,“各向同性”);%dBm中的接收机噪声功率T=290;%温度(开尔文)k=物理常数(“玻尔兹曼”);%玻尔兹曼常数%采样率(Hz)fs=wlanSampleRate(wlanHESUConfig(“信道带宽”、物理参数、信道带宽);rxNoisePower=10*log10(k*T*fs)+30+PHYParameters.NoiseFigure;

A部分-校准长期无线电特性

在本节中,通过执行TGax评估方法框1测试2仅下行链路校准测试,验证模拟场景、无线电特性和大规模衰落模型[3.]。该测试计算所有接收机(STA)的SINR,假设所有发射机(AP)都处于活动状态。作为模拟的一部分,对发射机和接收机进行了多点测试。每滴选择一个活动接收器。

计算每个接收器的SINR,并将其聚集在所有模拟的液滴上,以生成CDF曲线。将该曲线与中提供的校准结果进行比较[4.].

显示节点位置、活动链路和干扰链路的绘图将在每一次拖放时生成。单击相应的图例条目,可以在绘图中隐藏和显示各个通道。

种子=rng(6);%种子随机数发生器和存储状态如果showScenarioPlot hGrid=tgaxBuildResidentialGrid(ScenarioParameters.RoomSize、ScenarioParameters.BuildingLayout、,...numTx、numRx、MACParameters.NumChannels);终止如果校准fprintf('正在运行校准…\n');%预分配输出output=struct;output.sinr=零(SimParameters.NumDrops,numTx);%用于存储SINR值对于drop=1:SimParameters.NumDrops%在每个房间放置接收器[关联,txChannels,rxChannels,txPositions,rxPositions]=tgaxDropNodes(...txs、rxs、ScenarioParameters、MACParameters.numChannel);%所有发射机均激活activeTx=true(numTx,1);%每个房间只选择一个接收器rxAlloc=randi([1 ScenarioParameters.NumRxPerRoom],numTx,1);activeRx=重塑(rxAlloc==1:ScenarioParameters.numrxperoom,[],1);%生成传播模型propModel=TGaxResidential(“房间大小”、场景参数、房间大小);%获取每个接收器的发射器索引tnum=repmat((1:numTx),1,numRx/numTx);%SINR计算-每个非重叠信道上的环路numChannels=numel(唯一(txChannels));对于k=1:numChannels%使用第k个非重叠通道tind=txChannels==k;外皮=false(大小(activeRx));外皮(activeRx)=rxChannels(activeRx)==k;%获取每个活动接收器感兴趣的发射器的索引tsigind=tnum(外皮);%计算信噪比输出sinr(下降,tind)=sinr(rxs(外皮),txs(tind),...“破产管理人收益”,PHYParameters.RxGain,...“接收者噪音功率”,rxNoisePower,...“传播模型”,propModel,...“信号源”,txs(tsigind));终止%打印节点和链接如果展示场景图%更新绘图数据掩码=txChannels==rxChannels';tgaxUpdatePlot(hGrid、txPositions、rxPositions、activeTx、activeRx、mask、TXChannel、RxChannel、,...斯普林特('方框1测试2“仅下行链路”校准,下降#%d/%d',drop,SimParameters.NumDrops));终止终止%绘制SINR的CDF,并与校准曲线进行比较tgaxCalibrationCDF(output.sinr,“SS1Box1Test2”,“长期无线电特性”);fprintf('校准完成\n')终止
正在运行校准…校准完成

此示例模拟少量液滴。因此,为了进行更有意义的比较,应增加模拟液滴的数量。100滴的校准结果如下所示:

B部分-聚焦于物理层的系统级仿真

在本节中,使用第A部分中校准的场景和路径损耗模型执行以PHY为中心的系统级模拟,并确定网络的分组错误率。这种模拟被描述为以物理层为中心,因为物理层没有被抽象,MAC被简化。使用基带发射机和接收机处理对每个活动链路进行建模。一个非常简单的MAC假设在每个传输事件中,所有发射机(AP)都希望发送,每个BSS有一个接收机(STA)作为接收方。一个简单的CCA算法用于控制发射机之间的信道访问,如图4所示[3.].如果从已激活的发射器接收的信号功率不超过CCA阈值,则CCA算法启用随机发射器,MACParameters.cca阈值.

在每个活动接收器处计算来自所有可能干扰发射器的接收信号功率。如果来自干扰发射器的接收功率高于接收器的噪声地板,则使用全基带发射器和接收器处理对链路进行建模。对于每个建模的链路,生成一个单用户数据包,并通过TGax Model-D非直瞄固定室内信道模型。在接收器处,目标发射机和所有干扰发射机的波形按预期路径损耗进行缩放,并组合以创建包含目标信号和干扰的波形。所有波形都是时间对齐的。接收器执行同步初始化、解调和解码以尝试恢复有效负载。将解码的有效负载与BSS中传输的PSDU进行比较,以确定数据包是否已成功恢复。

在此示例中,假设所有节点的传输和信道参数相同。所有数据包的传输配置为一个空时流,无空时分组编码和16-QAM速率1/2(MCS 3)。

如果系统级模拟%预先分配产出output.numPkts=zeros(numRx,1);output.numPktErrors=zeros(numRx,1);output.sinrMeas=nan(numRx,SimParameters.nummtxeventsperdrop,SimParameters.NumDrops);output.sinrEst=nan(numRx,SimParameters.numdtxeventsperdrop,SimParameters.NumDrops);output.pktErrorRate=0;%为每个可能的发射机创建一个波形配置%示例:所有节点的链路和无线电参数都相同。cfgHEBase=wlanHESUConfig;cfgHEBase.ChannelBandwidth=PHYParameters.ChannelBandwidth;%信道带宽cfgHEBase.NumTransmitAntennas=PHYParameters.NumTxAntennas;%发射天线的数量cfgHEBase.SpatialMapping=“傅里叶”;%空间映射矩阵cfgHEBase.NumSpaceTimeStreams=1;%时空流的数量cfgHEBase.GuardInterval=0.8;%保护间隔持续时间cfgHEBase.helttype=4;%HE-LTF压缩模式cfgHEBase.APEPLength=1e3;%有效负载长度(字节)cfgHEBase.ChannelCoding=“自民党”;%信道编码cfgHEBase.MCS=3;%调制编码方案cfgHE=单元(numTx,1);对于txidx=1:numTx-cfgHE{txidx}=cfgHEBase;终止fprintf('正在运行系统级模拟…\n')对于drop=1:SimParameters.NumDrops fprintf('正在运行的drop#%d/%d…\n',drop,SimParameters.NumDrops);%在每个房间放置接收器[关联,txChannels,rxChannels,txPositions,rxPositions]=tgaxDropNodes(...txs、rxs、ScenarioParameters、MACParameters.numChannel);%生成传播模型propModel=TGaxResidential(“房间大小”、场景参数、房间大小);%计算所有链路的信号强度信号强度=信号强度(rxs、txs、propModel、,“类型”,“权力”,...“破产管理人收益”,PHYParameters.RxGain);%dBm中的所有信号强度%阈值信号低于噪声级以减少模拟时间信号强度(信号强度%不在同一非重叠信道上的阈值信号信号强度(~(txChannels==rxChannels'))=-Inf;%屏蔽不可忽略的发射机-接收机链路%模拟得到线性指标不可忽略的MAK=信号强度>-Inf;%重置不可忽略的通道,为%电流降NonNegibleIdx=查找(NonNegibleMask)';%为放置中的每个可能的活动链接创建一个通道%配置。在本例中,链路和无线电参数为%对所有节点都一样。tgaxChan=细胞(numel(非忽略指数),1);对于i=1:numel(不可忽略)%给定链路的发射机索引txIdx=mod(不可忽略的eIdx(i)-1,numTx)+1;%通道配置。每个链路的信道实现如下所示:%由于使用了全局随机流,因此不同。tgaxhanbase=wlanTGaxChannel;tgaxhanbase.DelayProfile=“D型”;tgaxhanbase.numtransmitantenas=cfgHE{txix}.numtransmitantenas;tgaxhanbase.NumReceiveAntennas=PHYParameters.numrxantenas;tgaxhanbase.TransmitReceiveDistance=10;%非直瞄距离(米)tgaxhanbase.ChannelBandwidth=cfgHE{txix}.ChannelBandwidth;tgaxhanbase.LargeScaleFadingEffect=“没有”;tgaxChanBase.EnvironmentalSpeed=0;%米/秒,静止tgaxhanbase.SampleRate=fs;tgaxChanBase.NormalizeChannelOutputs=false;%存储在单元阵列中,并重置通道以生成新的%回应tgaxhan{i}=tgaxhanbase;复位(tgaxChan{i});终止对于txevent=1:SimParameters.NumTxEventsPerDrop fprintf('正在运行传输事件#%d/%d…\n',txevent,SimParameters.numtxeventsperdop);%通过清晰通道评估确定有源发射机和接收机[activeTx,activeRx]=tgaxCCA(信号强度,MACParameters.CCALevel);%情节场景和链接如果showScenarioPlot tgaxUpdatePlot(hGrid、txPositions、rxPositions、activeTx、activeRx、不可忽略的掩码、txChannels、rxChannels、,...斯普林特('物理层系统级模拟,丢弃#%d/%d,传输事件#%d/%d',...drop,SimParameters.NumDrops,txevent,SimParameters.numtxeventsperdop));终止%使用activeTx和activeRx提取活动链接的元素cfgHEActive=cfgHE(activeTx);associationActive=association(activeTx,activeRx);nonnegiblemaskactive=nonnegiblemask(activeTx,activeRx);signalStrengthActive=signalStrength(activeTx,activeRx);%创建包含活动通道的阵列tgaxhanactive=cell(size(associationActive));matchIdx=nonnegibleidx==find(activeTx&activeRx');tgaxhanactive(nonnegiblemaskactive)=tgaxChan(any(matchIdx,1));%为每个不可忽略的活动链路生成波形,并%组合每个接收器的波形[rxWavs、TXPSDAUActive、signalPower、Interpower]=TGAXGeneratorX波形(...CFG活性、TGA活性、不可忽略的活性、信号强度活性、联想活性);%对每个链路运行PHY链路模拟,并确定数据包%已成功解码。估计干扰功率%被传送到接收器以代替干扰电源%测量算法。numActiveRxs=sum(activeRx);pktError=false(numActiveRxs,1);sinrMeas=nan(numActiveRxs,1);对于rxIdx=1:numActiveRxs[pktError(rxIdx),sinrMeas(rxIdx)]=tgaxModelPHYLink(...rxWavs{rxIdx}、cfgHEActive{rxIdx}、rxNoisePower、interpower(rxIdx)、txpsduative{rxIdx});终止%为有源接收机存储输出output.numPktErrors(activeRx)=output.numPktErrors(activeRx)+PKERROR;output.numPkts(activeRx)=output.numPkts(activeRx)+1;output.sinrMeas(activeRx,txevent,drop)=sinrMeas;%计算每个接收机的预期SINRsinrEst=10*log10(信号功率/(干扰功率+10^((rxNoisePower-30)/10));output.sinrEst(activeRx、txevent、drop)=sinrEst;终止终止%计算平均数据包错误率output.pktErrorRate=sum(output.numpkterrorres)/sum(output.numPkts);disp(“模拟完成”)disp(['发射机的平均数据包错误率:'num2str(output.pkterrorate)];终止rng(种子);%恢复随机状态
正在运行系统级模拟。。。运行下降#1/3。。。正在运行传输事件#1/2。。。正在运行传输事件#2/2。。。运行下降#2/3。。。正在运行传输事件#1/2。。。正在运行传输事件#2/2。。。运行下降#3/3。。。正在运行传输事件#1/2。。。正在运行传输事件#2/2。。。模拟发射机的完整平均分组错误率:0.054152

进一步探索

本例中演示的以PHY为中心的系统级模拟可用于探索PHY级参数对系统性能的影响。例如,下图显示了50次丢包和每丢包2次传输事件的不同CCA阈值的网络平均数据包错误率。

附录

此示例使用以下帮助器函数:

精选书目

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

  2. IEEE 802.11-14/0980r16-TGax模拟场景。

  3. IEEE 802.11-14/0571r12-11ax评估方法。

  4. IEEE 802.11-14/0800r30-框1和框2校准结果。

相关话题