主要内容

802.11ac接收机最小输入灵敏度测试

此示例显示如何测量IEEE Std 802.11™-2020标准第21.3.18.1节所规定的接收机最小输入灵敏度[1].

简介

接收机最小灵敏度测试确保被测设备(DUT)在定义的最小信号功率下以定义的最大分组错误率(PER)为10%的方式接收数据。最小信号功率取决于IEEE Std 802.11™-2020中表21-25所规定的信道带宽和调制与编码方案(MCS) [1]:

当使用硬件进行测试时,DUT上的每个输入天线端口都通过电缆连接到发射机的单个输出天线端口。要执行测试,请为测试波形指定以下参数:

  • 空间流的数量-等于发射天线的数量

  • PSDU长度,以字节为单位- 4096

  • 空时分组编码(STBC) -禁用

  • 保护间隔,以纳秒为单位- 800

  • 信道编码-二进制卷积编码(BCC)

这个例子展示了如何使用WLAN工具箱™来模拟测试。VHT包以低于最低灵敏度水平的输入电平刺激接收器。然后,该示例测量每个灵敏度级别的包错误率。

该示例通过在一系列灵敏度级别上执行这些步骤来模拟测试:

  • 生成并扩展数据包到所需的信号级别

  • 添加高斯白噪声是为了在接收机上创建一个噪声底

  • 解调有噪声的报文来恢复psdu。

  • 将恢复的psu与传输的psu进行比较,以确定数据包错误的数量,从而确定数据包错误率。

该接收机实现了自动增益控制(AGC)、包检测、定时同步、载波频偏校正、噪声估计和相位跟踪。下图演示了每个数据包的处理过程:

测试参数

通过使用VHT配置对象为测试配置传输。这个例子测量了160 MHz传输的最小灵敏度,64-QAM速率5/6调制和编码。仿真DUT有2个接收天线。通过更改这些参数来测试不同的配置。

cfgVHT = wlanVHTConfig;创建VHT传输配置cfgVHT。ChannelBandwidth =“CBW160”%的带宽cfgVHT。MCS = 7;% 64-QAM,速率5/6numreceiveantenna = 2;%接收天线个数

测试需要这些固定的传输参数。

cfgVHT。一个PEPLength = 4096;%字节cfgVHT。STBC = false;cfgVHT。numtransmitantenna = numreceiveantenna;cfgVHT。NumSpaceTimeStreams = numreceiveantenna;cfgVHT。SpatialMapping =“直接”;cfgVHT。GuardInterval =“长”

仿真参数

接收器以低于最小输入灵敏度水平的输入电平范围处理VHT包。在向量中指定要测试的偏移量范围testInputLevelOffsets

testinputleveloffset = [-10 -9 -8 -7];% dB

通过指定以下参数控制在每个灵敏度下测试的数据包数量:

  1. maxNumErrors在每个输入级别上模拟的数据包错误的最大数目。当数据包错误数达到此限制时,该灵敏度级别的模拟完成。

  2. maxNumPackets在每个输入级别上模拟的最大数据包数,并在未达到数据包错误限制时限制模拟的长度。

在这个例子中选择的数字导致一个非常短的模拟。增加maxNumErrors而且maxNumPackets为了有意义的结果。

maxNumErrors = 20;maxNumPackets = 200;

信号电源设置

最小灵敏度测试指定每个接收天线测量的输入电平的最大PER。在这个模拟中,接收机处理一个测试信号与指定的输入电平dBm。生成测试信号使用wlanWaveformGenerator函数。的wlanWaveformGenerator函数将波形归一化,使所有天线的功率总和为0 dBm。因此,缩放波形发生器的输出以创建所需的输入电平。

