主要内容

基本VHT数据恢复

本示例展示如何执行基本的VHT数据恢复。它还展示了如何恢复VHT数据时,接收信号有载波频率偏移。可以使用类似的程序恢复HT和非HT格式的数据。

基础数据恢复

WLAN工具箱™提供了生成和恢复IEEE®802.11ac™标准兼容波形的功能。数据恢复过程包括以下步骤。

  1. 生成VHT波形

  2. 通过一个通道传递波形

  3. 提取VHT-LTF并解调

  4. 利用解调后的VHT-LTF估计信道

  5. 提取数据字段

  6. 利用信道和噪声方差估计恢复数据

框图显示了这些步骤以及相应的命令。

创建VHT配置对象。

cfg = wlanVHTConfig;

使用VHT配置对象创建VHT传输波形。设置数据序列为[1, 0, 1, 1).波形发生器功能重复数据序列以生成指定数量的数据包。

txSig = wlanWaveformGenerator([1;0;1;1],cfg);

将接收到的信号通过AWGN通道传递。

rxSig = awgn(txSig,10);

确定波形的场指数。

ind = wlanFieldIndices(cfg);

从接收到的信号中提取VHT-LTF。

rxhtltf = rxSig(ind.VHTLTF(1):ind.VHTLTF(2),:);

解调VHT-LTF。利用解调信号估计信道响应。

demodVHTLTF = wlanVHTLTFDemodulate(rxVHTLTF,cfg);chEst = wlanVHTLTFChannelEstimate(demodVHTLTF,cfg);

提取VHT数据字段。

rxData = rxSig(ind.VHTData(1):ind.VHTData(2),:);

利用信道和噪声方差估计恢复信息位。的输入数据序列的前8位匹配两次重复[1, 0, 1, 1)

rxBits = wlanVHTDataRecover(rxData,chEst,0.1,cfg);rxBits (1:8)
ans =8x1 int8列向量1 0 1 1 1 1 0 1 1

数据恢复与频率校正

当存在载波频率偏移时,数据恢复由这些步骤完成。

  1. 生成VHT波形

  2. 通过一个通道传递波形

  3. 提取L-STF并进行粗频偏估计

  4. 使用粗估计来校正偏移量

  5. 提取L-LTF并执行精细的频偏估计

  6. 使用精细估算来校正偏移量

  7. 提取VHT-LTF并解调

  8. 利用解调后的VHT-LTF估计信道

  9. 提取数据字段

  10. 利用信道和噪声方差估计恢复数据

框图显示了这些步骤以及相应的命令。

设置通道带宽和采样率。

生化武器=“CBW160”;Fs = 160e6;

创建一个支持2x2 MIMO传输的VHT配置对象。万博1manbetx

cfg = wlanVHTConfig(“ChannelBandwidth”生化武器,...“NumTransmitAntennas”2,“NumSpaceTimeStreams”2);

生成包含随机PSDU的VHT波形。

txPSDU = randi([0 1],cfg.PSDULength*8,1);txSig = wlanWaveformGenerator(txPSDU,cfg);

创建一个2x2 TGac通道。

tgacChan = wlanTGacChannel(“SampleRate”fs,“ChannelBandwidth”生化武器,...“NumTransmitAntennas”2,“NumReceiveAntennas”2);

创建相位和频率偏移对象。

pfOffset = com . phasefrequencyoffset (“SampleRate”fs,“FrequencyOffsetSource”输入端口的);

将传输的波形通过有噪声的TGac通道。

rxSigNoNoise = tgacChan(txSig);rxSig = awgn(rxSigNoNoise,15);

对接收到的信号引入500hz的频率偏移。

rxSigFreqOffset = pfOffset(rxSig,500);

为PPDU的所有组件字段找到开始和停止索引。

ind = wlanFieldIndices(cfg);

提取L-STF。估计并修正载波频率偏移。

rxLSTF = rxSigFreqOffset(ind.LSTF(1):ind.LSTF(2),:);offset1 = wlanCoarseCFOEstimate(rxLSTF,cbw);rxSig1 = pfOffset(rxSigFreqOffset,- offset1);

从校正后的信号中提取L-LTF。估计并校正剩余频率偏移。

rxLLTF = rxSig1(ind.LLTF(1):ind.LLTF(2),:);offset2 = wlanFineCFOEstimate(rxLLTF,cbw);rxSig2 = pfOffset(rxSig1,- offset2);

提取并解调VHT-LTF。估计信道系数。

rxhtltf = rxSig2(ind.VHTLTF(1):ind.VHTLTF(2),:);demodVHTLTF = wlanVHTLTFDemodulate(rxVHTLTF,cfg);chEst = wlanVHTLTFChannelEstimate(demodVHTLTF,cfg);

从接收并经过频率校正的PPDU中提取VHT数据字段。恢复数据字段。

rxData = rxSig2(ind.VHTData(1):ind.VHTData(2),:);rxPSDU = wlanVHTDataRecover(rxData,chEst,0.03,cfg);

计算收到的数据包中的误码数。

数字r = biterr(txPSDU,rxPSDU)
数字= 2