主要内容

802.11 n包错误率模拟2 x2 TGn通道

这个例子展示了如何衡量包错误率的IEEE®802.11 n™HT与衰落TGn通道链接使用一个端到端的模拟模型和加性高斯白噪声。

介绍

在这个例子中一个端到端的模拟用于确定数据包出错率为802.11 n HT (1与一个衰落信道信噪比的选择。在每一个信噪比点多个数据包通过一个通道传输,解调和PSDUs恢复。PSDUs相比那些传播决定数据包的数量错误,因此包错误率。数据包检测、定时同步、载波频率偏移校正和相位跟踪正在执行的接收器。每个数据包的处理归纳为如下图。

这个示例还演示了如何parfor循环可以代替使用循环时模拟每一个信噪比点加速模拟。的parfor函数,作为并行计算工具箱的一部分™,执行并行处理每个信噪比降低总的仿真时间。

波形的配置

一个802.11 n HT传输模拟。HT格式配置对象,wlanHTConfig包含的特定配置传输的格式。对象包含的属性配置。在本例中20 MHz的对象配置信道带宽,传输天线,2时空流,没有时空块编码。

%创建一个2×2 HT传输格式配置对象cfgHT = wlanHTConfig;cfgHT。ChannelBandwidth =“CBW20”;% 20 MHz带宽通道cfgHT。NumTransmitAntennas = 2;% 2传输天线cfgHT。NumSpaceTimeStreams = 2;% 2时空流cfgHT。PSDULength = 1000;% PSDU长度字节cfgHT。MCS = 15;% 2的空间流,64 - qam rate-5/6cfgHT。ChannelCoding =“* *”;% BCC信道编码

通道配置

在这个例子TGn N-LOS通道模型使用延迟概要b型。为b型,当发射机和接收机之间的距离大于或等于5米,模型是仿真结果。这是进一步描述wlanTGnChannel

%创建和配置通道tgnChannel = wlanTGnChannel;tgnChannel。DelayProfile =“b型”;tgnChannel。NumTransmitAntennas = cfgHT.NumTransmitAntennas;tgnChannel。NumReceiveAntennas = 2;tgnChannel。TransmitReceiveDistance = 10;%在米距离了仿真结果tgnChannel。LargeScaleFadingEffect =“没有”;tgnChannel。NormalizeChannelOutputs = false;

仿真参数

为每一个信噪比点的向量信噪比生成的数据包数量,通过一个通道和确定包错误率解调技术。

信噪比= 25:10:45;

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

  1. maxNumPEs是模拟在每个数据包的最大数量错误信噪比。当数据包错误的数量达到这个极限,模拟在这个信噪比点完成。

  2. maxNumPackets在每个数据包的最大数量模拟信噪比点和限制的长度模拟如果数据包误差范围没有达到。

选择的数量在这个例子将导致非常短的模拟。有意义的结果,我们建议增加数量。

maxNumPEs = 10;%的最大数据包数量错误的信噪比maxNumPackets = 100;%的最大数据包数量的信噪比

设置剩余变量的模拟。

%得到基带采样率fs = wlanSampleRate (cfgHT);%的OFDM信息ofdmInfo = wlanHTOFDMInfo (“HT-Data”,cfgHT);%设置通道的采样率tgnChannel。SampleRate = f;%访问时域数据包中的每个字段的索引印第安纳州= wlanFieldIndices (cfgHT);

处理信噪比点

为每一个信噪比点的数据包数量进行测试,计算包错误率。

为每一个包发生以下处理步骤:

  1. 创建一个PSDU和编码创建一个包波形。

  2. 波形通过不同TGn信道模型的实现。

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

  4. 检测到数据包。

  5. 粗糙的载波频率偏移估计和修正。

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

  7. 载波频率偏移估计和修正。

  8. HT-LTF从同步接收波形中提取。HT-LTF OFDM解调和信道估计。

  9. HT数据字段从同步接收波形中提取。PSDU恢复使用提取的字段和信道估计。

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

S =元素个数(信噪比);packetErrorRate = 0(年代,1);% parfor i = 1: S %使用parfor加快仿真i = 1: S%使用‘为’调试仿真%设置随机substream每迭代确保每个索引%迭代使用一组可重复的随机数字流= RandStream (“combRecursive”,“种子”,0);流。Substream =我;RandStream.setGlobalStream(流);%噪声能量占null信噪比是每个定义的%活跃副载波packetSNR =信噪比(i) -10 * log10 (ofdmInfo.FFTLength / ofdmInfo.NumTones);%循环模拟多个数据包numPacketErrors = 0;n = 1;%指数数据包传输numPacketErrors < = n < = maxNumPackets maxNumPEs & &%生成一个数据包波形txPSDU =兰迪([0,1],cfgHT.PSDULength * 8, 1);% PSDULength以字节为单位tx = wlanWaveformGenerator (txPSDU cfgHT);% 0添加到允许延迟通道过滤器tx = [tx;cfgHT.NumTransmitAntennas 0(15日)];% #好< AGROW >%通过波形通过TGn信道模型重置(tgnChannel);%重置渠道不同的实现rx = tgnChannel (tx);%添加噪声rx = awgn (rx, packetSNR);%包检测和确定粗包抵消cfgHT.ChannelBandwidth coarsePktOffset = wlanPacketDetect (rx);如果isempty (coarsePktOffset)%如果空没有L-STF检测;包错误numPacketErrors = numPacketErrors + 1;n = n + 1;继续;%去下一个循环迭代结束%提取L-STF并执行粗频率偏移校正lstf = rx (coarsePktOffset + (ind.LSTF (1): ind.LSTF (2)),:);coarseFreqOff = wlanCoarseCFOEstimate (lstf cfgHT.ChannelBandwidth);rx = frequencyOffset (rx, fs -coarseFreqOff);%提取non-HT领域并确定好包抵消nonhtfields = rx (coarsePktOffset + (ind.LSTF (1): ind.LSIG (2)),:);finePktOffset = wlanSymbolTimingEstimate (nonhtfields,cfgHT.ChannelBandwidth);%确定最终包抵消pktOffset = coarsePktOffset + finePktOffset;%如果给予包检测的范围预计延误的%信道建模;包错误如果pktOffset > 15 numPacketErrors = numPacketErrors + 1;n = n + 1;继续;%去下一个循环迭代结束%提取L-LTF并执行好频率偏移校正lltf = rx (pktOffset + (ind.LLTF (1): ind.LLTF (2)),:);fineFreqOff = wlanFineCFOEstimate (lltf cfgHT.ChannelBandwidth);rx = frequencyOffset (rx, fs -fineFreqOff);%从波形中提取HT-LTF样本,解调并执行%信道估计htltf = rx (pktOffset + (ind.HTLTF (1): ind.HTLTF (2)),:);htltfDemod = wlanHTLTFDemodulate (htltf cfgHT);陈= wlanHTLTFChannelEstimate (htltfDemod cfgHT);%从波形中提取HT数据样本htdata = rx (pktOffset + (ind.HTData (1): ind.HTData (2)),:);%估计噪声功率在HT数据字段nVarHT = htNoiseEstimate (htdata,成龙,cfgHT);%恢复PSDU HT数据传输rxPSDU = wlanHTDataRecover (htdata,成龙、nVarHT cfgHT,“LDPCDecodingMethod”,“norm-min-sum”);%确定任何比特错误,即数据包错误packetError =任何(biterr (txPSDU rxPSDU));numPacketErrors = numPacketErrors + packetError;n = n + 1;结束%计算包错误率在信噪比点(/)packetErrorRate (i) = numPacketErrors / (n - 1);disp ([“信噪比”num2str(信噪比(i))完成后的num2str (n - 1)“包”,“每:”num2str (packetErrorRate (i))));结束
信噪比25完成11包,之后每:1信噪比35完成后45包,每:0.24444信噪比45 100包完成后,每:0.01

图包误码率与信噪比的结果

图;packetErrorRate semilogy(信噪比,“ob”);网格;包含(“信噪比(dB)”);ylabel (“每”);标题(“802.11 n 20 mhz, MCS15,直接映射,2 x2通道模型B-NLOS”);

进一步的探索

数据包的数量在每个信噪比测试点是由两个参数控制;maxNumPEsmaxNumPackets。为有意义的结果建议这些值应该比那些在这个例子。增加数据包的数量模拟允许每个不同场景下进行比较。试着改变传输编码方案方法,并比较包错误率。作为一个例子,下面的图是由运行的例子maxNumPEs:200,maxNumPackets:10000年,有四个不同的配置;1 2 x1和x2 BCC和LDPC编码。

附录

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

选定的参考书目

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