主要内容

802.11ac发射机调制精度和光谱发射测试

此示例显示如何在IEEE®802.11ac™波形上执行发射器调制精度和频谱发射掩模和平坦度测量。

介绍

发射器调制精度,所需的频谱掩模和给定配置所需的光谱平整度在802.11ac标准的第22.3.18节中规定了[1].这个例子展示了如何在波形上执行这些测量。该波形是通过WLAN Toolbox™生成的,但是可以使用频谱分析仪捕获的波形。

产生由20个80 MHz VHT分组组成的波形,每个分隔由10微秒间隙分隔。随机数据用于每个数据包,使用256QAM调制。基带波形上采样并过滤以减少带外排放以满足光谱掩模要求。使用高功率放大器(HPA)型号,其引入了带点失真和光谱再生。在高功率放大器建模之后对升压波形进行光谱发射掩模测量。向下采样波形,测量VHT数据字段的误差矢量幅度(EVM)以确定调制精度。另外测量光谱平坦度。该示例在下图中示出:

IEEE 802.11ac VHT数据包配置

在该示例中,生成由多个VHT格式分组组成的IEEE 802.11ac波形。使用VHT格式配置对象描述VHT波形的格式特定配置。使用该对象使用wlanvhtconfig功能。对象的属性包含配置。在此示例中,对象配置为80 MHz带宽。每个天线传输一个空间流,以允许每个空间流测量调制精度,因此没有使用空间时间块编码。

cfgVHT = wlanVHTConfig;%创建数据包配置cfgvht.channelbandwidth ='CBW80';%80 MHz.cfgvht.numtransmitantennas = 1;%一个发射天线cfgvht.numspacetimestreams = 1;%一个时空流cfgvht.stbc = false;%没有stbc所以一个空间流cfgvht.mcs = 8;%调制:256 QAMcfgvht.apeplength = 3000;%A-MPDU长度预换页垫以字节为单位

基带波形生成

波形发生器wlanWaveformGenerator可以配置为生成一个或多个数据包,并在每个分组之间添加空闲时间。在该示例中,将创建具有10微秒空闲时段的20个分组。

numpackets = 20;%生成20个数据包iDletime = 10e-6;%10微秒段数据包之间的空闲时间

所有数据包的随机位,数据,被创建并作为一个参数传递给wlanWaveformGenerator以及VHT数据包配置对象cfgvht..这配置波形发生器以合成802.11ac VHT波形。使用名称值对另外配置波形发生器以在每个数据包之间生成多个数据包,其中包含指定的空闲时间。

%创建随机数据;psdulength符号为字节SavedState = RNG(0);%设置随机状态data = randi([0 1], cfgvtt . psdulength *8*numPackets,1); / /数据%生成多分组波形txwaveform = wlanwaveformgenerator(数据,cfgvht,......“NumPackets”numPackets,'空闲时间',空闲时间);%获取波形的采样率FS = WLANSAMPLEDE(CFGVHT);DISP([基带采样率:num2str(FS / 1E6)'msps']);
基带采样率:80 MSPS

过度采样和过滤

光谱滤波用于减少由于OFDM调制中的隐式矩形脉冲形状而减少带频谱排放,并由高功率放大器模型引起的光谱再生。为了模拟高功率放大器对波形的影响,并查看带频谱排放的波形必须过采样。过采样需要插值滤波器来消除由上采样引起的光谱图像。在该示例中,波形用插值滤波器过采样,该插值滤波器也充当光谱滤波器。这允许波形满足光谱掩模要求。波形过采样并使用过滤dsp.firinterpolator.

%过采样波形OSF = 3;%过采样因子filterLen = 120;%过滤器长度beta = 0.5;KAISER窗口%设计参数%生成滤波器系数coeffs = OSF。* firnyquist(Filterlen,OSF,Kaiser(Filterlen + 1,Beta));coeffs = coeffs(1:结束-1);%删除尾部零InterpolationFilter = dsp.firinterpolator(OSF,'分子',coeffs);TxWaveForm =插值滤波器(TxWaveForm);%绘制滤波器的幅度和相位响应%采样过密h = fvtool(内插滤器);H.Analysis =.'弗里克';%绘制幅度和相位响应H.FS = OSF * FS;%设置采样率H.NormalizedFrequency =“关闭”;%根据频率绘制响应

高功率放大器建模

高功率放大器以带内失真和光谱再生的形式引入非线性行为。RAPP型号用于在802.11ac中模拟功率放大器[2].RAPP模型导致AM / AM失真并进行建模Comm.MemoryLessnoninearity..高功率放大器被回扣,以低于饱和点以降低失真。退避由变量控制HPABACKOFF.

