cfgS1G = wlanS1GConfig;
信道带宽=“CBW2”;
cfgS1G。序言=“短”;
cfgS1G。NumTransmitAntennas = 2;
cfgS1G.NumSpaceTimeStreams=2;
cfgS1G。APEPLength = 256;
cfgS1G。MCS = 3;
tgahChannel = wlanTGahChannel;
tgahChannel。DelayProfile =“f型”;
tgahChannel。NumTransmitAntennas = cfgS1G.NumTransmitAntennas;
tgahChannel.numreceiveantenics=2;
tgahChannel.TransmitReceiveDistance=50;
tgahChannel.ChannelBandwidth=cfgS1G.ChannelBandwidth;
tgahChannel.LargeScaleFadingEffect=“Pathloss和阴影”;
信噪比= 20:5:40;
maxNumPackets = 5 e2;
fieldInd = wlanFieldIndices (cfgS1G);
ofdmInfo=wlans1godminfo(“S1G-Data”, cfgS1G);
tgahChannel.SampleRate=wlanSampleRate(cfgS1G);
如果~ strcmp (packetFormat (cfgS1G),“S1G-Short”)
错误('此示例仅支持S1G短数据包格式'万博1manbetx);
结束
packetErrorRate = 0(元素个数(信噪比),1);
为i=1:numel(信噪比)
流= RandStream (“combRecursive”,“种子”,0);
流。Substream =我;
RandStream.setGlobalStream(流);
awgnChannel=comm.awgnChannel;
awgnChannel。NoiseMethod ='信噪比(SNR)';
awgnChannel.SNR=SNR(i)-10*log10(ofdmInfo.FFTLength/ofdmInfo.NumTones);
numPacketErrors = 0;
numPkt = 1;
虽然numPkt<=最大numpackets
txPSDU = randi([0 1],cfgS1G.PSDULength*8,1);
txWaveform = wlanWaveformGenerator (txPSDU cfgS1G);
tx = [txWaveform;0 (50, cfgS1G.NumTransmitAntennas)];
preChSigPwr_dB = 10 * log10(意味着(abs (tx)));
sigPwr1=10^((preChSigPwr_dB(1)-tgahChannel.info.Pathloss)/10);
sigPwr2 = 10 ^ (preChSigPwr_dB (2) -tgahChannel.info.Pathloss) / 10);
sigPwr = [sigPwr1, sigPwr2];
awgnChannel.SignalPower=sigPwr;
复位(tgahChannel);
rx = tgahChannel (tx);
rx = awgnChannel (rx);
延迟=4;
rxSync=rx(延迟+1:end,:);
rxLTF1=rxSync(fieldInd.S1GLTF1(1):fieldInd.S1GLTF1(2),:);
解调LTF1=WLANS1解调(rxLTF1,“S1G-LTF1”, cfgS1G);
如果cfgS1G.NumSpaceTimeStreams>1
rxLTF2N = rxSync (fieldInd.S1GLTF2N (1): fieldInd.S1GLTF2N (2):);
demodLTF2N = wlanS1GDemodulate (rxLTF2N,“S1G-LTF2N”, cfgS1G);
chanEst = s1gLTFChannelEstimate([demodLTF1 demodLTF2N],cfgS1G);
其他的
chanEst=s1gLTFChannelEstimate(解调LTF1,cfgS1G);
结束
noiseVarEst = helperNoiseEstimate (demodLTF1);
rxData = rxSync (fieldInd.S1GData (1): fieldInd.S1GData (2):);
demodSym = wlanS1GDemodulate (rxData,“S1G-Data”, cfgS1G);
demodatasym=demodSym(ofdmInfo.dataindex,:,:);
chanEstData =成龙(ofdmInfo.DataIndices,:,);
[eqDataSym,csi]=帮助符号均衡器(解调数据符号,信道数据,噪声消除);
rxPSDU = s1gDataBitRecover (eqDataSym noiseVarEst, csi, cfgS1G);
packetError=any(位错误(txPSDU,rxPSDU));
numPacketErrors = numPacketErrors + packetError;
numPkt = numPkt + 1;
结束
packetErrorRate (i) = numPacketErrors / (numPkt-1);
disp ([“信噪比”num2str(信噪比(一))...
“完成后”num2str (numPkt-1)“包,”...
“每:”num2str (packetErrorRate (i))));
disp (num2str (tgahChannel.TransmitReceiveDistance))
disp (num2str (tgahChannel.DelayProfile))
结束