主要内容

802.11ac的包错误率模拟的8x8 TGAC通道

这个例子展示了如何使用带衰落TGac信道模型和加性高斯白噪声的端到端仿真来测量IEEE®802.11ac™VHT链路的包错误率。

介绍

在此示例中,端到端模拟用于确定802.11ac的数据包错误率[1在选定的信噪比点上使用衰落信道的VHT链路。在每个信噪比点,多个包通过信道传输,解调和PSDUs恢复。将PSDUs与传输的PSDUs进行比较,以确定包错误率和包错误率。包检测、定时同步、载波频偏校正和相位跟踪由接收机完成。对每个包的处理总结如下

这个例子还展示了如何议案循环可以使用而不是对于循环在模拟每个SNR点以加速模拟时。当议案功能,作为并行计算工具箱的一部分™,执行用于在各平行SNR处理以减少总模拟时间。

波形配置

在此示例中模拟了802.11ac的VHT传输。VHT格式配置对象,wlanVHTConfig,包含发送的格式特定的配置。该对象的属性包含所述配置。在该示例中,对象被配置用于80MHz信道带宽,8个发射天线,8空间时间流,没有空时分组编码和256-QAM速率-5/6(MCS 9)。

%为8Y-8 VHT传输创建格式配置对象cfgvht = wlanvhtconfig;cfgvht.channelbandwidth =“CBW80”%80 MHz通道带宽cfgVHT.NumTransmitAntennas = 8;%8发射天线cfgvht.numspacetimestreams = 8;% 8时空流cfgVHT.APEPLength = 3000;% APEP长度,以字节为单位cfgvht.mcs = 9;% 256 - qam rate-5/6

通道配置

在这个例子中一个TGAC的N- LOS信道模型使用具有延迟分布模型d。对于型号-d时发送器和接收器之间的距离大于或等于10米,该模型是NLOS。这在进一步描述wlanTGacChannel.本例中模拟了一个8x8的MIMO信道,因此指定了8个接收天线。

%创建并配置通道TGACCHANNEL = WLANTGACCHANNEL;tgacchannel.delayprofile ='型号-d';tgacchannel.numreceiveantennas = 8;tgacchannel.transmitreceivedistance = 10;在NLOS米距离%TGACCHANNEL.CHANNELBANDWIDTH = CFGVHT.CHANNELBANDWIDTH;tgacchannel.numtransmitantennas = cfgvht.numtransmitantennas;TGACCHANNEL.LARGESCALEFADEDEFFECT =“没有”

仿真参数

对于向量中的每个信噪比点信噪比产生若干数据包,通过一个通道并解调以确定数据包错误率。

信噪比= 40:5:50;

在每个SNR点测试的数据包数由两个参数控制:

  1. maxNumErrors是每个SNR点模拟的最大分组错误数。当数据包错误的数量达到此限制时,此SNR点处的仿真完成。

  2. maxNumPackets是在每个SNR点处模拟的最大数据包数,并限制模拟的长度如果未达到数据包错误限制。

在此示例中选择的数字将导致仿真非常短。有意义的结果,我们建议增加数字。

maxNumErrors = 10;%SNR点的最大分组错误数maxNumPackets = 100;SNR点处的最大数据包数

设置模拟的剩余变量。

%获取基带采样率FS = wlanSampleRate(cfgVHT);%获取OFDM信息OFDMINFO = WLANVHTOFDMINFO('vht-data', cfgVHT);%设置通道采样率tgacchannel.samplere = fs;对于时域包中访问的每个字段%指数印第安纳州= wlanFieldIndices (cfgVHT);

处理信噪比点

对于每个SNR点,测试了许多数据包,并计算数据包错误率。

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

  1. 一个PSDU被创建并被编码以创建单个数据包波形。

  2. 波形通过TGac信道模型的不同实现来传递。

  3. 在OFDM解调后,将AWGN加入到接收波形中,以产生所需的每子载波平均信噪比。当comm.awgnchannel.对象被配置为提供正确的SNR。配置占由接收天线的数目,并且在未使用的副载波的噪声能量被OFDM解调过程中除去所述通道内正常化。

  4. 检测到报文。

  5. 估计和校正粗载波频率偏移。

  6. 细定时同步被建立。设置在L-STF,L-LTF和L-SIG样品细定时,以允许在L-STF的开始或结束包的检测。

  7. 精细的载波频率偏移估计和校正。

  8. 从同步接收波形中提取VHT-LTF。对VHT-LTF进行OFDM解调并进行信道估计。

  9. VHT数据场从同步接收波形中提取。利用提取的域和信道估计恢复PSDU。

A.议案环路可用于并行处理信噪比点,因此对每个信噪比点创建一个AWGN信道并配置comm.awgnchannel.对象。能够使用并行计算以增加速度评论对于语句并取消注释议案下面的语句。

s = numel(SNR);packeterrorrate =零(s,1);%parfor i = 1:S %使用parfor加速模拟对于我= 1:s%使用“for”调试模拟每次迭代%设定随机子指数,以确保每个%迭代使用可重复的随机数Stream = RANDSTREAM(“combRecursive”“种子”, 0);流。Substream =我;RandStream.setGlobalStream(流);%模拟了每个SNR点创建AWGN通道的实例Awgnchannel = comm.awgnchannel;awgnchannel.noisemethod =“信噪比(SNR)”%归一化awgnChannel。SignalPower = 1 / tgacChannel.NumReceiveAntennas;%表示能量为零awgnChannel.SNR = SNR(I)-10 *日志10(ofdmInfo.FFTLength / ofdmInfo.NumTones);%循环来模拟多个包numpacketerrors = 0;numpkt = 1;传输的数据包%索引numpacketerrors <= maxnumerrors && numpkt <= maxnumpackets%生成报文波形txPSDU =兰迪([0 1],cfgVHT.PSDULength * 8,1);% PSDULength(字节)tx = wlanWaveformGenerator (txPSDU cfgVHT);%添加尾随零以允许通道延迟tx = [tx;0 (50, cfgVHT.NumTransmitAntennas)];% #好< AGROW >将波形通过衰落信道模型重置(tgacChannel);%为不同的实现复位信道RX = tgacChannel(TX);%添加噪声rx = awgnchannel(rx);%的分组检测和确定粗分组偏移coarsePktOffset = wlanPacketDetect(RX,cfgVHT.ChannelBandwidth);如果isempty (coarsePktOffset)%如果为空没有检测到L-STF;包错误numPacketErrors = numPacketErrors + 1;numpkt = numpkt + 1;继续%转到下一个循环迭代结束%提取L-STF并执行粗略频率偏移校正lstf = rx(coarsepktoffset +(ind.lstf(1):Ind.lstf(2)),:);coarsefreqoff = wlancoarsecfoestimate(lstf,cfgvht.channelbandwidth);rx = helperfrequencyOffset(RX,FS,-CoarseFreqoff);%提取非HT字段和确定细包偏移nonhtfields = rx (coarsePktOffset + (ind.LSTF (1): ind.LSIG (2)),:);finePktOffset = wlanSymbolTimingEstimate (nonhtfields,......cfgVHT.ChannelBandwidth);%确定最终分组偏移pktOffset = coarsePktOffset + finePktOffset;%如果数据包检测到否则预期延迟范围%信道建模;包错误如果pktOffset>50 numPacketErrors = numPacketErrors+1;numpkt = numpkt + 1;继续%转到下一个循环迭代结束%提取L-LTF并执行细频偏移校正L-LTF = RX(pktOffset +(ind.LLTF(1):ind.LLTF(2)),:);fineFreqOff = wlanFineCFOEstimate(L-LTF,cfgVHT.ChannelBandwidth);RX = helperFrequencyOffset(RX,FS,-fineFreqOff);从波形,解调%提取物VHT-LTF的样品和进行%信道估计数vhtltf = rx(pktoffset +(ind.vhtltf(1):Ind.vhtltf(2)),:);vhtltfdemod = wlanvhtltfdemodulate(vhtltf,cfgvht);获得单流信道估计chanEstSSPilots = vhtSingleStreamChannelEstimate(vhtltfDemod,cfgVHT);%信道估计CHANEST = wlanVHTLTFChannelEstimate(vhtltfDemod,cfgVHT);%来自于波形提取VHT数据样本vhtdata = rx(pktoffset +(ind.vhtdata(1):Ind.Vhtdata(2)),:);%估算在VHT数据字段中的噪声功率nvarvht = vhtnoiseestimate(vhtdata,chanestsspilots,cfgvht);%恢复VHT数据中传输的PSDUrxpsdu = wlanvhtdatarecover(vhtdata,chanest,nvarvht,cfgvht);%确定是否有错误,即数据包错误Packeterror =任何(Biterr(TXPSDU,RXPSDU));numpacketerrors = numpacketerrors + packeterror;numpkt = numpkt + 1;结束%计算信噪比点的包错误率packetErrorRate (i) = numPacketErrors / (numPkt-1);disp (['snr'num2str(SNR(i))的'完成后'......num2str(numpkt-1)'包,PER: '......num2str(packeterrorrate(i))]);结束
11包后完成SNR 40, PER: 1, 15包后完成SNR 45, PER: 0.73333, 100包后完成SNR 50, PER: 0.04

图包错误率与信噪比结果

图半径(SNR,Packeterrorrate,'-ob');网格;包含(“信噪比(dB)”);ylabel(“每”);标题('的802.11ac 80MHz的,MCS9,直接映射,8×8信道模型d-NLOS');

再探

在每个SNR点测试的数据包数由两个参数控制;maxNumErrorsmaxNumPackets.对于有意义的结果,建议这些值应该大于本例中给出的值。通过增加模拟数据包的数量,可以比较不同场景下的PER。尝试改变传输和接收配置,并比较包错误率。作为一个示例,下面的图是通过运行示例创建的maxNumErrors:1000和maxNumPackets: 10000。

附录

此示例使用以下辅助功能:

选定的参考书目

  1. IEEE STD 802.11AC™-2013信息技术的IEEE标准 - 系统之间的电信和信息交流 - 本地和大都市区域网络 - 特定要求 - 第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格 - 修正4:在6 GHz低于6 GHz的频段中操作的高吞吐量的增强功能。