hpabackoff = 8;% D b%创建并配置内存非线性以模拟放大器nonlinearity = comm.moralessnoninearity;nonlinearity.method =.“拉普模式”;nonlinearity.smoothness = 3;%p参数nonlinearity.lineargain = -hpabackoff;%将模型应用于每个发射天线为了i = 1:cfgvht.numtransmitantennas txwaveform(:,i)=非线性(txwaveform(:,i));结尾

热噪声添加到具有6 dB噪声的波形中[3.].

nf = 6;%噪声图(DB)BW = FS * OSF;%带宽(Hz)k = 1.3806e-23;%boltzman常数(j / k)t = 290;%环境温度(k)noisePower = 10 * log10 (k * T * BW) + NF;awgnChannel = comm.AWGNChannel (“NoiseMethod”“方差”......“方差”,10 ^(NoisePower / 10));txwaveform = awgnchannel(txwaveform);

调制精度(EVM)和光谱平坦度测量

过采样的波形被重新采样到基带,用于物理层处理和EVM和光谱平坦度测量。作为重采样的一部分,在降采样前应用低通抗混叠滤波器。低通滤波器的影响将在光谱平坦度测量中可见。波形被重新采样到基带使用dsp.firdecimator.使用相同的系数用于示例中早些时候用于过采样的系数。

%重组到基带DecimationFilter = DSP.FirdEcimator(OSF,'分子',coeffs);rxwaveform = decimationfilter(txwaveform);

每个包内rxWaveform检测,同步和提取。对每个分组进行EVM和光谱平坦度测量。对每个数据包执行以下步骤:

  • 检测到数据包的开始

  • 提取非HT字段,并执行粗载波频率偏移(CFO)估计和校正

  • 频率纠正的非HT字段用于估计精细符号定时

  • 数据包提取波形使用精细的符号定时偏移

  • 提取的数据包用粗糙的CFO估计进行校正

  • L-LTF被提取并用于估计精细的CFO。对整个数据包更正了偏移量

  • 提取VHT-LTF,对每个发送流执行信道估计

  • 信道估计用于测量光谱平整度

  • 提取VHT数据场并进行OFDM解调

  • 使用导频子载波的解调数据现场导频和单流信道估计来执行噪声估计

  • 使用信道和噪声估计,VHT数据字段是相位校正和均衡

  • 对于每个空间流中的每个数据携带子载波,找到最接近的星座点并计算EVM

加工链如下图所示:

注意VHT-LTF符号包括导频符号,以允许相位跟踪,但在此示例中未完成。

通过测量信道估计中单个子载波的大小对平均的偏差来测试每个包的频谱平坦度[1].使用helper函数为每个包绘制这些偏差vhttxspectralflatnessmeasurement..每个数据携带子载波的平均EVM和均衡符号被绘制为每个分组。

功能Wlanvhtdatarecover用于解调,均衡和解码VHT数据符号。在该示例中使用均衡符号来测量调制精度。参数化该功能以执行标准要求执行导频相位跟踪和零强制均衡。

使用两个实例在此示例中进行了两个不同的EVM测量comm.evm..第一个度量是每个包的RMS EVM。对于这种测量,EVM是在子载波、OFDM符号和空间流上平均的。

Evmperpkt = comm.evm;Evmperpkt.averagingDimensions = [1 2 3];%nst-by-ny-nssEvmperpkt.normalization =.'平均星座力量';Evmperpkt.refercesignalSource =.'从参考星座估计';EVMPerPkt。ReferenceConstellation = wlanReferenceSymbols (cfgVHT);

第二个度量是一个包的每个子载波每个空间流的RMS EVM。由于空间流在此设置中直接映射到天线,该测量可以帮助检测可能对单个射频链产生不同影响的频率相关损伤。对于这种测量,EVM仅在OFDM符号上取平均值。

%测量符号上的平均EVMevmpersc = comm.evm;EVMPERSC.AveragingDimensions = 2;%nst-by-ny-nssEVMPERSC.normalization =.'平均星座力量';evmpersc.refercesignalSource =.'从参考星座估计';evmpersc.referenceConstellation = wlanrefercessmbols(cfgvht);

以下代码配置对象和变量进行处理。

