主要内容

包复苏

收到数据包退化由于广播通道障碍。复苏的数据包内容需要符号定时和频率偏移校正,信道估计和解调和恢复的序言和负载。WLAN工具箱™函数VHT上执行这些操作,HT-mixed, non-HT PPDU字段。

VHT包复苏

这个例子展示了如何从VHT格式波形恢复的内容。

生成80 MHz VHT波形

创建一个VHT配置对象。集APEPLength3200年MCS5。创建一个传输比特流的数据字段。VHT波形,字段包含的数据PSDULength * 8位。

cfgVHT = wlanVHTConfig (“APEPLength”,3200,“主持人”5);txBits =兰迪([0,1],cfgVHT.PSDULength * 8, 1);

单独创建PPDU字段。创建L-STF、L-LTF L-SIG、VHT-SIG-A VHT-STF, VHT-LTF, VHT-SIG-B序言字段和VHT-Data字段。

lstf = wlanLSTF (cfgVHT);lltf = wlanLLTF (cfgVHT);lsig = wlanLSIG (cfgVHT);vhtSigA = wlanVHTSIGA (cfgVHT);vhtstf = wlanVHTSTF (cfgVHT);vhtltf = wlanVHTLTF (cfgVHT);vhtSigB = wlanVHTSIGB (cfgVHT);vhtData = wlanVHTData (txBits cfgVHT);

连接各个字段创建一个单一PPDU波形。

txPPDU = [lstf;lltf;lsig;vhtSigA;vhtstf;vhtltf;vhtSigB;vhtData];

VHT波形通过TGac输出通道

创建TGac输出和AWGN信道对象。

chBW = cfgVHT.ChannelBandwidth;fs = 80 e6;tgac = wlanTGacChannel (“SampleRate”fs,“ChannelBandwidth”chBW,“LargeScaleFadingEffect”,“Pathloss和阴影”);awgnChan = comm.AWGNChannel (“NoiseMethod”,“方差”,“VarianceSource”,输入端口的);

计算接收机的噪声方差与图9分贝噪音。噪声方差,noiseVar等于kTBF, k是玻尔兹曼常数,T的环境温度290 k, B是带宽(采样率)和F是接收机噪声图。通过波形通过噪声TGac渠道传播。

noiseVar = 10 ^ ((-228.6 + 10 * log10 (290) + 10 * log10 (fs) + 9) / 10)
noiseVar = 2.5438 e-12
rxPPDU = awgnChan (tgac (txPPDU) noiseVar);

从PPDU恢复VHT序言内容

一般来说,L-STF和L-LTF执行频率偏移估计和校正处理,和符号定时。对于这个示例,载波频率不是抵消包时间是准时的。因此,对于准确解调,载波频率偏移量的确定和象征时间不是必需的。

发现的启动和停止指数PPDU字段。

fieldInd = wlanFieldIndices (cfgVHT)
fieldInd =结构体字段:LSTF: [640] LLTF: 1280年[641]LSIG: 1600年[1281]VHTSIGA: 2240年[1601]VHTSTF: 2560年[2241]VHTLTF: 2880年[2561]VHTSIGB: 3200年[2881]VHTData: (3201 12160)

停止VHT-SIG-B指数表明样品的序言长度。

numSamples = fieldInd.VHTSIGB (2);

情节开头和分组数据的开始。添加标记和情节描绘包领域的边界。

时间=([0:双(numSamples) 1] / fs) * 1 e6;峰= 1.2 *马克斯(abs (rxPPDU (1: numSamples)));fieldMarkers = 0 (numSamples, 1);fieldMarkers (fieldInd.LSTF(2) 1,1) =峰值;fieldMarkers (fieldInd.LLTF(2) 1,1) =峰值;fieldMarkers (fieldInd.LSIG(2) 1,1) =峰值;fieldMarkers (fieldInd.VHTSIGA(2) 1,1) =峰值;fieldMarkers (fieldInd.VHTSTF(2) 1,1) =峰值;fieldMarkers (fieldInd.VHTLTF(2) 1,1) =峰值;fieldMarkers (fieldInd.VHTSIGB(2) 1,1) =峰值; plot(time,abs(rxPPDU(1:numSamples)),time,fieldMarkers) xlabel (的时间(毫秒))ylabel (“级”)标题(“VHT序言”)

图包含一个坐标轴对象。坐标轴对象与标题VHT序言包含2线类型的对象。

解调L-LTF和估计信道。

rxLLTF = rxPPDU (fieldInd.LLTF (1): fieldInd.LLTF (2):);demodLLTF = wlanLLTFDemodulate (rxLLTF cfgVHT);chEstLLTF = wlanLLTFChannelEstimate (demodLLTF cfgVHT);

从收到PPDU提取L-SIG领域,恢复其位并检查CRC的信息。

