这个示例演示了如何生成具有4096点正交振幅调制(4096-QAM)和320 MHz信道带宽的IEEE®802.11be™单用户波形。该实例演示了如何测量发射机调制精度、光谱掩模和光谱平坦度。
这个示例演示了如何参数化和生成IEEE 802.11be极高吞吐量(EHT)单用户波形,该波形在P802.11be草案1.0中指定[1]。该示例对[3.19)中规定的配置进行了发射器调制精度,所需的光谱屏蔽和所需的光谱平坦度测量。[1]。
该示例生成20个单用户EHT包,具有320 MHz信道带宽和包之间10微秒的间隔。每个包包含随机数据,使用4096-QAM。该示例使用比标称基带率所需的更大的IFFT对波形进行采样,并且不进行光谱滤波。该例子使用了一个高功率放大器(HPA)模型,其中引入了带内失真和频谱再生。该示例在HPA建模后对上采样波形进行光谱发射掩模测量。该实例对EHT数据场进行解码,并测量误差矢量大小(EVM),以确定调制精度后,将波形降采样到基带采样率。此外,该示例还测量了恢复波形的谱平坦度。此图显示了示例中包含的工作流。
将示例配置为产生
20个单用户EHT数据包,每个数据包之间有10微秒的空闲时间。
numPackets =20.;idleTime =
10.;%在微秒
802.11be的物理层,在P802.11be草案1.0中定义[1],建立在802.11ax上[2],以增加这些功能和修改。
增加的最大信道带宽为320 MHz
MCS索引选项12和13中的4096-QAM
将多个资源单元(MRU)分配给单个站(STA),并可选地穿刺单用户数据包
增加了上行MU-MIMO的最大空间流数量(16个空间流跨多达8个用户)
改进的音调计划80和160 MHz带宽
用于数据字段扰窗和解扰器的较大的发电机多项式
此示例模拟这些键802.11be功能。
320 MHz信道带宽
4096 - qam调制
改进的音调计划80和160 MHz带宽
用于数据字段扰窗和解扰器的较大的发电机多项式
标准草案定义了用于传输单用户和多用户数据包的EHT多用户(EHT MU)格式。此示例仅支持生成单用户数据包。金宝app使用EHT MU配置对象,ehtMUConfig
,配置EHT MU数据包的传输属性。此示例使用随机位生成U-SIG和EHT-SIG信令字段。您可以通过修改相关属性来指定随机种子或字段位值ehtMUConfig
对象。U-SIG和EHT-SIG的值会影响报文的峰值平均功率比。由于本例没有使用空时分组编码,因此可以测量每个空间流的调制精度。
chanBW =“CBW320”;%通道带宽mcs =
12.;%调制和编码方案numTx =
1;%发送天线数apepLength =
8000.;% A-MPDU长度前eof填充字节savedState = rng (0);%设置随机状态cfgEHT = ehtMUConfig (chanBW);MU配置对象
cfgEHT。NumTransmitAntennas = numTx;cfgEHT.User{1}。MCS = MCS;cfgEHT.User{1}。NumSpaceTimeStreams = numTx;cfgEHT.User{1}。APEPLength = APEPLength;cfgEHT.RU{1}。SpatialMapping =“直接”;
为了模拟HPA对波形的影响并查看带外光谱发射,必须对波形进行过采样。本例使用比标称基带率所需的更大的IFFT生成波形,导致过采样波形。本示例不执行光谱滤波。
osf =4;%过采样因子
为所有数据包创建随机位。
psduLength = cfgEHT.getPSDULength * 8;%PSDU每个数据包中的长度长度data = randi([0 1],psdulength * numpackets,1);
为指定的位和配置生成EHT MU波形ehtWaveformGenerator
函数,指定所需的过采样因子、数据包数量和每个数据包之间的空闲时间。
txWaveform = ehtWaveformGenerator(数据、cfgEHT'numpackets',numpackets,“IdleTime”e-6, idleTime * 1,“OversamplingFactor”,OSF);
得到波形的基带采样率
FS = WLANSAMPLERGE(CHANBW);disp ([基带采样率:num2str(FS / 1E6)“议员”]);
Prepend Zeros到波形以允许早期定时同步。
txWaveform =[0(圆(idleTime * 1 e-6 * fs), numTx);txWaveform];
HPA以带内畸变和光谱再生的形式引入非线性行为。此示例使用RAPP模型模拟功率放大器[3.,这会导致AM/AM失真。
模型放大器使用dsp。FIRInterpolator
对象,并通过指定后退,HPABACKOFF.
,使得放大器在其饱和点下方工作。您可以增加退避以减少EVM以获得更高的MCS值。
pSaturation = 25;DBM中功率放大器的%饱和功率hpaBackoff = 16;功率放大器后退,以分贝计非线性= comm.MemorylessNonlinearity;非线性。方法='rapp model';nonlinearity.smoothness = 3;% p参数非线性。LinearGain = -hpaBackoff;非线性。OutputSaturationLevel = db2mag (pSaturation-30);txWaveform =非线性(txWaveform);
通过使用通过使用的每个发射天线添加热噪声comm.ThermalNoise
噪音值为6db的物体[4]。
thnoise = comm.thermalnoise('noisemethod',“噪声图”,'采样率'fs * osf,'噪音文件'6);为我= 1:cfgEHT。numtransmitantenna txWaveform(:,i) = thNoise(txWaveform(:,i));结束
将过采样波形向下采样至基带,用于物理层处理、EVM和光谱平坦度测量,在向下采样前应用低通抗混叠滤波器。在光谱平坦度测量中,低通滤波器的影响是可见的。设计了抗混叠滤波器,使所有有源子载波都在滤波器通带内。
重采样滤波器设计。
astop = 40;%停滞衰减OFDMINFO = EHTOFDMINFO(“EHT-Data”, cfgEHT);% OFDM参数SCS = fs / ofdmInfo.FFTLength;%副载波间距txbw = max (abs (ofdmInfo.ActiveFrequencyIndices)) * 2 * SCS;%占有带宽[l,m] =大鼠(OSF);maxlm = max([l m]);r =(fs-txbw)/ fs;tw = 2 * r / maxlm;%过渡宽度b = designMultirateFIR (L, M, TW aStop);
将波形重新采样到基带。
firinterp = dsp.FIRRateConverter (M, L, b);rxWaveform = firinterp (txWaveform);
此部分检测,同步和提取每个数据包rxWaveform
,然后测量EVM和光谱平坦度。对于每个包,本示例执行以下步骤。
检测数据包的开始
提取旧字段
估计并修正粗载波频偏(CFO)
通过使用经过频率修正的遗留字段执行精细的符号时间估计
使用精细符号定时偏移从波形中提取数据包
用粗略的CFO估计更正提取的数据包
提取L-LTF,然后估计并纠正罚款CFO
提取EHT-LTF并对每个发送流执行信道估计
利用信道估计来测量光谱平坦度
提取和OFDM解调EHT数据字段
通过使用Pilot子载波的解调数据字段导频和单流信道估计来执行噪声估计
利用信道和噪声估计对EHT数据场进行相位校正和均衡
对于每个空间流中的每个数据携带子载波,找到最近的星座点并测量EVM
通过解码均衡的符号恢复PSDU
这个图表显示了处理链。
本例进行了两种不同的EVM测量。
RMS每个包的EVM,包括子载波、OFDM符号和空间流上的EVM的平均值。
每个分组的每个空间流的每个子载波的EVM。由于这种配置将空间流直接映射到天线,这种测量可以帮助检测频率依赖的损害,这可能会对单个射频链产生不同的影响。这个测量仅对OFDM符号上的EVM进行平均。
设置EVM测量。
[EVMPerPkt, EVMPerSC] = evmSetup (cfgEHT);
获取访问时域包内每个字段的索引。
IND = EHTFIENDINDICES(CFGEHT);
定义样本中数据的最小可检测长度。
minPktLen =双(ind.LSTF (2) -ind.LSTF (1) + 1;
在接收到的波形中使用而
循环,执行这些步骤。
通过索引来检测数据包rxWaveform
有了样本偏移量,searchOffset
检测和处理其中的第一个包rxWaveform
通过增加样本索引偏移量来检测和处理下一个包
重复此步骤,直到没有检测到其他数据包为止
rxWaveformLength =大小(rxWaveform, 1);pktLength =双(ind.EHTData (2));rmsEVM = 0 (numPackets, 1);pktOffsetStore = 0 (numPackets, 1);rng (savedState);恢复随机状态pktNum = 0;searchOffset = 0;从第一个样本开始(无偏移)而(SearchOffset + Minpktlen)<= rxwaveFormLength%检测分组并确定粗分组偏移量pktOffset = wlanPacketDetect (rxWaveform cfgEHT.ChannelBandwidth searchOffset);%数据包从波形开始时偏移pktoffset = searchoffset + pktoffset;%如果L-STF为空,则跳过报文如果is空(pktOffset) || (pktOffset<0) ||......((pktOffset + ind.LSIG (2)) > rxWaveformLength)打破;结束%提取L-STF并执行粗略频率偏移校正nonht = rxWaveform (pktOffset + (ind.LSTF (1): ind.LSIG (2)),:);coarsefreqOff = wlanCoarseCFOEstimate (nonht cfgEHT.ChannelBandwidth);nonht = helperFrequencyOffset (fs, nonht -coarsefreqOff);%提取遗留字段并确定精确数据包偏移量lltfoffset = wlanymboltimingestimate(nonht,cfgeht.channelbandwidth);pktoffset = pktoffset + lltfoffset;确定数据包偏移量%如果偏移超出了波形的边界,则跳过采样和%在剩余波形内继续搜索如果(pktOffset<0) || ((pktOffset+pktLength)>rxWaveformLength) searchOffset = pktOffset+double(ind.LSTF(2))+1;继续;结束%时序同步完成;提取检测到的数据包rxPacket = rxWaveform (pktOffset + (1: pktLength):);pktNum = pktNum + 1;disp (['包'num2str (pktNum)' at index: 'num2str (pktOffset + 1)]);%对提取的数据包应用粗频率校正rxPacket = helperFrequencyOffset (fs, rxPacket -coarsefreqOff);%对提取的数据包进行精细的频率偏移校正lltf = rxpacket(ind.lltf(1):Ind.lltf(2),:);%提取L-LTFfineFreqOff = wlanFineCFOEstimate (lltf cfgEHT.ChannelBandwidth);rxPacket = helperFrequencyOffset (fs, rxPacket -fineFreqOff);%提取EHT-LTF样本,解调和执行信道估计ehtLTF = rxPacket (ind.EHTLTF (1): ind.EHTLTF (2):);ehtLTFDemod = ehtDemodulate (ehtLTF,“EHT-LTF”, cfgEHT);%信道估计(陈,飞行员)= ehtLTFChannelEstimate (ehtLTFDemod cfgEHT);%光谱平坦度测量ehtTxSpectralFlatnessMeasurement(成龙、cfgEHT pktNum);%数据解调rxData = rxPacket (ind.EHTData (1): ind.EHTData (2):);demodSym = ehtDemodulate (rxData,“EHT-Data”, cfgEHT);导频相位跟踪Demodsym = ehtcommonphaseerrortracking(Demodsym,Chanest,Cfgeht);EHT字段中的估计噪声功率%据nvar = ehtNoiseEstimate (demodSym (ofdmInfo.PilotIndices,:,:),飞行员,cfgEHT);从解调符号和信道中提取数据子载波%的估计demodDataSym = demodSym (ofdmInfo.DataIndices,:,);chanEstData =成龙(ofdmInfo.DataIndices,:,);%均衡和STBC组合[eqSym, csi] = ehtEqualizeCombine (demodDataSym chanEstData,据nvar, cfgEHT);%将RMS EVM计算在数据包的所有空间流中rmsEVM (pktNum) = EVMPerPkt (eqSym);流('RMS EVM:%2.2F %%,%2.2FDB \ n'rmsEVM (pktNum), 20 * log10 (rmsEVM (pktNum) / 100));%计算每个子载波和包的空间流的RMS EVMevmPerSC = evmPerSC (eqSym);% Nst-by-1-by-Nss每个子载波的%绘制RMS EVM和均等的星座ehtTxEVMConstellationPlots (eqSym evmPerSC、cfgEHT pktNum);%恢复数据字段位rxpsdu = ehtdatabitrocover(eqsym,nvarest,csi,cfgeht);如果isequal (rxPSDU数据((1:psduLength) + (pktNum-1) * psduLength))流('解码成功\ n');其他的流('解码失败\ n');结束%存储波形内每个数据包的偏移量pktoffsetstore(pktnum)= pktoffset;%增加波形偏移量并搜索数据包的剩余波形searchOffset = pktOffset + pktLength + minPktLen;结束如果pktnum> 0 fprintf('%d包的平均EVM:%2.2f %%,%2.2fdb \ n',......pktNum,意味着(rmsEVM (1: pktNum)), 20 * log10(平均(rmsEVM (1: pktNum)) / 100));其他的disp ('没有检测到完整的数据包');结束
本节测量HPA建模后过滤和受损波形的光谱掩模。发射器光谱掩模测试[5]使用了EHT数据场的时间门控光谱测量。该示例利用基带波形内每个包的起始索引从过采样波形中提取每个包的EHT数据字段。用于确定分组指数的基带处理链中引入的任何延迟都必须在对其中的EHT数据字段进行门控时加以考虑txWaveform
。串联提取的EHT数据字段以准备测量。
startIdx = osf * (ind.EHTData (1) 1) + 1;上采样启动EHT数据EndIDX = OSF * IND.EHTDATA(2);EHT数据上采样结束delay = grpdelay(firinterp,1);%下采样滤波器组延迟idx = zeros(Endidx-startidx + 1,pktnum);为我= 1:pktNum% tx波形中数据包的起始位置pktOffset =圆(osf * pktOffsetStore(我)延迟;% tx波形中eht数据的指数idx (:, i) = (pktOffset + (startIdx: endIdx));结束gatedEHTTData = txWaveform (idx (:):);
802.11be标准规定了相对于峰值功率谱密度的光谱掩模。生成的图用测量的PSD覆盖所需的掩模。
如果pktNum > 0 ehtSpectralMaskTest (fs, gatedEHTTData osf);结束
这个例子措施和情节:
光谱平整度
每副载波的有效值
均衡的星座
光谱面具
HPA模型引入了显著的带内畸变和光谱再生,这在EVM结果中可见,在光谱掩模图中可见噪声星座和带外辐射。尝试增加HPA后退,观察改进的EVM、星座和更低的带外辐射。下采样(将波形带至基带进行处理)阶段包括滤波。滤波器的响应影响光谱平坦度的测量。谱平坦度测量中的纹波是由于向下采样到基带引起的。尝试使用不同的滤波器或改变阻带衰减,观察对光谱平坦度的影响。
IEEE P802.11be™/ D1.0信息技术标准草案——电信和信息交换系统本地和市区网络-特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层(体育)规范-第八修正案:增强了极高的吞吐量(过去)。
IEEE P802.11AX™/ D4.1信息技术标准草案 - 系统之间的电信和信息交流 - 本地和大都市区域网络 - 特定要求 - 第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格 -修订1:高效WLAN的增强。
Loc和Cheong。IEEE P802.11无线局域网。TGAC功能要求和评估方法Rev.11-01-19。
Perahia, E.和R. Stacey。下一代无线局域网:802.11n和802.11ac。第二版。英国:剑桥大学出版社,2013。
Archambault, Jerry和Shravan Surineni。IEEE 802.11使用矢量信号分析仪进行光谱测量。RF Design 27.6(2004): 38-49。