802.11n的数据包错误率仿真2x2的TGn的通道

这个例子展示了如何使用的端至端仿真与衰落TGn的信道模型,并加性高斯白噪声测量的IEEE®的802.11n HT™链路的分组错误率。

介绍

在此实例中的端 - 端模拟用来确定用于一个802.11n HT的分组错误率[1]与衰落信道在一个选择的SNR点联系起来。在每个SNR点的多个分组通过一个信道传输,解调和PSDUs回收。的PSDUs进行比较,那些发送给确定分组错误的数目并且因此分组错误率。分组检测,定时同步,载波频率偏移校正和相位跟踪由接收器来执行。每个数据包的处理总结于下图。

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

波形配置

一个802.11n HT传输模拟在这个例子。HT格式配置对象包含发送的格式特定配置。该目的是使用所创建的wlanHTConfig功能。该对象的属性包含所述配置。在该示例中,对象被配置用于20MHz信道带宽,2个发射天线,2个空间时间流和无时空块编码。

%为一个2×2 HT传输创建格式配置对象cfgHT = wlanHTConfig;cfgHT.ChannelBandwidth ='CBW20';%20MHz信道带宽cfgHT.NumTransmitAntennas = 2;%2个发射天线cfgHT.NumSpaceTimeStreams = 2;%2空间时间流cfgHT.PSDULength = 1000;%以字节为单位的长度PSDUcfgHT.MCS = 15;%2个空间流,64-QAM速率-5/6cfgHT.ChannelCoding ='BCC';%BCC信道编码

通道配置

在这个例子中一个TGn的N-二LOS信道模型使用具有延迟分布模型-B。对于模型B时的发射器和接收器之间的距离大于或等于五米,该模型是NLOS。这在进一步描述wlanTGnChannel

%创建和配置信道tgnChannel = wlanTGnChannel;tgnChannel.DelayProfile ='型号-B';tgnChannel.NumTransmitAntennas = cfgHT.NumTransmitAntennas;tgnChannel.NumReceiveAntennas = 2;tgnChannel.TransmitReceiveDistance = 10;在NLOS米距离%tgnChannel.LargeScaleFadingEffect ='没有';

仿真参数

对于向量中的每个SNR点SNR生成多个数据包时,通过一个信道传递和解调,以确定该分组错误率。

SNR = 25:10:45;

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

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

  2. maxNumPackets是在每个SNR点模拟数据包的最大数目,并且限制了仿真的长度,如果未达到该分组的误差极限。

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

maxNumPEs = 10;%的分组错误在SNR点的最大数目maxNumPackets = 100;在SNR点分组的%最大数量

设置模拟尚存变数。

%获取基带采样率FS = wlanSampleRate(cfgHT);%获取OFDM信息ofdmInfo = wlanHTOFDMInfo('HT-数据',cfgHT);%设置信道的采样率tgnChannel.SampleRate = FS;对于时域包中访问的每个字段%指数IND = wlanFieldIndices(cfgHT);

处理SNR点

对于每个SNR点分组的数目进行了测试,包错误率计算。

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

  1. 甲PSDU被创建并编码以创建单个分组波形。

  2. 波形是通过一个不同的实现TGn的信道模型的传递。

  3. AWGN被添加到所接收到的波形来创建OFDM解调之后每个副载波的期望的平均SNR。comm.AWGNChannel被配置为提供正确的SNR。配置占由接收天线的数目,并且在未使用的副载波的噪声能量被OFDM解调过程中除去所述通道内正常化。

  4. 检测到包。

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

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

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

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

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

一个PARFOR环路可用于并行化SNR点的处理,因此对于每个SNR点AWGN信道被创建并与被配置comm.AWGNChannel。为了能够使用并行计算的对“的”语句和下面取消注释“PARFOR”语句出增加的速度评论。