rxLSIG = rxPPDU (fieldInd.LSIG (1): fieldInd.LSIG (2):);[recLSIG, failCRC] = wlanLSIGRecover (rxLSIG、chEstLLTF noiseVar, chBW);failCRC
failCRC =逻辑0

failCRC = 0表明CRC过去了。

VHT格式,L-SIG比特率是常数和设置(1 1 0 1)。检查L-SIG速度信息和确认这个常数序列恢复。VHT格式,MCS设置VHT-SIG-A2决定实际的数据速率。

率= recLSIG (1:4) '
率=1 x4 int8行向量1 1 0 1

提取VHT-SIG-A并确认CRC校验通过。

rxVHTSIGA = rxPPDU (fieldInd.VHTSIGA (1): fieldInd.VHTSIGA (2):);[recVHTSIGA, failCRC] = wlanVHTSIGARecover (rxVHTSIGA,chEstLLTF、noiseVar chBW);failCRC
failCRC =逻辑0

提取从VHT-SIG-A MCS设置。对于单用户VHT, MCS位于VHT-SIG-A2位4到7。

recMCSbits = (recVHTSIGA (29:32)) ';recMCS = bi2de(双(recMCSbits))
recMCS = 5
isequal (recMCS cfgVHT.MCS)
ans =逻辑1

恢复MCS设置匹配MCS配置对象的价值。

提取和解调VHT-LTF。使用解调信号进行信道估计。使用通道估计恢复VHT-SIG-B和VHT-Data字段。

rxVHTLTF = rxPPDU (fieldInd.VHTLTF (1): fieldInd.VHTLTF (2):);demodVHTLTF = wlanVHTLTFDemodulate (rxVHTLTF cfgVHT);chEstVHTLTF = wlanVHTLTFChannelEstimate (demodVHTLTF cfgVHT);

提取和恢复VHT-SIG-B。

rxVHTSIGB = rxPPDU (fieldInd.VHTSIGB (1): fieldInd.VHTSIGB (2):);recVHTSIGB = wlanVHTSIGBRecover (rxVHTSIGB chEstVHTLTF、noiseVar chBW);

在IEEE Std 802.11所述ac - 2013,表22-1 VHT-SIG-B长度字段中的值的恢复APEP长度乘以4等于数据包携带数据。验证APEP长度,包含在第一个VHT-SIG-B 19位,对应于指定的APEP长度。

sigbAPEPbits = recVHTSIGB (19)”;sigbAPEPlength = bi2de(双(sigbAPEPbits)) * 4
sigbAPEPlength = 3200
isequal (sigbAPEPlength cfgVHT.APEPLength)
ans =逻辑1

恢复值匹配的配置APEP长度。

恢复平衡的符号使用VHT-LTF信道估计。

recPSDU = wlanVHTDataRecover (rxPPDU (fieldInd.VHTData (1): fieldInd.VHTData (2):),chEstVHTLTF、noiseVar cfgVHT);

传输和接收PSDU位进行比较。

numErr = biterr (txBits recPSDU)
numErr = 0

一些错误的数量是零。

HT包复苏

这个例子展示了如何从一个HT-format波形恢复内容。

生成20 MHz HT波形

创建一个HT和传输PSDU配置对象。集MCS2。HT波形,数据字段PSDULength * 8位。

cfgHT = wlanHTConfig (“主持人”2);txPSDU =兰迪([0,1],cfgHT.PSDULength * 8, 1);

单独创建PPDU字段。创建L-STF、L-LTF L-SIG、HT-SIG HT-STF, HT-LTF序言字段和HT-Data字段。

lstf = wlanLSTF (cfgHT);lltf = wlanLLTF (cfgHT);lsig = wlanLSIG (cfgHT);htsig = wlanHTSIG (cfgHT);htstf = wlanHTSTF (cfgHT);htltf = wlanHTLTF (cfgHT);htData = wlanHTData (txPSDU cfgHT);

连接各个字段创建一个单一PPDU波形。

txPPDU = [lstf;lltf;lsig;htsig;htstf;htltf;htData];

HT波形通过TGn输出通道

创建TGn输出通道和AWGN信道对象。

fs = 20 e6;tgnChan = wlanTGnChannel (“SampleRate”fs,“LargeScaleFadingEffect”,“Pathloss和阴影”);awgnChan = comm.AWGNChannel (“NoiseMethod”,“方差”,“VarianceSource”,输入端口的);

计算接收机的噪声方差与图9分贝噪音。噪声方差,noiseVar等于kTBF, k是玻尔兹曼常数,T的环境温度290 k, B是带宽(采样率)和F是接收机噪声图。通过波形通过噪声TGn渠道传播。

noiseVar = 10 ^ ((-228.6 + 10 * log10 (290) + 10 * log10 (fs) + 9) / 10);rxPPDU = awgnChan (tgnChan (txPPDU) noiseVar);

