基本VHT数据恢复
本示例展示如何执行基本的VHT数据恢复。它还展示了如何恢复VHT数据时,接收信号有载波频率偏移。可以使用类似的程序恢复HT和非HT格式的数据。
基础数据恢复
WLAN工具箱™提供了生成和恢复IEEE®802.11ac™标准兼容波形的功能。数据恢复过程包括以下步骤。
生成VHT波形
通过一个通道传递波形
提取VHT-LTF并解调
利用解调后的VHT-LTF估计信道
提取数据字段
利用信道和噪声方差估计恢复数据
框图显示了这些步骤以及相应的命令。
创建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
数据恢复与频率校正
当存在载波频率偏移时,数据恢复由这些步骤完成。
生成VHT波形
通过一个通道传递波形
提取L-STF并进行粗频偏估计
使用粗估计来校正偏移量
提取L-LTF并执行精细的频偏估计
使用精细估算来校正偏移量
提取VHT-LTF并解调
利用解调后的VHT-LTF估计信道
提取数据字段
利用信道和噪声方差估计恢复数据
框图显示了这些步骤以及相应的命令。
设置通道带宽和采样率。
生化武器=“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