S = numel(SNR);packetErrorRate =零(S,1);%PARFOR I = 1:S%使用 'PARFOR' 来加速仿真对于I = 1:S%用途“为”调试仿真每次迭代%设定随机子指数,以确保每个%迭代使用可重复的随机数集流= RandStream('combRecursive''种子',0);stream.Substream = I;RandStream.setGlobalStream(流);%创建模拟每SNR点的AWGN信道的一个实例awgnChannel = comm.AWGNChannel;awgnChannel.NoiseMethod =“信噪比(SNR)”;%归awgnChannel.SignalPower = 1 / tgnChannel.NumReceiveAntennas;在空能量%的账户awgnChannel.SNR = SNR(I)-10 *日志10(ofdmInfo.FFTLength / ofdmInfo.NumTones);%循环来模拟多个包numPacketErrors = 0;N = 1;分组的索引%发送numPacketErrors <= maxNumPEs && N <= maxNumPackets%生成波形包txPSDU =兰迪([0 1],cfgHT.PSDULength * 8,1);%PSDULength字节TX = wlanWaveformGenerator(txPSDU,cfgHT);%添加尾随零,以允许信道滤波器延迟TX = [TX;零(15,cfgHT.NumTransmitAntennas)];%#确定%通过TGn的信道模型通过波形复位(tgnChannel);%为不同的实现复位信道RX = tgnChannel(TX);%添加杂色RX = awgnChannel(RX);%的分组检测和确定粗分组偏移coarsePktOffset = wlanPacketDetect(RX,cfgHT.ChannelBandwidth);如果的isEmpty(coarsePktOffset)%如果没有空L-STF检测;包错误numPacketErrors = numPacketErrors + 1;N = N + 1;继续;%进入下一个循环迭代结束%提取物L-STF和执行粗略频率偏移校正L-STF = RX(coarsePktOffset +(ind.LSTF(1):ind.LSTF(2)),:);coarseFreqOff = wlanCoarseCFOEstimate(L-STF,cfgHT.ChannelBandwidth);RX = helperFrequencyOffset(RX,FS,-coarseFreqOff);%提取非HT字段和确定细包偏移nonhtfields = RX(coarsePktOffset +(ind.LSTF(1):ind.LSIG(2)),:);finePktOffset = wlanSymbolTimingEstimate(nonhtfields,...cfgHT.ChannelBandwidth);%确定最终分组偏移pktOffset = coarsePktOffset + finePktOffset;%如果分组中检测outwith从预期延迟的范围%的信道建模;包错误如果pktOffset> 15个numPacketErrors = numPacketErrors + 1;N = N + 1;继续;%进入下一个循环迭代结束%提取物L-LTF和进行精细频率偏移校正L-LTF = RX(pktOffset +(ind.LLTF(1):ind.LLTF(2)),:);fineFreqOff = wlanFineCFOEstimate(L-LTF,cfgHT.ChannelBandwidth);RX = helperFrequencyOffset(RX,FS,-fineFreqOff);从波形,解调%提取物HT-LTF的样品和进行%的信道估计HTLTF = RX(pktOffset +(ind.HTLTF(1):ind.HTLTF(2)),:);htltfDemod = wlanHTLTFDemodulate(HTLTF,cfgHT);CHANEST = wlanHTLTFChannelEstimate(htltfDemod,cfgHT);%来自于波形提取HT数据样本htdata = RX(pktOffset +(ind.HTData(1):ind.HTData(2)),:);%估算在HT数据字段中的噪声功率nVarHT = htNoiseEstimate(htdata,CHANEST,cfgHT);%恢复在HT数据发送的PSDUrxPSDU = wlanHTDataRecover(htdata,CHANEST,nVarHT,cfgHT);%确定是否有任何位是错误的,即一个数据包错误packetError =任何(biterr(txPSDU,rxPSDU));numPacketErrors = numPacketErrors + packetError;N = N + 1;结束%计算的分组错误率(PER)在SNR点packetErrorRate(ⅰ)= numPacketErrors /(N-1);DISP(['SNR'num2str(SNR(i))的...“之后完成”num2str第(n-1)“包”...'PER:'num2str(packetErrorRate(I))]);结束
SNR 25后11个包完成,PER:1 SNR 35后45个分组完成,PER:0.24444 SNR 45 100个数据包之后完成,PER:0.01

绘制包错误率与SNR结果

数字;semilogy(SNR,packetErrorRate,'-Ob');格;xlabel('SNR [dB]的');ylabel('每');标题('802.11n的20MHz时,MCS15,直接映射,2×2信道模型B-NLOS');

再探

在每个SNR点由两个参数来控制测试数据包的数量;maxNumPEsmaxNumPackets。为有意义的结果,推荐的是,这些值应该比那些在本例中呈现大。增加模拟数据包的数量可以在不同情况下的PER进行比较。尝试改变传送编码方案LDPC和比较数据包错误率。作为一个实例,下图是由运行示例中创建maxNumPEs:200maxNumPackets:10000,用四种不同的配置;的1x1和2x2与BCC和LDPC编码。

附录

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

选择的参考书目

  1. IEEE标准802.11™-2012 IEEE信息技术标准 - 本地和城域网 - - 具体要求 - 第11部分系统间远程通信和信息交换:无线局域网媒体访问控制(MAC)和物理层(PHY)规格。