此示例显示如何生成,传输,恢复和查看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.