接收器最小输入电平灵敏度为20mhz,表21-25。的带宽增加一倍,灵敏度提高3dB。rxMinSensitivityTable = [-82 -79 -77 -74 -70 -66 -65 -64 -59 -57];% dBm给定MCS和带宽,获得最小输入灵敏度fs = wlanSampleRate(cfgVHT);基带采样率(Hz)B =楼层(10*log10((fs/20e6)));%带宽标量rxMinSensitivity = rxMinSensitivityTable(cfgVHT.MCS+1)+B;% dBmdisp ([“MCS的最低灵敏度”num2str (cfgVHT.MCS)”、“...num2str (fs / 1 e6)MHz:num2str (rxMinSensitivity' % 2.1 f 'dBm的])
MCS7的最小灵敏度,160 MHz: -55.0 dBm

定义小于测试使用的最小电平的输入电平范围testInputLevels

testInputLevels = rxMinSensitivity+testInputLevelOffsets;% dBm

计算电压标量,一个,为每个测试级别缩放生成的波形。仿真过程中测量每个接收天线端口的功率,以确认输入信号电平是正确的。

A = 10.^((testInputLevels-30)/20);电压增益(衰减)%A = A*sqrt(cfgvht . numtransmitantenna);%用于发电机缩放

噪音的配置

在接收端增加热噪声。噪声底板的高度决定了接收机的信噪比,因为输入信号电平对于这个测试是固定的。接收机的噪声系数决定了噪声底限的水平。

Nf = 6;%噪音系数(dB)T = 290;%环境温度(K)BW = fs;%带宽(Hz)K = 1.3806e-23;%玻尔兹曼常数(J/K)噪声地板= 10*log10(k*T*BW)+NF;% dBdisp ([“接收机噪声地板:”num2str (noiseFloor + 30,' % 2.1 f 'dBm的])
接收机噪声底面:-85.9 dBm

使用AWGN信道向波形中添加噪声,comm.AWGNChannel

awgnChannel = com . awgnChannel (“NoiseMethod”“方差”...“方差”10 ^ (noiseFloor / 10));

输入电平灵敏度模拟

通过模拟多个数据包,计算每个输入级别的数据包错误率。

对于每个数据包执行以下处理步骤:

  1. 创建并编码一个PSDU以创建单个数据包波形。

  2. 通过缩放波形在dBm中创建所需的输入电平。

  3. 测量接收波形的功率。

  4. 在接收波形中添加AWGN。

  5. 在处理前通过自动增益控制来增强信号。

  6. 检测报文。

  7. 估计和纠正粗载波频偏。

  8. 建立良好的定时同步。

  9. 估计和纠正精细载波频偏。

  10. 提取和OFDM解调VHT-LTF并进行信道估计。

  11. 提取VHT Data字段并恢复PSDU。

ind = wlanFieldIndices(cfgVHT);用于访问数据包中的字段chanBW = cfgVHT.ChannelBandwidth;rng (0);为可重复性设置随机状态agc = com . agc;自动增益控制S = numel(testInputLevels);packetErrorRate = 0 (S,1);rxAntennaPower = 0 (S,1);i = 1:年代disp ([“模拟”num2str (testInputLevels(我),' % 2.1 f '...dBm输入级…]);%循环模拟多个数据包numPacketErrors = 0;测量功率= 0 (maxNumPackets,1);%每根天线的平均功率numPkt = 1;%发送的报文索引numPacketErrors<=maxNumErrors && numPkt<=maxNumPackets生成报文波形txPSDU = randi([0 1],cfgVHT.PSDULength*8,1);% PSDULength(以字节为单位)tx = wlanWaveformGenerator(txPSDU,cfgVHT);将输入信号调整到所需的电平rx = tx.*A(i);测量天线连接器的平均功率,单位为瓦measuredPower(numPkt) = mean(mean(rx.*conj(rx)));在接收端添加噪声下限rx = awgnChannel(rx);%通过AGC传递每个通道IC = 1:size(rx,2) rx(:, IC) = agc(rx(:, IC));重置(agc);结束包检测和确定粗包偏移coarsePktOffset = wlanPacketDetect(rx,chanBW);如果isempty (coarsePktOffset)%如果为空,未检测到L-STF;包错误numPacketErrors = numPacketErrors+1;numPkt = numPkt+1;继续%转到下一次循环迭代结束提取L-STF并进行粗频偏校正lstf = rx(coarsePktOffset+(ind.LSTF(1):ind.LSTF(2)),:);粗freqoff = wlan粗secfoestimate (lstf,chanBW);rx = frequencyOffset(rx,fs,-粗freqoff);提取非ht字段并确定细包偏移量nonhtfields = rx(coarsePktOffset+(ind.LSTF(1):ind.LSIG(2)),:);finePktOffset = wlanSymbolTimingEstimate(nonhtfields,chanBW);确定最终数据包偏移量pktOffset = coarsePktOffset+finePktOffset;%如果检测到的数据包超出合理范围(>50个样本);数据包错误百分比如果pktOffset>50 numPacketErrors = numPacketErrors+1;numPkt = numPkt+1;继续%转到下一次循环迭代结束提取L-LTF并执行精细的频偏校正lltf = rx (pktOffset + (ind.LLTF (1): ind.LLTF (2)),:);fineFreqOff = wlanFineCFOEstimate(lltf,chanBW);rx = frequencyOffset(rx,fs,-fineFreqOff);从波形中提取VHT-LTF样本,解调并执行%信道估计vhtltf = rx(pktOffset+(ind.VHTLTF(1):ind.VHTLTF(2)),:);vhtltfDemod = wlanVHTLTFDemodulate(vhtltf,cfgVHT);chanEst = whtltfchannelestimate (vhtltfDemod,cfgVHT);获得单个流通道估计chanEstSSPilots = vhtSingleStreamChannelEstimate(vhtltfDemod,cfgVHT);从波形中提取VHT数据样本vhtdata = rx(pktOffset+(ind.VHTData(1):ind.VHTData(2)),:);估计VHT数据场的噪声功率nEstVHT = vhtNoiseEstimate(vhtdata,chanEstSSPilots,cfgVHT);恢复VHT数据中传输的PSDUrxPSDU = wlanVHTDataRecover(vhtdata,chanEst,nEstVHT,cfgVHT,...“LDPCDecodingMethod”“norm-min-sum”);确定是否有任何位错误,即数据包错误。packetError = any(biterr(txPSDU,rxPSDU));numPacketErrors = numPacketErrors+packetError;numPkt = numPkt+1;结束计算输入水平点的包错误率(PER)packetErrorRate(i) = numPacketErrors/(numPkt-1);disp ([“完成后”...num2str (numPkt-1)' packets, PER: '...num2str (packetErrorRate (i))));计算每个天线的平均输入功率rxAntennaPower(i) = 10*log10(mean(measuredPower(1:(numPkt-1))))+30;disp ([测得的天线连接器功率:...num2str (rxAntennaPower(我),' % 2.1 f 'dBm的]);结束
模拟-65.0 dBm输入电平…完成21包后,PER: 1测量天线连接器功率:-65.0 dBm模拟-64.0 dBm输入电平…完成26包后,PER: 0.80769测量天线连接器功率:-64.0 dBm模拟-63.0 dBm输入电平…完成130包后,PER: 0.16154测量天线连接器功率:-63.0 dBm模拟-62.0 dBm输入电平…完成200包后,PER: 0.02测量天线连接器功率:-62.0 dBm

分析与进一步探索

用最小灵敏度下的最大PER绘制测试输入信号电平的PER。

图semilogy (rxAntennaPower packetErrorRate,“啊——”)举行semilogy (rxMinSensitivity, 0.1,“处方”)当前lim = xlim(gca);Xlim ([currentxlim(1) currentxlim(2)+1])网格包含(每天线连接器测量功率(dBm));ylabel (“每”);传奇(“模拟PER性能”“最小灵敏度下的最大PER”);标题(sprintf (['最小输入灵敏度测试:MCS%d, %d MHz, '...“% d天线”, cfgVHT.MCS fs / 1 e6, cfgVHT.NumTransmitAntennas))

图显示,模拟的10% PER比测试指定的最小灵敏度低8 dB。这种差异是由于测试允许的实现边际造成的。与理想的AWGN性能相比,实现余量允许由于损伤和接收机噪声而导致的算法退化[2].在本例中,只将AWGN作为减值项添加。因此,在AWGN存在的情况下,只有前端同步、信道估计和相位跟踪的算法性能使用了实现余量。如果在模拟中包含更多的损伤,图中的PER瀑布将向最小灵敏度移动,边际将下降。

在每个信噪比点上测试的数据包数量由两个参数控制;maxNumErrors而且maxNumPackets.为了得到有意义的结果,您应该使用比本例中使用的数字更大的数字。

附录

本例使用了以下helper函数:

选定的参考书目

  1. IEEE Std 802.11™-2020。IEEE信息技术标准。系统间的电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。

  2. Perahia, Eldad和Robert Stacey。下一代无线局域网:802.11n和802.11ac。剑桥大学出版社,2013年。