基于TGay信道的802.11ad分组误码率单载波PHY仿真

这个例子展示了如何使用端到端的模拟来测量IEEE®802.11ad™DMG单载波(SC) PHY链路的包错误率。

介绍

在本例中,使用端到端的模拟来确定802.11ad SC的包错误率[1]与TGay毫米波信道链路[2在一个选定的信噪比点。在每个信噪比点上,多个数据包通过衰落信道进行同步、解调和恢复PSDUs。对载波频偏和时延也进行了建模。将psdu与传输的psdu进行比较,以确定包错误的数量,从而确定包错误率。对每个数据包的处理总结如下图所示。

这个例子也演示了如何PARFOR循环可以用来代替对于循环时,模拟每个信噪比点,以加快一个模拟。PARFOR,作为并行计算工具箱™的一部分,并行地对每个信噪比执行处理,以减少总模拟时间。

波形配置

在本例中模拟了一个802.11ad DMG SC物理层的传输。DMG格式配置对象包含传输的特定格式配置。对象是使用wlanDMGConfig函数。该对象的属性包含所传输包的配置。在本例中,该对象被配置为生成MCS“9”的单个载波波形。MCS确定使用的PHY类型,在本例中,它必须是范围为1-12的字符串,或者{9.1 12.1 12.2 12.3 12.4 12.6}中的一个来模拟SC PHY。

%创建格式配置对象cfgDMG = wlanDMGConfig;mcs =“9”;%MCS指定为字符串标量或向量串cfgDMG.PSDULength = 4096;%PSDULength字节

衰落信道配置

在本例中,我们模拟开放区域热点场景的TGay通道模型,使用wlanTGayChannel对象。发射和接收阵列都是4x4均匀矩形阵列(URA)。从发射到接收阵列执行射线追踪,得到两种确定性射线:一种是LOS射线,另一种是地面一阶反射的NLOS射线。随机射线和簇内射线随后根据准确定性(Q-D)建模方法和[2]。波束形成被执行以设定的发送和接收沿着与所述最大功率射线天线转向方向。脉冲响应的衰落信道被归一化,从而没有功率增益或损失是由信道引入的。两个信道的输入和输出信号是偏振的。

%获取采样率和指定的载波频率fs = wlanSampleRate (cfgDMG);fc = 60 e9;%创建TGay频道对象tgayChan = wlanTGayChannel;tgayChan.SampleRate = FS;tgayChan.CarrierFrequency = FC;tgayChan.Environment =“开放区域热点”;tgayChan.TransmitArray。Size = [4 4];tgayChan。TransmitArrayPosition = [0;0;6);%计tgayChan。TransmitArrayOrientation = [0;270;0);%度tgayChan.ReceiveArray.Size = [4 4];tgayChan.ReceiveArrayPosition = [6;6;1.5];%计tgayChan。ReceiveArrayOrientation = [90;0;0);%度tgayChan.BeamformingMethod =“最大功率雷”;tgayChan。NormalizeImpulseResponses = true;

给定通道对象配置,我们显示一个3D地图来显示环境和天线阵列设置。射线追踪的两条确定性射线如图所示。

showEnvironment(tgayChan);

信道减损

用于发射器的中心频率的最大公差必须是[-20,+ 20] ppm的内[1]。在这个例子中,20ppm的时钟精度被认为是CFO的来源。传输信号延迟了500个样本,并在最后追加了100个零样本来解释TGay信道滤波的延迟。

ppm = 20;驱动CFO的时钟精度(ppm)freqOffset = ppm * 1 e-6 *俱乐部;%载波频率偏移(Hz)的延迟= 500;%采样以延迟波形zeroPadding = 100;%添加尾随零,以允许信道延迟

仿真参数

对于单元中的每个信噪比点(dB)snrRanges生成大量的数据包,通过信道进行解调以确定数据包的错误率。要测试的信噪比点是从snrRanges基于MCS仿真。

:0.5:0.5 snrRanges = {-2.0,...% MCS 10.0:1.0:5.0,...% MCS 21.0:1.2:7.0,...% MCS 32.0:1.2:8.0,...% MCS 42.0:1.3:8.5,...% MCS 52.5:1.3:9.0,...% MCS 64.0:1.3:10.5,...% MCS 75.0:1.5:12.5,...% MCS 85.5:1.5:13.0,...% MCS 97.0:1.5:14.5,...% MCS 9.18.0:1.8:17.0,...%MCS 1010.0:2.0:20.0,...%MCS 1112.0:2.0:22.0,...%MCS 1212.0:2.0:22.0,...% MCS 12.114.0:2.0:24.0,...% MCS 12.216.0:2.5:28.5,...%MCS 12.317.0:2.5:29.5,...% MCS 12.417.0:2.5:29.5,...% MCS 12.520.0:2.5:32.5};% MCS 12.6

在每个信噪比点测试的数据包数量由两个参数控制:

  1. maxNumErrors是在每个SNR点模拟数据包错误的最大数目。当数据包错误的数量达到此限制,模拟在这个SNR点是完整的。

  2. maxNumPackets是在每个信噪比点上模拟的最大分组数,如果没有达到分组错误限制,则限制模拟的长度。

本例中选择的数字会导致在很短的模拟。对于有意义的结果,我们建议增加的数字。

maxNumErrors = 10;在信噪比点的最大数据包错误数maxNumPackets = 100;在SNR点分组的%最大数量

处理SNR点

对每个信噪比点测试若干个数据包,并计算数据包误码率。

对于每一个数据包中的以下处理步骤发生:

  1. 创建PSDU并对其进行编码,以创建单个数据包波形。

  2. 波形是通过TGay信道模型通过。不同的信道实现被建模为不同的数据包。

  3. AWGN被添加到接收波形。comm.AWGNChannel配置为提供正确的信噪比。

  4. 频率偏移损害被添加到每个分组。

  5. 数据包被检测到。

  6. 对载波频偏进行估计和校正。

  7. 建立了良好的定时同步。CE字段样本提供了良好的定时,以便在STF开始时进行包检测。

  8. 从同步接收的波形中提取STF和CE字段。分别对恢复后的声场进行噪声和信道估计。

  9. 数据字段(不包括第一个保护间隔)被提取并重新构造为块。数据字段中的接收符号被均衡。

  10. 所接收的码元跟踪和所造成的任何残留的载波频率偏移的相位误差校正。

  11. 对数据字段进行解码以恢复PSDU位。

一种PARFOR环路可用于并行处理信噪比点,因此,为每个信噪比点创建一个AWGN通道并配置comm.AWGNChannel。可以使用并行计算来提高注释的速度对于声明并取消注释PARFOR声明如下。

numSNR = numel(snrRanges {1});%的信噪比点数如果~ isstring (mcs)错误(“MCS必须被指定为一个字符串标量或串矢量”);结束numMCS = numel(MCS);MCS的数量%packetErrorRate = 0 (numMCS numSNR);进行下一代Ngi = 64;%标准中规定的固定GI长度(20.6.3.2.5)validMCS =串(排序([1:12 9.1 12.1:0.1:12.6]));对于imcs = 1:numMCS cfgDMG。MCS = MCS (imc);如果~ strcmp (phyType (cfgDMG),“SC”)错误(“本例仅支持DMG SC PHY仿真”万博1manbetx);结束印第安纳州= wlanFieldIndices (cfgDMG);信噪比= snrRanges {mcs (imc) = = validMCS};%SNR点从MCS模拟% parfor isnr = 1:numSNR %使用“parfor”来加速模拟对于ISNR = 1:numSNR使用'for'调试模拟每次迭代%设定随机子指数,以确保每个迭代使用一组可重复的随机数流= RandStream ('combRecursive''种子'10);流。Substream = isnr;RandStream.setGlobalStream(流);为每个模拟的信噪比点创建一个AWGN通道实例awgnChannel = comm.AWGNChannel;awgnChannel.NoiseMethod =“信噪比”;awgnChannel。信噪比=信噪比(isnr);设置仿真参数numPacketErrors = 0;numPkt = 1;传输数据包的%索引numPacketErrors < = maxNumErrors & & numPkt < = maxNumPackets%生成波形包PSDU =兰迪([0 1],cfgDMG.PSDULength * 8,1);txWaveform = wlanWaveformGenerator(PSDU,cfgDMG);添加延迟和尾随零tx =[0(延迟,1);txWaveform;0 (zeroPadding 1)];通过TGay通道%发送。重置为一个信道%不同的实现每个包。重置(tgayChan);chanOut = tgayChan (tx);%添加噪声rx = awgnChannel (chanOut);%添加首席财务官rx = helperFrequencyOffset (rx, fs freqOffset);%数据包检测阈值= 0.03;%适合低信噪比pktStartOffset = dmgPacketDetect (rx 0阈值);如果isempty (pktStartOffset)%如果为空,未检测到STF;包错误numPacketErrors = numPacketErrors + 1;numPkt = numPkt + 1;继续;%进入下一个循环迭代结束%频率偏移估计和校正月31 = rx (pktStartOffset + (ind.DMGSTF (1): ind.DMGSTF (2)));fOffsetEst = dmgCFOEstimate(STF);RX = helperFrequencyOffset(RX,FS,-fOffsetEst);%符号定时和信道估计preamblefield = rx (pktStartOffset + 1: pktStartOffset + ind.DMGHeader (2):);[symbolTimingOffset,陈]= dmgTimingAndChannelEstimate (preamblefield);startOffset = pktStartOffset + symbolTimingOffset;%如果没有足够的样本来解码检测到的数据字段开始,%则假定同步错误和包错误如果(开始偏移+ ind.DMGData(2))>大小(RX,1)= numPacketErrors numPacketErrors + 1;numPkt = numPkt + 1;继续;%进入下一个循环迭代结束使用STF作为重复序列的%噪声估计月31 = rx (pktStartOffset + (ind.DMGSTF (1): ind.DMGSTF (2)));据nvar = dmgSTFNoiseEstimate (31);提取数据字段(忽略第一个GI)RXDATA = RX(开始偏移+((ind.DMGData(1)+ NGI):ind.DMGData(2)));%线性频域均衡rxEqDataBlks = dmgSingleCarrierFDE(RXDATA,CHANEST,nVarEst);%独有的字相位跟踪rxEqDataBlks = dmgUniqueWordPhaseTracking(rxEqDataBlks);放弃所有方块的GIrxDataSym = rxEqDataBlks (1: end-Ngi,:);从DMG数据字段中恢复传输的PSDU据nvar dataDecode = wlanDMGDataBitRecover (rxDataSym, cfgDMG);%确定是否有任何位是错误的,即一个数据包错误packetError =任何(biterr(PSDU,dataDecode));numPacketErrors = numPacketErrors + packetError;numPkt = numPkt + 1;结束在信噪比点计算数据包误码率(PER)packetErrorRate(的IMC,ISNR)= numPacketErrors /(numPkt-1);DISP(加入(["主持人:"cfgDMG.MCS“信噪比”...num2str(SNR(ISNR))“之后完成的”...num2str (numPkt-1)“数据包,PER:”...num2str(packetErrorRate(的IMC,ISNR))],“”));结束结束
MCS: 9,信噪比5.5完成11包,之后每:1 MCS: 9,信噪比7完成后14包,每:0.78571 MCS: 9,信噪比8.5完成20包,每:0.55 MCS: 9,信噪比后10完成35包,每:0.31429 MCS: 9,信噪比11.5 70包完成后,每:0.15714 MCS: 9,信噪比13 100包完成后,每:0.08

绘制包错误率与SNR结果

标记='牛* SD ^ V> ;颜色=“bmcrgbrkymcrgbrkymc”;图;对于imcs = 1:numMCS semilogy(snrRanges{mcs(imcs)==validMCS},packetErrorRate(imcs,:)。' - '标记物(的IMC)颜色(的IMC)]);保持;结束网格;包含(“信噪比(dB)”);ylabel ('每');dataStr = arrayfun (@ (x) sprintf (“MCS % s”mcs, x)“UniformOutput”,假);图例(dataStr);标题('PER为DMG SC-PHY,TGay通道');

进一步的探索

在每个信噪比点测试的数据包数量由两个参数控制;maxNumErrorsmaxNumPackets。对于有意义的结果,建议这些值应该大于本例中给出的值。增加模拟包的数量可以比较不同场景下的PER。尝试改变MCS值并比较包的错误率。作为一个示例,下面的图是通过对所有单个载波MCS运行示例创建的PSDULength:8192字节,maxNumErrors:1000maxNumPackets:10000。

通过改变环境(“街峡谷热点”或“大酒店大堂”),用户配置,偏振类型,阵列配置,波束形成方法等探索TGay通道设置。在街道峡谷方案中,对象计算确定性光线到距地面和墙壁1阶反射。在酒店大堂的情况下,确定性光线到从地面,天花板和/或壁2阶反射。由于射线的附加反射时,PER结果通常优于上述从开放区域方案获得。

附录

这个例子使用了以下的帮助函数和对象:

选择的参考书目

  1. 信息技术IEEE标准。系统间电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网媒体访问控制(MAC)和物理层(PHY)规范。修改3:增强了60 GHz频段的高吞吐量。

  2. A. Maltsev等,IEEE 802.11ay信道模型,IEEE 802.11-15/1150r9, 2017年3月。