Main Content

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

This example shows how to measure the receiver minimum input sensitivity as specified in Section 21.3.18.1 of the IEEE Std 802.11™-2020 standard [1]。

Introduction

接收器的最小灵敏度测试可确保正在测试的设备(DUT)接收数据,并在定义的最小信号功率下定义的最大数据包错误率(PER)为10%。最小信号功率取决于IEEE STD 802.11™-2020表21-25中指定的通道带宽和调制和编码方案(MCS)[1]:

When the test is performed with hardware, each input antenna port on the DUT is connected through a cable to a single output antenna port of a transmitter. To perform the test, specify these parameters for the test waveform:

  • Number of spatial streams - equal to the number of transmit antennas

  • PSDU长度,字节-4096

  • Space-time block coding (STBC) - disabled

  • Guard interval, in nanoseconds - 800

  • Channel coding - binary convolutional coding (BCC)

This example shows how to simulate the test by using WLAN Toolbox™. VHT packets stimulate a receiver at a range of input levels below the minimum sensitivity level. The example then measures the packet error rate for each sensitivity level.

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

  • 生成和比例数据包达到所需的信号级别

  • 添加白色高斯的噪音是在接收器上创建噪声层

  • 解调嘈杂的数据包以恢复PSDU。

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

自动增益控制(AGC)、包检测ming synchronization, carrier frequency offset correction, noise estimation and phase tracking are performed by the example receiver. This diagram demonstrates processing for each packet:

测试参数

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

cfgVHT = wlanVHTConfig;%创建VHT传输配置CFGVHT.CHANNELBANDWIDTH ='CBW160';% Bandwidthcfgvht.mcs = 7;% 64-QAM, rate 5/6numreceiveantennas = 2;% Number of receive antennas

The test requires these fixed transmission parameters.

cfgvht.apeplength = 4096;% BytescfgVHT.STBC = false; cfgVHT.NumTransmitAntennas = NumReceiveAntennas; cfgVHT.NumSpaceTimeStreams = NumReceiveAntennas; cfgVHT.SpatialMapping ='Direct';cfgVHT.GuardInterval ='Long';

Simulation Parameters

一个receiver processes VHT packets at a range of input levels below the minimum input sensitivity level. Specify the range of offsets to test in the vectortestInputLevelOffsets

testInputLevelOffsets = [-10 -9 -8 -7];% D b

Control the number of packets tested at each sensitivity by specifying these parameters:

  1. maxNumErrorsis the maximum number of packet errors simulated at each input level. When the number of packet errors reaches this limit, the simulation at this sensitivity level is complete.

  2. maxnumpackets模拟在每个数据包的最大数量吗input level and limits the length of the simulation if the packet error limit is not reached.

The numbers chosen in this example lead to a very short simulation. IncreasemaxNumErrorsandmaxnumpacketsfor meaningful results.

maxnumerrors = 20;maxnumpackets = 200;

信号电源设置

The minimum sensitivity test specifies a maximum PER for a measured input level per receive antenna. In this simulation the receiver processes a test signal with a specified input level in dBm. Generate the test signal using thewlanWaveformGeneratorfunction. ThewlanWaveformGenerator功能使波形归一化,使所有天线的功率总和为0 dbm。因此,将波形生成器的输出扩展以创建所需的输入级别。