恢复从PPDU HT序言内容

一般来说,L-STF和L-LTF执行频率偏移估计和校正处理,和符号定时。对于这个示例,载波频率不是抵消包时间是准时的。因此,对于准确解调,载波频率偏移量的确定和象征时间不是必需的。

发现的启动和停止指数PPDU字段。

fieldInd = wlanFieldIndices (cfgHT)
fieldInd =结构体字段:LSTF: [160] LLTF: 320年[161]LSIG: 400年[321]HTSIG: 560年[401]HTSTF: 640年[561]HTLTF: 720年[641]HTData: (721 9200)

停止HT-LTF指数表明样品的序言长度。

numSamples = fieldInd.HTLTF (2);

情节开头和分组数据的开始。添加标记和情节描绘包领域的边界。

时间=([0:双(numSamples) 1] / fs) * 1 e6;峰= 1.2 *马克斯(abs (rxPPDU (1: numSamples)));fieldMarkers = 0 (numSamples, 1);fieldMarkers (fieldInd.LSTF(2) 1,1) =峰值;fieldMarkers (fieldInd.LLTF(2) 1,1) =峰值;fieldMarkers (fieldInd.LSIG(2) 1,1) =峰值;fieldMarkers (fieldInd.HTSIG(2) 1,1) =峰值;fieldMarkers (fieldInd.HTSTF(2) 1,1) =峰值;fieldMarkers (fieldInd.HTLTF(2) 1,1) =峰值;情节(时间、abs (rxPPDU (1: numSamples)),时间,fieldMarkers)包含(的时间(毫秒))ylabel (“级”)标题(“HT格式序言”)

图包含一个坐标轴对象。坐标轴对象与标题HT格式中包含2线类型的对象。

解调L-LTF和估计信道。

rxLLTF = rxPPDU (fieldInd.LLTF (1): fieldInd.LLTF (2):);demodLLTF = wlanLLTFDemodulate (rxLLTF cfgHT);chEstLLTF = wlanLLTFChannelEstimate (demodLLTF cfgHT);

从收到PPDU提取L-SIG字段和恢复信息。

rxLSIG = rxPPDU (fieldInd.LSIG (1): fieldInd.LSIG (2):);[recLSIG, failCRC] = wlanLSIGRecover (rxLSIG、chEstLLTF noiseVar, cfgHT.ChannelBandwidth);failCRC
failCRC =逻辑0

failCRC = 0表明CRC过去了。

HT格式,L-SIG比特率是常数和设置(1 1 0 1)。检查L-SIG速度信息和确认这个常数序列恢复。HT格式,MCS设置HT-SIG决定实际的数据速率。

率= recLSIG (1:4) '
率=1 x4 int8行向量1 1 0 1

提取HT-SIG并确认CRC校验通过。

recHTSIG = rxPPDU (fieldInd.HTSIG (1): fieldInd.HTSIG (2):);[recHTSIG, failCRC] = wlanHTSIGRecover (recHTSIG、chEstLLTF noiseVar, cfgHT.ChannelBandwidth);failCRC
failCRC =逻辑0

提取从HT-SIG MCS设置。HT的MCS位于HT-SIG位0到6。

recMCSbits = (recHTSIG (1:7)) ';recMCS = bi2de(双(recMCSbits))
recMCS = 2
isequal (recMCS cfgHT.MCS)
ans =逻辑1

恢复MCS设置匹配MCS配置对象的价值。

提取和解调HT-LTF。使用解调信号进行信道估计。使用通道估计恢复HT-Data字段。

rxHTLTF = rxPPDU (fieldInd.HTLTF (1): fieldInd.HTLTF (2):);demodHTLTF = wlanHTLTFDemodulate (rxHTLTF cfgHT);chEstHTLTF = wlanHTLTFChannelEstimate (demodHTLTF cfgHT);

恢复从PPDU HT-Data内容

恢复了平衡的符号使用HT-LTF信道估计。

[recPSDU] = wlanHTDataRecover (rxPPDU (fieldInd.HTData (1): fieldInd.HTData (2):),chEstHTLTF、noiseVar cfgHT);

比较PSDU比特发送和接收,并确认一些错误的数量是零。

numErr = biterr (txPSDU recPSDU)
numErr = 0

Non-HT包复苏

这个例子的步骤通过non-HT-format波形恢复的内容。

生成20 MHz Non-HT波形

创建一个non-HT配置对象和PSDU传播。集MCS4non-HT波形、数据字段PSDULength * 8位。

cfgNonHT = wlanNonHTConfig (“主持人”4);txPSDU =兰迪([0,1],cfgNonHT.PSDULength * 8, 1);

单独创建PPDU字段。使用non-HT-Data内容检查复苏后的比特误码率。创建L-STF、L-LTF L-SIG序言字段和non-HT数据字段。

