主要内容

频率校正的端到端VHT模拟

此示例显示如何生成,传输,恢复和查看VHT MIMO波形。

示例中的步骤:

  • 通过使用AWGN通过MIMO通道发送VHT波形

  • 执行两阶段的过程以估计和正确的频率偏移

  • 估计频道响应

  • 恢复VHT数据字段

  • 比较传输和接收的PSDU来确定是否发生了位错误

设置整个示例中使用的参数。

CBW ='CBW160';%通道带宽FS = 160E6;%采样率(Hz)ntx = 2;百分比的发射天线数量nsts = 2;%时空流的数量nrx = 2;%接收天线数

创建一个支持2x2 MIMO传输的VHT配置对象,并且具有2000年的APEP金宝app长度。

vht = wlanvhtconfig('ChannelBandWidth'生化武器,“APEPLength”,2000年,......'numtransmitantennas',NTX,'numspacetimestreams',nsts,......'spatialmapping''直接''stbc'、假);

生成包含随机PSDU的VHT波形。

txpsdu = randi([0 1],vht.psdulength * 8,1);txppdu = wlanwaveformgenerator(TXPSDU,VHT);

创建2x2 TGAC通道和AWGN通道。

tgacchan = wlantgacchannel('samplerate',fs,'ChannelBandWidth'生化武器,......'numtransmitantennas',NTX,'numreceiveantennas',nrx,......'largescalefadingeffect''pathloss和shadows'......'DelayProfile''model-c');awgnchan = comm.awgnchannel('noisemethod''veriance'......“VarianceSource”'输入端口');

创建相位/频率偏移对象。

pfoffset = comm.phasefrequencyOffset('samplerate',fs,'surformoffsetsource''输入端口');

用9 dB噪声系数计算接收器的噪声差异。通过嘈杂的TGAC通道传递传输的波形。

NVAR = 10 ^(( -  228.6 + 10 * log10(290)+ 10 * log10(fs)+ 9)/ 10);rxppdu = awgnchan(tgacchan(txppdu),nvar);

引入500 Hz的频率偏移。

rxppducfo = pfoffset(rxppdu,500);

查找PPDU的所有组件字段的启动和停止索引。

IND = WLANFIELDINDIDICES(VHT);

提取L-STF。估计和校正载波频率偏移。

rxLSTF = rxPPDUcfo (ind.LSTF (1): ind.LSTF (2):);foffset1 = wlanCoarseCFOEstimate (rxLSTF,生化武器);rxPPDUcorr = pfOffset (rxPPDUcfo -foffset1);

从校正信号中提取L-LTF。估计和纠正残余频率偏移。

rxlltf = rxppducorr(ind.lltf(1):Ind.lltf(2),:);foffset2 = wlanfinecfoestimate(rxlltf,cbw);rxppdu2 = pfoffset(rxppducorr,-foffset2);

提取并解调VHT-LTF。估计信道系数。

rxvhtltf = rxppdu2(ind.vhtltf(1):Ind.vhtltf(2),:);dltf = wlanvhtltfdemodulate(rxvhtltf,vht);胸部= wlanvhtltfchanneLestimate(DLTF,VHT);

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

rxvhtdata = rxppdu2(ind.vhtdata(1):ind.vhtdata(2),:);rxpsdu = wlanvhtdatarecover(rxvhtdata,胸部,nvar,vht);

计算收到的数据包中的比特错误数。

numerr = biterr(txpsdu,rxpsdu)
numerr = 0.