% Receiver minimum input level sensitivity for 20 MHz, Table 21-25. The敏感性的百分比增加了3DB,带宽两倍。rxMinSensitivityTable = [-82 -79 -77 -74 -70 -66 -65 -64 -59 -57];% D bm鉴于MC和带宽,获得最小输入灵敏度fs = wlanSampleRate(cfgVHT);% Baseband sampling rate (Hz)b =地板(10*log10((FS/20E6)));% Scalar for bandwidthrxMinSensitivity = rxMinSensitivityTable(cfgVHT.MCS+1)+B;% D bmdisp(['Minimum sensitivity for MCS'num2str(cfgVHT.MCS)', '...num2str(FS/1E6)'MHz:'num2str(rxMinSensitivity,'%2.1f'' dBm'])
Minimum sensitivity for MCS7, 160 MHz: -55.0 dBm

Define the range of input levels below the minimum level to test usingTestInputlevels

TestInputlevels= rxMinSensitivity+testInputLevelOffsets;% D bm

Calculate a voltage scalar,一个,,,,to scale the generated waveform for each test level. The power per receive antenna port is measured during the simulation to confirm the input signal level is correct.

一个= 10.^((testInputLevels-30)/20);% Voltage gain (attenuation)a = a*sqrt(cfgvht.numtransmitantennas);百分比为发电机缩放

Noise Configuration

一个dd thermal noise at the receiver. The height of the noise floor determines the SNR at the receiver, as the input signal level is fixed for this test. The noise figure of the receiver determines the level of noise floor.

NF = 6;%噪声图(DB)T = 290;%环境温度(K)BW = fs;%带宽(Hz)k = 1.3806e-23;% Boltzmann constant (J/K)noiseFloor = 10*log10(k*T*BW)+NF;% D bdisp(['Receiver noise floor: 'num2str(noiseFloor+30,'%2.1f'' dBm'])
Receiver noise floor: -85.9 dBm

一个dd noise to the waveform using an AWGN channel,Comm.AwgnChannel

awgnChannel = comm.AWGNChannel('noisemethod',,,,'Variance',,,,...'Variance',,,,10^(noiseFloor/10));

输入水平灵敏度模拟

Calculate the packet error rate for each input level by simulating multiple packets.

For each packet perform the following processing steps:

  1. Create and encode a PSDU to create a single packet waveform.

  2. Create the desired input level in dBm by scaling the waveform.

  3. Measure the power of the received waveform.

  4. 一个dd AWGN to the received waveform.

  5. Boost the signal prior to processing by passing through an automatic gain control.

  6. 检测数据包。

  7. 估计和正确的粗载频频率偏移。

  8. Establish fine timing synchronization.

  9. Estimate and correct fine carrier frequency offset.

  10. 提取和OFDM解码VHT-LTF并执行通道估计。

  11. Extract the VHT Data field and recover the PSDU.

ind = wlanFieldIndices(cfgVHT);% For accessing fields within the packetchanBW = cfgVHT.ChannelBandwidth; rng(0);%设置随机状态以重复性agc = comm.AGC;%自动增益控制S = numel(testInputLevels); packetErrorRate = zeros(S,1); rxAntennaPower = zeros(S,1);fori = 1:s disp([“模拟”num2str(testInputLevels(i),'%2.1f'...“ DBM输入级别...”);% Loop to simulate multiple packetsnumPacketErrors = 0; measuredPower = zeros(maxNumPackets,1);每个天线平均功率%numPkt = 1;传输数据包的%索引whilenumpacketerrors <= maxnumerrors && numpkt <= maxnumpackets% Generate a packet waveformtxPSDU = randi([0 1],cfgVHT.PSDULength*8,1);% PSDULength in bytestx = wlanWaveformGenerator(txPSDU,cfgVHT);% Scale input signal to desired levelrx = tx.*A(i);% Measure the average power at the antenna connector in WattsmeasuredPower(numPkt) = mean(mean(rx.*conj(rx)));%在接收器处添加噪声层rx = awgnchannel(rx);% Pass each channel through AGCforic = 1:size(rx,2) rx(:,ic) = agc(rx(:,ic)); reset(agc);end% Packet detect and determine coarse packet offsetcroumpktoffset = wlanpacketDetect(rx,chanbw);ifisempty(coarsePktOffset)% If empty no L-STF detected; packet errornumPacketErrors = numPacketErrors+1; numPkt = numPkt+1;继续;%转到下一个循环迭代end%提取L-STF并执行粗频校正lstf = rx(coarsePktOffset+(ind.LSTF(1):ind.LSTF(2)),:); coarseFreqOff = wlanCoarseCFOEstimate(lstf,chanBW); rx = frequencyOffset(rx,fs,-coarseFreqOff);% Extract the non-HT fields and determine fine packet offsetnonhtfields = rx(croumpktoffset+(ind.lstf(1):ind.lsig(2)),:);finepktoffset = wlansymboltimingestimate(nonhtfields,chanbw);% Determine final packet offsetpktOffset = coarsePktOffset+finePktOffset;%如果在合理范围内检测到数据包(> 50个样本);% packet errorifpktOffset>50 numPacketErrors = numPacketErrors+1; numPkt = numPkt+1;继续;%转到下一个循环迭代end%提取L-LTF并执行良好的频率偏移校正lltf = rx(pktOffset+(ind.LLTF(1):ind.LLTF(2)),:); fineFreqOff = wlanFineCFOEstimate(lltf,chanBW); rx = frequencyOffset(rx,fs,-fineFreqOff);% Extract VHT-LTF samples from the waveform, demodulate and perform% channel estimationvhtltf = rx(pktoffset+(ind.vhtltf(1):ind.vhtltf(2)),:);vhtltfdemod = wlanvhtltfdemodulate(vhtltf,cfgvht);chanest = wlanvhtltfchanneLestimate(vhtltfdemod,cfgvht);% Get single stream channel estimatechanEstSSPilots = vhtSingleStreamChannelEstimate(vhtltfDemod,cfgVHT);% Extract VHT Data samples from the waveformvhtdata = rx(pktoffset+(ind.vhtdata(1):ind.vhtdata(2)),:);% Estimate the noise power in VHT data fieldnestvht = vhtnoiseestimate(vhtdata,chanestspilots,cfgvht);% Recover the transmitted PSDU in VHT DatarxPSDU = wlanVHTDataRecover(vhtdata,chanEst,nEstVHT,cfgVHT);%确定是否有错误,即数据包错误PAXETERROR = ANY(biterr(txpsdu,rxpsdu));numpacketerrors = numpacketerrors+packeterror;numpkt = numpkt+1;end% Calculate packet error rate (PER) at input level pointpacketErrorRate(i) = numPacketErrors/(numPkt-1); disp([' Completed after '...num2str(numpkt-1)' packets, PER: '...num2str(packetErrortate(i))]);% Calculate average input power per antennarxAntennaPower(i) = 10*log10(mean(measuredPower(1:(numPkt-1))))+30; disp([' Measured antenna connector power: '...num2str(rxAntennaPower(i),'%2.1f'' dBm');end
Simulating -65.0 dBm input level... Completed after 21 packets, PER: 1 Measured antenna connector power: -65.0 dBm Simulating -64.0 dBm input level... Completed after 26 packets, PER: 0.80769 Measured antenna connector power: -64.0 dBm Simulating -63.0 dBm input level... Completed after 130 packets, PER: 0.16154 Measured antenna connector power: -63.0 dBm Simulating -62.0 dBm input level... Completed after 200 packets, PER: 0.02 Measured antenna connector power: -62.0 dBm

一个nalysis and Further Exploration

绘制测试的输入信号水平的Per,最大值以最小灵敏度为单位。

figure semilogy(rxAntennaPower,packetErrorRate,'o-')holdonsemilogy(rxMinSensitivity,0.1,'rx')currentxlim = xlim(gca); xlim([currentxlim(1) currentxlim(2)+1]) gridonxlabel(“每个天线连接器(DBM)的测量功率”);ylabel('PER');legend('Simulated PER performance',,,,'Maximum PER at minimum sensitivity');title(sprintf([“最小输入灵敏度测试:MCS%D,%D MHz,”...'%d Antennas'],cfgvht.mcs,fs/1e6,cfgvht.numtransmitantennas))))))

The plot reveals the simulated 10% PER is just under 8 dB lower than the minimum sensitivity specified by the test. This difference is due to the implementation margin allowed by the test. The implementation margin allows for algorithmic degradations due to impairments and the receiver noise figure when compared to ideal AWGN performance [2]。在此示例中,仅添加AWGN作为损害。因此,只有在存在AWGN的情况下,只有前端同步,通道估计和相跟踪的算法性能才能使用实现余量。如果在模拟中包括更多的障碍,则该图中的每个瀑布将直接向最小灵敏度移动,边缘将减小。

在每个SNR点测试的数据包的数量由两个参数控制;maxNumErrorsandmaxnumpackets。For meaningful results, you should use larger numbers than those used in this example.

附录

This example uses the following helper functions:

Selected Bibliography

  1. IEEE Std 802.11™-2020. IEEE Standard for Information Technology - Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.

  2. Perahia, Eldad, and Robert Stacey. Next Generation Wireless LANS: 802.11n and 802.11ac. Cambridge University Press, 2013.