主要内容

VHT基础数据恢复

这个例子展示了如何执行基本的VHT数据恢复。文中还介绍了当接收信号存在载波频偏时如何恢复VHT数据。类似的过程可以用于恢复具有HT和非HT格式的数据。

基本数据恢复

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

  1. 生成VHT波形

  2. 让波形通过一个通道

  3. 提取VHT-LTF并解调

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

  5. 提取数据字段

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

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

创建VHT配置对象。

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 = wlanvhtltf解调(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 = comm.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),:);offoffset1 = 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 = wlanvhtltf解调(rxVHTLTF,cfg);chEst = wlanVHTLTFChannelEstimate(demodVHTLTF,cfg);

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

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

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

numErr = biterr(txPSDU,rxPSDU)
numErr = 2