此示例显示如何执行基本的VHT数据恢复。它还示出了如何在接收信号具有载波频率偏移时恢复VHT数据。类似的过程可用于通过HT和非HT格式恢复数据。
WLAN Toolbox™提供符合WavenForms生成和恢复IEEE®802.11ac™标准的功能。数据恢复是通过以下步骤完成的:
生成VHT波形
通过频道传递波形
提取VHT-LTF并解调
通过使用解调的VHT-LTF来估计通道
提取数据字段
使用频道和噪声方差估计恢复数据
框图显示了这些步骤以及它们的相应命令。
创建VHT格式配置对象。
vht = wlanvhtconfig;
使用VHT配置对象创建VHT传输波形。将数据序列设置为[1; 0; 1; 1]
。重复数据序列以生成指定数量的数据包。
txsig = wlanwaveformgenerator([1; 0; 1; 1],VHT);
通过AWGN通道通过接收信号。
rxsig = awgn(txsig,10);
确定波形的字段索引。
IND = WLANFIELDINDIDICES(VHT);
从接收信号中提取VHT-LTF。
rxvhtltf = rxsig(ind.vhtltf(1):Ind.vhtltf(2),:);
解调VHT-LTF。通过使用解调信号估计信道响应。
emodvhtltf = wlanvhtltfdemodulate(rxvhtltf,vht);胸部= wlanvhtltfchannelestimate(demodvhtltf,vht);
提取VHT数据字段。
rxdata = rxsig(ind.vhtdata(1):Ind.vhtdata(2),:);
使用频道和噪声方差估计恢复信息位。确认前8位与输入数据序列的两次重复匹配[1; 0; 1; 1]
。
rxbits = wlanvhtdatarecover(rxdata,胸部,0.1,vht);rxbits(1:8)
ans =.8x1 INT8列向量1 0 1 1 1 0 1 1
当存在载波频率偏移时的数据恢复是通过以下步骤完成的:
生成VHT波形
通过频道传递波形
提取L-STF并执行粗略频率偏移估计
通过使用粗略估计来纠正偏移量
提取L-LTF并执行精细频率偏移估计
通过使用细估计来纠正偏移量
提取VHT-LTF并解调
通过使用解调的VHT-LTF来估计通道
提取数据字段
使用频道和噪声方差估计恢复数据
框图显示了这些步骤以及它们的相应命令。
设置通道带宽和采样率。
CBW ='CBW160';FS = 160E6;
创建一个支持2x2 MIMO传输的VHT配置对象。万博1manbetx
vht = wlanvhtconfig('信道带宽',cbw,......'numtransmitantennas'2,'numspacetimestreams',2);
生成包含随机PSDU的VHT波形。
txpsdu = randi([0 1],vht.psdulength * 8,1);txsig = wlanwaveformgenerator(txpsdu,vht);
创建2x2 TGAC通道。
tgacchan = wlantgacchannel('采样率',fs,'信道带宽',cbw,......'numtransmitantennas'2,'numreceiveantennas',2);
创建相位和频率偏移对象。
pfoffset = comm.phasefrequencyOffset('采样率',fs,'surformoffsetsource'那'输入端口');
通过嘈杂的TGAC通道传递传输的波形。
rxsignonoise = tgacchan(txsig);rxsig = awgn(rxsignonoise,15);
将500 Hz的频率偏移引入接收信号。
rxsigfreqoffset = pfoffset(rxsig,500);
查找PPDU的所有组件字段的启动和停止索引。
IND = WLANFIELDINDIDICES(VHT);
提取L-STF。估计和校正载波频率偏移。
rxlstf = rxsigfreqoffset(Ind.lstf(1):Ind.lstf(2),:);foffset1 = wlancoarsecfoestimate(rxlstf,cbw);rxsig1 = pfoffset(rxsigfreqoffset,-foffset1);
从校正信号中提取L-LTF。估计和纠正残余频率偏移。
rxlltf = rxsig1(ind.lltf(1):Ind.lltf(2),:);foffset2 = wlanfinecfoestimate(rxlltf,cbw);rxsig2 = pfoffset(rxsig1,-foffset2);
提取并解调VHT-LTF。估计信道系数。
rxvhtltf = rxsig2(ind.vhtltf(1):Ind.vhtltf(2),:);emodvhtltf = wlanvhtltfdemodulate(rxvhtltf,vht);胸部= wlanvhtltfchannelestimate(demodvhtltf,vht);
从接收和频率校正的PPDU中提取VHT数据字段。恢复数据字段。
rxdata = rxsig2(ind.vhtdata(1):Ind.Vhtdata(2),:);rxpsdu = wlanvhtdatarecover(rxdata,胸部,0.03,vht);
计算收到的数据包中的比特错误数。
numerr = biterr(txpsdu,rxpsdu)
numerr = 2