这个例子展示了如何执行基本的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);
确定波形的场指数。
印第安纳州= wlanFieldIndices (cfg);
从接收信号中提取VHT-LTF。
rxVHTLTF = rxSig (ind.VHTLTF (1): ind.VHTLTF (2):);
解调VHT-LTF。使用解调信号估计信道响应。
demodVHTLTF = wlanVHTLTFDemodulate (rxVHTLTF cfg);胸部= wlanVHTLTFChannelEstimate (demodVHTLTF 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 1 1 1
存在载波频率偏移时的数据恢复是通过这些步骤完成的。
产生VHT波形
将波形通过通道传递
提取L-STF并进行粗频偏估计
用粗略的估计来校正偏移量
提取L-LTF并执行精细频率偏移估计
用精确的估计来校正偏移量
提取VHT-LTF并解调
使用解调的VHT-LTF估计信道
提取数据字段
利用信道和噪声方差估计恢复数据
框图显示了这些步骤及其相应的命令。
设置通道带宽和采样速率。
CBW ='CBW160';fs = 160 e6;
创建支持2x2 MIMO传输的VHT配置对象。金宝app
cfg = wlanVHTConfig (“ChannelBandwidth”,cbw,...'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”,cbw,...'numtransmitantennas',2,“NumReceiveAntennas”2);
创建一个相位和频率偏移对象。
pfOffset = comm.PhaseFrequencyOffset (“SampleRate”fs,“FrequencyOffsetSource”,输入端口的);
将传输波形通过带噪声的TGac通道。
rxSigNoNoise = tgacChan (txSig);rxSig = awgn (rxSigNoNoise 15);
向接收信号引入500hz的频率偏移。
rxSigFreqOffset = pfOffset (rxSig, 500);
找到PPDU的所有组件字段的启动和停止索引。
印第安纳州= wlanFieldIndices (cfg);
提取L-STF。估计并校正载波频率偏移。
rxLSTF = rxSigFreqOffset (ind.LSTF (1): ind.LSTF (2):);foffset1 = wlanCoarseCFOEstimate (rxLSTF,生化武器);rxSig1 = pfOffset (rxSigFreqOffset -foffset1);
从修正后的信号中提取L-LTF。估计并校正剩余频率偏差。
rxLLTF = rxSig1 (ind.LLTF (1): ind.LLTF (2):);foffset2 = wlanFineCFOEstimate (rxLLTF,生化武器);rxSig2 = pfOffset (rxSig1 -foffset2);
提取并解调VHT-LTF。估计信道系数。
rxVHTLTF = rxSig2 (ind.VHTLTF (1): ind.VHTLTF (2):);demodVHTLTF = wlanVHTLTFDemodulate (rxVHTLTF cfg);胸部= wlanVHTLTFChannelEstimate (demodVHTLTF cfg);
从接收到的频偏PPDU中提取VHT数据域。恢复数据字段。
rxData = rxSig2 (ind.VHTData (1): ind.VHTData (2):);rxPSDU = wlanVHTDataRecover (rxData,胸部,0.03,cfg);
计算接收报文的误码数。
numErr = biterr (txPSDU rxPSDU)
numerr = 2