这个例子展示了如何执行基本的VHT数据恢复。它还展示了如何恢复VHT数据时,接收信号有载波频率偏移。可以使用类似的程序来恢复HT和非HT格式的数据。
无线局域网工具箱™ 提供生成和恢复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。
rxVHTLTF = rxSig (ind.VHTLTF (1): ind.VHTLTF (2):);
VHT-LTF解调。利用解调信号估计信道响应。
Demovhtltf=wlanvhtltf解调(rxVHTLTF,cfg);胸部=WLANVHTLTF信道估计值(解调VHTLTF,cfg);
提取VHT数据字段。
rxData=rxSig(ind.VHTData(1):ind.VHTData(2),:);
利用信道和噪声方差估计恢复信息位。确认前8位匹配的输入数据序列的两个重复[1;0;1;1]
.
rxBits=wlanVHTDataRecover(rxData,胸部,0.1,cfg);rxBits(1:8)
ans=8x1 int8列向量1 0 1 1 1 0 1 1
当载波频率偏移出现时,数据恢复是通过这些步骤完成的。
生成VHT波形
通过通道传递波形
提取L-STF并执行粗略的频率偏移估计
通过使用粗略估计校正偏移
提取L-LTF并进行精细的频率偏移估计
通过使用精细估计校正偏移
提取VHT-LTF并解调
使用解调的VHT-LTF估计信道
提取数据字段
利用信道和噪声方差估计恢复数据
方框图显示了这些步骤及其相应的命令。
设置通道带宽和采样率。
生化武器=“CBW160”fs=160e6;
创建支持2x2 MIMO传输的VHT配置对象。万博1manbetx
cfg=wlanVHTConfig(“信道带宽”生化武器,...“NumTransmitAntennas”2,“NumSpaceTimeStreams”,2);
生成包含随机PSDU的VHT波形。
txPSDU=randi([01],cfg.PSDULength*8,1);txSig=wlanWaveformGenerator(txPSDU,cfg);
创建一个2x2 TGac通道。
tgacChan=wlanTGacChannel(“采样器”fs,“信道带宽”生化武器,...“NumTransmitAntennas”2,“numreceiveantens”,2);
创建相位和频率偏移对象。
pfOffset=通信相位频率偏移(“采样器”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),:);foffset1=WLANCOASECOFESTIMATE(rxLSTF,cbw);rxSig1=pfOffset(rxSigFreqOffset,-foffset1);
从校正信号中提取L-LTF。估计并校正剩余频率偏移。
rxLLTF=rxSig1(ind.LLTF(1):ind.LLTF(2),:);foffset2=WLANFINCFOESTIMATE(rxLLTF,cbw);rxSig2=pfOffset(rxSig1,-foffset2);
提取并解调VHT-LTF。估计信道系数。
rxVHTLTF=rxSig2(ind.VHTLTF(1):ind.VHTLTF(2),:);Demovhtltf=wlanvhtltf解调(rxVHTLTF,cfg);胸部=WLANVHTLTF信道估计值(解调VHTLTF,cfg);
从接收和频率校正的PPDU中提取VHT数据字段。恢复数据字段。
rxData=rxSig2(ind.VHTData(1):ind.VHTData(2),:);rxPSDU=wlanVHTDataRecover(rxData,胸部,0.03,cfg);
计算接收到的数据包中的位错误数。
numer=biterr(txPSDU,rxPSDU)
numErr = 2