%索引用于访问时域数据包中的每个字段IND = WLANFIELDINDIDICES(CFGVHT);rxwaveformlength = size(rxwaveform,1);pktlength = double(ind.vhtdata(2));我们可以检测到%最小数据长度;样品中L-STF的长度minpktlen = double(ind.lstf(2)-ind.lstf(1))+ 1;%设置测量图[据hSF, hCon, hEVM] = vhtTxSetupPlots (cfgVHT);rmsEVM = 0 (numPackets, 1);pktOffsetStore = 0 (numPackets, 1);rng (savedState);%恢复随机状态

虽然循环用于检测和处理接收波形内的分组。样品偏移searchOffset.用于索引rxWaveform检测数据包。内部的第一个数据包rxWaveform被检测和处理。样本指数偏移searchOffset.然后递增以超出所处理的数据包rxWaveform然后检测并处理下一个数据包,直到没有检测到其他数据包为止。

pktnum = 0;searchOffset = 0;%在第一个样本开始(没有偏移量)尽管(searchOffset + minPktLen) < = rxWaveformLength%数据包检测pktOffset = wlanPacketDetect (rxWaveform cfgVHT。ChannelBandwidth,......searchOffset,0.9);%数据包从波形开始时偏移pktOffset = searchOffset + pktOffset;%如果没有数据包检测或偏移出波形的边界然后停止如果isempty(pktoffset)||(pktoffset <0)||......((pktoffset + Ind.lsig(2))> rxwaveFormLength)休息;结尾%提取非HT字段并执行粗略频率偏移校正%允许可靠的符号定时nonht = rxwaveform(pktoffset +(ind.lstf(1):Ind.lsig(2)),:);coarsefreqoff = wlancoarsecfoeStimate(nonht,cfgvht.channelbandwidth);nonht = helperfrequencyOffset(非HU,FS,-CoarseFreqoff);%确定L-LTF的预期开始和实际开始之间的偏移量L-LTF的百分比lltfoffset = wlanymboltimingestimate(nonht,cfgvht.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)'在索引:'num2str(pktoffset + 1)]);%对提取的数据包应用粗略频率校正rxpacket = helperfrequencyoffset(rxpacket,fs,-coarsefreqoff);%对提取的数据包进行精细的频偏校正lltf = rxpacket(ind.lltf(1):Ind.lltf(2),:);%提取L-LTFfinefreqoff = wlanfinecfoestimate(lltf,cfgvht.channelbandwidth);rxpacket = helperfrequencyOffset(rxpacket,fs,-finefreqoff);%提取VHT-LTF样本,解调并进行信道估计vhtltf = rxpacket(ind.vhtltf(1):Ind.vhtltf(2),:);vhtltfdemod = wlanvhtltfdemodulate(vhtltf,cfgvht);%获得单流通道估算chanestsspilots = vhtsinglestreamChanneLestimate(VHTLTFDEMOD,CFGVHT);%信道估计chanest = wlanvhtltfchannelestimate(vhtltfdemod,cfgvht);%光谱平坦度测量VHTTXSpectralflatnessmeasurement(Chanest,CFGVHT,PKTNUM,HSF);%从波形中提取VHT数据样本vhtdata = rxpacket(ind.vhtdata(1):Ind.Vhtdata(2),:);%估计VHT数据字段中的噪声功率noisevarvht = vhtnoiseestimate(vhtdata,chanestsspilots,cfgvht);%提取VHT数据样本并执行OFDM解调,均衡%和相位跟踪[〜,〜,eqsym] = wlanvhtdatarecover(vhtdata,chanest,noisevarvht,cfgvht,......'均衡 - 方法''ZF''先行者屏蔽''preeq');%使用零强制算法进行均衡在数据包的所有空间流中计算RMS EVMRMSEVM(PKTNUM)= EVMPERPKT(EQSYM);fprintf('RMS EVM:%2.2F %%,%2.2FDB \ n',RMSEVM(PKTNUM),20 * log10(RMSEVM(PKTNUM)/ 100));%计算RMS EVM每个子载波和数据包的空间流EVMPERSC = EVMPERSC(EQSYM);%nst-by-by-nss每个子载波的%绘制RMS EVM和均等的星座VHTTXEVMConstellationPlots(EQSYM,EVMPERSC,CFGVHT,PKTNUM,HCON,HEVM);%存储波形内每个分组的偏移量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(“没有检测到完整的数据包”);结尾
索引处的数据包1:41光谱平整度通过RMS EVM:2.36%,-32.55dB分组2在指数下:9801光谱平整度通过RMS EVM:2.32%,-32.70dB包号:19561光谱平整度通过RMS EVM:2.16%那-33.29dB Packet 4 at index: 29321 Spectral flatness passed RMS EVM: 2.16%, -33.31dB Packet 5 at index: 39081 Spectral flatness passed RMS EVM: 2.27%, -32.88dB Packet 6 at index: 48841 Spectral flatness passed RMS EVM: 1.93%, -34.29dB Packet 7 at index: 58601 Spectral flatness passed RMS EVM: 2.19%, -33.21dB Packet 8 at index: 68361 Spectral flatness passed RMS EVM: 2.06%, -33.70dB Packet 9 at index: 78121 Spectral flatness passed RMS EVM: 2.12%, -33.47dB Packet 10 at index: 87881 Spectral flatness passed RMS EVM: 2.01%, -33.95dB Packet 11 at index: 97641 Spectral flatness passed RMS EVM: 2.10%, -33.54dB Packet 12 at index: 107401 Spectral flatness passed RMS EVM: 2.20%, -33.14dB Packet 13 at index: 117161 Spectral flatness passed RMS EVM: 2.00%, -33.97dB Packet 14 at index: 126921 Spectral flatness passed RMS EVM: 2.11%, -33.52dB Packet 15 at index: 136681 Spectral flatness passed RMS EVM: 2.19%, -33.21dB Packet 16 at index: 146441 Spectral flatness passed RMS EVM: 1.88%, -34.52dB Packet 17 at index: 156201 Spectral flatness passed RMS EVM: 2.03%, -33.84dB Packet 18 at index: 165961 Spectral flatness passed RMS EVM: 2.43%, -32.28dB Packet 19 at index: 175721 Spectral flatness passed RMS EVM: 2.39%, -32.43dB Packet 20 at index: 185481 Spectral flatness passed RMS EVM: 2.63%, -31.60dB Average EVM for 20 packets: 2.18%, -33.24dB

