802.11啊/性能

2次查看(最近30天)
迈克Dachui
迈克Dachui 2020年5月15日
我想要计算 在不同的 信噪比 当tgahChannel.LargeScaleFadingEffect='Pathloss and shadowing'&tgahChannel.TransmitReceiveDistance=50;
而且 在不同的 距离 当信噪比为30时,不能得到合理的PER结果。期待您的建议!!非常感谢! !
%为单用户S1G短前导创建S1G配置对象
%使用2个发射天线和2个空时流进行传输
cfgS1G = wlanS1GConfig;
信道带宽=“CBW2”% 2兆赫信道带宽
cfgS1G。序言=“短”%简短序言
cfgS1G。NumTransmitAntennas = 2;%2个发射天线
cfgS1G.NumSpaceTimeStreams=2;% 2时空流
cfgS1G。APEPLength = 256;%APEP长度(字节)
cfgS1G。MCS = 3;
%创建并配置TGah通道
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);
% OFDM信息
ofdmInfo=wlans1godminfo(“S1G-Data”, cfgS1G);
%设置通道采样率
tgahChannel.SampleRate=wlanSampleRate(cfgS1G);
如果~ strcmp (packetFormat (cfgS1G),“S1G-Short”
错误('此示例仅支持S1G短数据包格式'万博1manbetx);
结束
packetErrorRate = 0(元素个数(信噪比),1);
i=1:numel(信噪比)%使用“for”调试模拟
%每次迭代设置随机子流索引,以确保
%迭代使用一组可重复的随机数
流= RandStream (“combRecursive”“种子”,0);
流。Substream =我;
RandStream.setGlobalStream(流);
%创建一个AWGN信道实例每个SNR点模拟
awgnChannel=comm.awgnChannel;
awgnChannel。NoiseMethod ='信噪比(SNR)'
%以零为单位说明能量
awgnChannel.SNR=SNR(i)-10*log10(ofdmInfo.FFTLength/ofdmInfo.NumTones);
%循环以模拟多个数据包
numPacketErrors = 0;
numPkt = 1;%发送的数据包索引
虽然numPkt<=最大numpackets
%生成一个802.11ah短序言包
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;
%穿越衰落室内TGah信道
复位(tgahChannel);%不同实现的复位通道
rx = tgahChannel (tx);
%添加噪声
rx = awgnChannel (rx);
%同步
%接收到的信号被同步到包的起始位置
%补偿已知的延迟和默认的OFDM解调
%符号采样偏移量。
延迟=4;
rxSync=rx(延迟+1:end,:);
% LTF解调和信道估计
%解调S1G-LTF1
rxLTF1=rxSync(fieldInd.S1GLTF1(1):fieldInd.S1GLTF1(2),:);
解调LTF1=WLANS1解调(rxLTF1,“S1G-LTF1”, cfgS1G);
%如果需要,对S1G-LTF2N进行解调,并进行信道估计
如果cfgS1G.NumSpaceTimeStreams>1
%使用S1G-LTF1和S1G-LTF2N进行信道估计
rxLTF2N = rxSync (fieldInd.S1GLTF2N (1): fieldInd.S1GLTF2N (2):);
demodLTF2N = wlanS1GDemodulate (rxLTF2N,“S1G-LTF2N”, cfgS1G);
chanEst = s1gLTFChannelEstimate([demodLTF1 demodLTF2N],cfgS1G);
其他的
%仅使用S1G-LTF1进行信道估计
chanEst=s1gLTFChannelEstimate(解调LTF1,cfgS1G);
结束
%噪声方差估计从S1G-LTF1解调符号
noiseVarEst = helperNoiseEstimate (demodLTF1);
%提取S1G-Data字段
rxData = rxSync (fieldInd.S1GData (1): fieldInd.S1GData (2):);
% OFDM解调
demodSym = wlanS1GDemodulate (rxData,“S1G-Data”, cfgS1G);
%从解调符号和信道中提取数据子载波
%的估计
demodatasym=demodSym(ofdmInfo.dataindex,:,:);
chanEstData =成龙(ofdmInfo.DataIndices,:,);
% MMSE频域均衡
[eqDataSym,csi]=帮助符号均衡器(解调数据符号,信道数据,噪声消除);
%恢复PSDU位
rxPSDU = s1gDataBitRecover (eqDataSym noiseVarEst, csi, cfgS1G);
%确定是否有任何位错误,即数据包错误
packetError=any(位错误(txPSDU,rxPSDU));
numPacketErrors = numPacketErrors + packetError;
numPkt = numPkt + 1;
结束
%计算该SNR点的PER
packetErrorRate (i) = numPacketErrors / (numPkt-1);
disp ([“信噪比”num2str(信噪比(一))...
“完成后”num2str (numPkt-1)“包,”...
“每:”num2str (packetErrorRate (i))));
disp (num2str (tgahChannel.TransmitReceiveDistance))
disp (num2str (tgahChannel.DelayProfile))
结束

答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!