physical layer abstraction for system-凯发k8网页登录
this example demonstrates ieee® 802.11ax™ physical layer abstraction for system-level simulation. a link quality model and link performance model based on the tgax evaluation methodology are presented and validated by comparing with published results.
introduction
modeling the full physical layer processing at each transmitter and receiver when simulating large networks is computationally expensive. physical layer abstraction, or link-to-system mapping is a method to run simulations in a timely manner by accurately predicting the performance of a link in a computationally efficient way.
this example demonstrates physical layer abstraction for the data portion of an 802.11ax [ 1 ] packet based on the tgax evaluation methodology [ 2 ].
there are two parts to the physical layer abstraction model [ 3, 4 ]:
the link quality model calculates the post-equalizer signal to interference and noise ratio (sinr) per subcarrier. for a receiver, this is based on the location and transmission characteristics of the transmitter of interest, and interfering transmissions, and the impact of large- and small-scale fading.
the link performance model predicts the instantaneous packet error rate (per), and therefore transmission success of an individual packet, given the sinr per subcarrier and coding parameters used for the transmission.
the example is split into two parts:
part a demonstrates the link quality model used to obtain the sinr per subcarrier and validates it by comparing the results for a residential scenario as per the box 2 tests in the tgax evaluation methodology. the objective of box 2 tests is to align the distribution of small and large scale fading channels with mimo configurations of tgax contributors.
part b demonstrates the link performance model used to estimate the per, and compares the result of using the abstraction against a link-level simulation with a fading tgax channel model as per the box 0 tests in the tgax evaluation methodology. the objective of box 0 tests is to align phy abstractions of tgax contributors.
part a - link quality model
the link quality model implements the box 2 sinr equation from the tgax evaluation methodology. the multiple-input-multiple-output (mimo) sinr per subcarrier (index ) and spatial stream (index ) between the transmitter and receiver of interest is given by
.
the sinr takes into account the path-loss and fading channels between all transmitters and the receiver, and precoding applied at the transmitters. the power of the signal of interest is given by
,
where is the received power of the signal of interest, is the linear receiver filter, is the channel matrix between the transmitter and receiver of interest, and is the precoding matrix applied at the transmitter.
the power of intra-user interference is given by
.
the power of inter-user interference is given by
,
where is the set of interfering transmitters in the th basic service set (bss)
the noise power is given by
,
where is the noise power spectral density.
generate a channel matrix per subcarrier
the link quality model requires a channel matrix per subcarrier. calculate the channel matrix from the path gains returned from the fading channel model wlantgaxchannel
by using the helperperfectchannelestimate()
helper function. efficiently generate path gains by setting the channelfiltering
property of wlantgaxchannel
to false
.
sprev = rng('default'); % seed random number generator and store previous state % get an he ofdm configuration: 80 mhz channel bandwidth, 3.2 us guard % interval ofdminfo = wlanheofdminfo('he-data','cbw80',3.2); k = ofdminfo.activefrequencyindices; % configure channel to return path gains for one ofdm symbol tgax = wlantgaxchannel; tgax.channelbandwidth = 'cbw80'; tgax.samplerate = 80e6; % mhz tgax.channelfiltering = false; tgax.numsamples = ofdminfo.fftlength ofdminfo.cplength; % generate channel matrix per subcarrier for signal of interest pathgains = tgax(); % get path gains chaninfo = info(tgax); % get channel info for filter coefficients chanfilter = chaninfo.channelfiltercoefficients; hsoi = helperperfectchannelestimate(pathgains,chanfilter, ... ofdminfo.fftlength,ofdminfo.cplength,ofdminfo.activefftindices); % generate channel matrix per subcarrier for interfering signal reset(tgax); % get a new channel realization pathgains = tgax(); hint = helperperfectchannelestimate(pathgains,chanfilter, ... ofdminfo.fftlength,ofdminfo.cplength,ofdminfo.activefftindices);
sinr calculation
calculate and visualize the post-equalizer sinr per subcarrier with the calculatesinr
and plotsinr
helper functions.
psoi = -20; % signal of interest received power (dbm) pint = -45; % interfering signal received power (dbm) n0 = -85; % noise power (dbm) w = ones(ofdminfo.numtones,1); % precoding matrix (assume no precoding) sinr = calculatesinr(hsoi,db2pow(psoi-30),w,db2pow(n0-30),{hint},db2pow(pint-30),{w}); plotsinr(sinr,hsoi,psoi,hint,pint,n0,k);
tgax evaluation methodology box 2 - verify sinr calibration
this section validates the sinr calculation by comparing the cumulative density function (cdf) of per-subcarrier sinrs with calibration results provided by the tgax working group. we compare the sinr calculation with results published by tgax [ 5 ] for box 2, test 3: "downlink transmission per basic channel access rule" for the residential scenario.
for more information about the scenario, and for the results of long-term sinr calibration see the 802.11ax phy-focused system-level simulation example.
the major simulation parameters are defined as either belonging to physical layer (phy), medium access control layer (mac), scenario, or simulation. in this example the phy and mac parameters are assumed to be the same for all nodes.
sinrcalibration = true; % disable box 2 calibration if sinrcalibration phyparams = struct; phyparams.txpower = 20; % transmitter power in dbm phyparams.txgain = 0; % transmitter antenna gain in dbi phyparams.rxgain = -2; % receiver antenna gain in dbi phyparams.noisefigure = 7; % receiver noise figure in db phyparams.numtxantennas = 1; % number of transmitter antennas phyparams.numsts = 1; % number of space-time streams phyparams.numrxantennas = 1; % number of receiver antennas phyparams.channelbandwidth = 'cbw80'; % bandwidth of system phyparams.transmitterfrequency = 5e9; % transmitter frequency in hz macparams = struct; macparams.numchannels = 3; % number of non-overlapping channels macparams.ccalevel = -70; % transmission threshold in clear channel assessment algorithm (dbm)
the scenario parameters define the size and layout of the residential building as per [ 6 ]. note only one receiver (sta) can be active at any given time.
scenarioparams = struct; scenarioparams.buildinglayout = [10 2 5]; % number of rooms in [x,y,z] directions scenarioparams.roomsize = [10 10 3]; % size of each room in metres [x,y,z] scenarioparams.numrxperroom = 1; % number of receivers per room.
the numdrops
and numtxeventsperdrop
parameters control the length of the simulation. in this example, these parameters are configured for a short simulation. a 'drop' randomly places transmitters and receivers within the scenario and selects the channel for a bss. a 'transmission' event randomly selects transmitters and receivers for transmissions according to the basic clear channel assessment (cca) rules defined in the evaluation methodology.
simparams = struct;
simparams.test = 3; % downlink transmission per basic channel access rule
simparams.numdrops = 3;
simparams.numtxeventsperdrop = 2;
the function box2simulation
runs the simulation by performing these steps:
randomly drop transmitters (aps) and receivers (stas) within the scenario.
calculate the large-scale path loss and generate frequency-selective tgax fading channels for all non-negligible links.
for each transmission event, determine active transmitters and receivers based on cca rules.
calculate and return the sinr per subcarrier and the effective sinr for each active receiver as per box 2, test 3 in the tgax evaluation methodology.
box2results = box2simulation(phyparams,macparams,scenarioparams,simparams);
plot the cdf of the sinr per subcarrier and effective sinr (as defined in box 2, test 3) against submitted calibration results.
tgaxcalibrationcdf(box2results.sinr(:), ... ['ss1box2test' num2str(simparams.test) 'a'],'cdf of sinr per subcarrier'); tgaxcalibrationcdf(box2results.sinreff(:), ... ['ss1box2test' num2str(simparams.test) 'b'],'cdf of effective sinr per reception'); end
running drop #1/3 ... generating 3518 fading channel realizations ... running transmission event #1/2 ... running transmission event #2/2 ... running drop #2/3 ... generating 3366 fading channel realizations ... running transmission event #1/2 ... running transmission event #2/2 ... running drop #3/3 ... generating 3750 fading channel realizations ... running transmission event #1/2 ... running transmission event #2/2 ...
increase the number of drops for a more accurate comparison.
part b - link performance model
the link performance model predicts the instantaneous per given the sinr per subcarrier calculated in part a and coding parameters used for the transmission.
effective sinr mapping and averaging is used to compress the post-equalizer sinr per subcarrier into a single effective snr. the effective snr is the snr that provides an equivalent per performance with an additive white gaussian noise (awgn) channel as with the fading channel. a pre-computed lookup table, generated with wlan toolbox™, provides the per for an snr under an awgn channel for a given channel coding, modulation scheme, and coding rate. once the per is obtained, a random variable determines whether the packet has been received in error.
the tgax evaluation methodology per estimation procedure is used in this example considering a single interference event.
the effective sinr is calculated using the received bit mutual information rate (rbir) mapping function;
.
is the rbir mapping function, which transforms the sinr of each subcarrier to an “information measure" for the modulation scheme . the rbir mapping function for bpsk, qpsk, 16qam, 64qam and 256qam is provided in [ 7 ].
is the inverse rbir mapping function, which transforms an “information measure” back to the snr domain.
is the number of spatial-streams.
is the number of subcarriers.
is the post-equalizer sinr of the th subcarrier and th spatial-stream.
and are tuning parameters. the tgax evaluation methodology assumes no tuning therefore in this example we assume these are set to 1.
the per for a reference data length is obtained by looking up the appropriate awgn table, , given the modulation and coding scheme (mcs), channel coding scheme, and reference data length ()
,
where the reference data length depends on the channel coding and data length for the transmission .
.
the final estimated per is then adjusted for the data length:
.
the described method assumes the sinr is constant for the duration of the packet. the tgax evaluation methodology describes techniques to deal with time-varying interference and estimate the error rate of media access control protocol data units (mpdus) within an aggregate mpdu (a-mpdu).
calculate effective sinr
calculate the effective sinr and the per using the tgaxlinkperformancemodel
example helper object.
abstraction = tgaxlinkperformancemodel;
the effectivesinr
method calculates the effective sinr given the modulation scheme and post equalizer sinr per subcarrier and spatial stream.
format = 'he_su'; mcs = 6; % mcs 6 is 64-qam [snreff,rbir_sc,rbir_av] = effectivesinr(abstraction,sinr,format,mcs);
the rbir (information measure) per subcarrier obtained by mapping the sinr per subcarrier, and the average rbir are shown in the first figure subplot. the effective sinr per subcarrier is obtained by inverse mapping the average rbir and is shown in the second subplot.
plotrbir(sinr,snreff,rbir_av,rbir_sc,k);
estimate packet error rate
given the effective snr, estimate the per by linearly interpolating and extrapolating a pre-computed awgn link-level curve in the logarithmic domain, and adjusting for the data length. the estimateper
method returns the final per, per
, and the awgn lookup table used, lut
.
channelcoding = "ldpc"; datalength = 1458; % bytes [per,~,~,lut] = estimateper(abstraction,snreff,format,mcs,channelcoding,datalength); % plot the awgn lookup table and the estimated per figure; semilogy(lut(:,1),lut(:,2)); grid on hold on plot(snreff,per,'d'); legend('awgn ldpc lookup table','estimated per from effective sinr') title('packet error rate') xlabel('snr (db)') ylabel('per')
tgax evaluation methodology box 0 - verify effective snr vs per performance
to verify the entire physical-layer abstraction method, the per from a link-level simulation is compared with the per estimates using the abstraction. this follows steps 2 and 3 of box 0 testing in the tgax evaluation methodology. an 802.11ax single-user link is modeled with perfect synchronization, channel estimation, and no impairments apart from a fading tgax channel model and awgn. only errors within data portion of a packet are considered.
in this example the snrs to simulate are selected based on the mcs, number of transmit and receive antennas, and channel model for the given phy configuration. the number of space-time streams is assumed to equal the number of transmit antennas. the simulation is configured for a short run; for more meaningful results you should increase the number of packets to simulate.
verifyabstraction = true; % disable box 0 simulation if verifyabstraction % simulation parameters mcs = [4 8]; % vector of mcs to simulate between 0 and 11 numtxrx = [1 1]; % matrix of mimo schemes, each row is [numtx numrx] chan = "model-d"; % string array of delay profiles to simulate maxnumerrors = 1e1; % the maximum number of packet errors at an snr point maxnumpackets = 1e2; % the maximum number of packets at an snr point % fixed phy configuration for all simulations cfghe = wlanhesuconfig; cfghe.channelbandwidth = 'cbw20'; % channel bandwidth cfghe.apeplength = 1000; % payload length in bytes cfghe.channelcoding = 'ldpc'; % channel coding % generate a structure array of simulation configurations. each element is % one snr point to simulate. simparams = getbox0simparams(chan,numtxrx,mcs,cfghe,maxnumerrors,maxnumpackets); % simulate each configuration results = cell(1,numel(simparams)); % parfor isim = 1:numel(simparams) % use 'parfor' to speed up the simulation for isim = 1:numel(simparams) results{isim} = box0simulation(simparams(isim)); end
the suitability of the abstraction is determined by comparing the per calculated by link-level simulation and abstraction. the first figure compares the pers at each snr simulated.
plotpervssnr(simparams,results);
the second figure compares the number of successfully decoded link-level simulation packets with an effective snr against the reference awgn curve. if the abstraction is successful the per should follow the awgn curve.
plotpervseffectivesnr(simparams,results);
end
model-d 1-by-1, mcs 4, snr 11 completed after 14 packets, per:0.78571 model-d 1-by-1, mcs 4, snr 15 completed after 22 packets, per:0.5 model-d 1-by-1, mcs 4, snr 19 completed after 100 packets, per:0.05 model-d 1-by-1, mcs 4, snr 23 completed after 100 packets, per:0.02 model-d 1-by-1, mcs 4, snr 27 completed after 100 packets, per:0 model-d 1-by-1, mcs 8, snr 21.5 completed after 13 packets, per:0.84615 model-d 1-by-1, mcs 8, snr 25.5 completed after 23 packets, per:0.47826 model-d 1-by-1, mcs 8, snr 29.5 completed after 100 packets, per:0.03 model-d 1-by-1, mcs 8, snr 33.5 completed after 100 packets, per:0.02 model-d 1-by-1, mcs 8, snr 37.5 completed after 100 packets, per:0
rng(sprev) % restore random state
in this example the tuning parameters and are set to 1. these could be tuned to further improve the accuracy of the abstraction if desired. the results when simulating 1000 packet errors or 100000 packets for mcs 0 to 9 for a 1458-byte packet without tuning is shown.
further exploration
to see how the 802.11ax physical layer abstraction described in this example can be used in a system-level simulation, see the example.
selected bibliography
ieee p802.11ax™/d4.1 draft 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 - amendment 6: enhancements for high efficiency wlan.
ieee 802.11-14/0571r12 - 11ax evaluation methodology.
brueninghaus, karsten, et al. "link performance models for system level simulations of broadband radio access systems." 2005 ieee 16th international symposium on personal, indoor and mobile radio communications. vol. 4. ieee, 2005.
mehlführer, christian, et al. "the vienna lte simulators-enabling reproducibility in wireless communications research." eurasip journal on advances in signal processing 2011.1 (2011): 29.
ieee 802.11-14/0800r30 - box 1 and box 2 calibration results.
ieee 802.11-14/0980r16 - tgax simulation scenarios.
ieee 802.11-14/1450r0 - box 0 calibration results