传输频谱发射掩模测量

在该示例中,测量高功率放大器建模后滤波和受损波形的光谱发射掩模。

VHT数据场的时间门控光谱测量用于发射机光谱发射掩模测试[4.].作为基带处理基带波形内的每个分组的起始索引的一部分。这些索引用于从过采样中提取每个数据包的VHT数据字段txwaveform..在用于确定数据包指标的基带处理链中引入的任何延迟都必须在将VHT数据字段内置于网上时来计算txwaveform..提取的VHT数据字段在准备测量时连接。

startIdx = osf * (ind.VHTData (1) 1) + 1;VHT数据的上采样启动endIdx = osf * ind.VHTData (2);%ups采样的VHT数据结束延迟= grpdelay (decimationFilter, 1);减速器的%组延迟idx = 0 (endIdx-startIdx + 1, pktNum);为了我= 1:pktNumTxWAVEFORM中的数据包的百分比pktoffset = OSF * pktoffsetstore(i)--delay;tx波形中VHT数据的%指数idx (:, i) = (pktOffset + (startIdx: endIdx));结尾gatedvhtdata = txwaveform(idx(:),:);

光谱掩模由标准相对于峰值功率谱密度指定。由辅助功能生成的曲线救济人街光刻壁垒用测量的PSD覆盖所需的掩模。

allowspectrespectralmasktest(gatedvhtdata,fs,OSF);
光谱掩模通过了

结论与进一步探索

这个例子给出了四个结果;频谱平坦度、每副载波均方根EVM、均衡星座和频谱掩模。

高功率放大器模型引入了显着的带状扭曲和光谱再生,在EVM结果,噪声星座和光谱掩模图中的带外排放中可见。尝试增加高功率放大器退避,并注意改进的EVM,星座和较低的带外排放。

光谱滤波和下采样(使波形到基带进行处理)阶段包括过滤。这些滤波器响应会影响光谱平坦度测量。光谱平坦度测量中的纹波主要是由于下采样到基带。尝试使用不同的滤波器或过滤器长度,并记下对光谱平整度的影响。

附录

此示例使用以下辅助功能:

选定的书目

  1. IEEE STD 802.11AC™-2013信息技术的IEEE标准 - 系统之间的电信和信息交流 - 本地和大都市区域网络 - 特定要求 - 第11部分:无线LAN介质访问控制(MAC)和物理层(PHY)规格 - 修正4:在6 GHz低于6 GHz的频段中操作的高吞吐量的增强功能。

  2. LOC和Cheong。IEEE P802.11无线局域网。TGAC功能要求和评估方法Rev.11-01-19。

  3. 荔枝,E.和R. Stacey。下一代无线局域网:802.11n和802.11ac。第2版​​。英国:剑桥大学出版社,2013年。

  4. 阿尚博、杰里和舒拉万·苏里尼。IEEE 802.11使用矢量信号分析仪进行频谱测量。射频设计27.6(2004):38-49。