lstf = wlanLSTF (cfgNonHT);lltf = wlanLLTF (cfgNonHT);lsig = wlanLSIG (cfgNonHT);nhtData = wlanNonHTData (txPSDU cfgNonHT);

连接各个字段创建一个单一PPDU波形。

txPPDU = [lstf;lltf;lsig;nhtData];

Non-HT波形通过802.11 g的输出通道

计算空间路径损耗transmitter-to-receiver分离3米的距离。创建一个802.11 g通道3赫兹最大的多普勒频移和RMS路径延迟等于两倍样品时间。创建一个AWGN信道。

dist = 3;pathLoss = 10 ^ (log10(4 *π* dist * (2.4 e9/3e8)));fs = 20 e6;trm = 2 / fs;maxDoppShift = 3;ch802 = comm.RayleighChannel (“SampleRate”fs,“MaximumDopplerShift”maxDoppShift,“PathDelays”trm);awgnChan = comm.AWGNChannel (“NoiseMethod”,“方差”,“VarianceSource”,输入端口的);

计算接收机的噪声方差与图9分贝噪音。噪声方差,noiseVar等于kTBF, k是玻尔兹曼常数,T的环境温度290 k, B是带宽(采样率)和F是接收机噪声图。通过传播波形通过吵闹,有损802.11 g通道。

noiseVar = 10 ^ ((-228.6 + 10 * log10 (290) + 10 * log10 (fs) + 9) / 10);rxPPDU = awgnChan (ch802 (txPPDU) noiseVar) * pathLoss;

从PPDU恢复Non-HT序言内容

一般来说,L-STF和L-LTF执行频率偏移估计和校正处理,和符号定时。对于这个示例,载波频率不是抵消包时间是准时的。因此,对于准确解调,载波频率偏移量的确定和象征时间不是必需的。

发现的启动和停止指数PPDU字段。

fieldInd = wlanFieldIndices (cfgNonHT)
fieldInd =结构体字段:LSTF: [160] LLTF: 320年[161]LSIG: 400年[321]NonHTData: (401 7120)

停止指数L-SIG指出序言长度的样品。

numSamples = fieldInd.LSIG (2);

情节开头和分组数据的开始。添加标记和情节描绘包领域的边界。

时间=((0:双(numSamples) 1) / fs) * 1 e6;峰= 1.2 *马克斯(abs (rxPPDU (1: numSamples)));fieldMarkers = 0 (numSamples, 1);fieldMarkers (fieldInd.LSTF(2) 1,1) =峰值;fieldMarkers (fieldInd.LLTF(2) 1,1) =峰值;fieldMarkers (fieldInd.LSIG(2) 1,1) =峰值;情节(时间、abs (rxPPDU (1: numSamples)),时间,fieldMarkers)包含(的时间(毫秒))ylabel (“级”)标题(“序言Non-HT格式”)

图包含一个坐标轴对象。坐标轴对象与标题Non-HT格式中包含2线类型的对象。

解调L-LTF和估计信道。

rxLLTF = rxPPDU (fieldInd.LLTF (1): fieldInd.LLTF (2):);demodLLTF = wlanLLTFDemodulate (rxLLTF cfgNonHT);chEstLLTF = wlanLLTFChannelEstimate (demodLLTF cfgNonHT);

从收到PPDU提取L-SIG字段和恢复信息。

rxLSIG = rxPPDU (fieldInd.LSIG (1): fieldInd.LSIG (2):);recLSIG = wlanLSIGRecover (rxLSIG chEstLLTF noiseVar,“CBW20”);

前四位L-SIG场,位0到3,包含的信息。确认顺序[1 0 0 1]是恢复。这个序列对应于24 MHz non-HT MCS设置的数据速率4

率= recLSIG (1:4) '
率=1 x4 int8行向量1 0 0 1

提取和解调L-LTF。使用解调信号进行信道估计。使用通道估计恢复non-HT-Data字段。

rxLLTF = rxPPDU (fieldInd.LLTF (1): fieldInd.LLTF (2):);demodLLTF = wlanLLTFDemodulate (rxLLTF cfgNonHT);chEstLLTF = wlanLLTFChannelEstimate (demodLLTF cfgNonHT);

恢复从PPDU Non-HT-Data内容

从HT-LTF恢复平衡的符号使用信道估计,指定zero-forcing均衡方法。

rxPSDU = rxPPDU (fieldInd.NonHTData (1): fieldInd.NonHTData (2):);[recPSDU ~, eqSym] = wlanNonHTDataRecover (rxPSDU、chEstLLTF noiseVar, cfgNonHT,“EqualizationMethod”,“ZF”);

比较PSDU比特发送和接收,并确认一些错误的数量是零。

numErr = biterr (txPSDU recPSDU)
numErr = 0

另请参阅

||

相关的话题