Main Content

wlanFieldIndices

Generate PPDU field indices

Description

example

ind= wlanFieldIndices(cfg)returnsind, a structure containing the start and stop indices of the individual component fields that comprise the baseband physical layer convergence procedure protocol data unit (PPDU) waveform.

Note

non-high-throughput (non-HT)格式,这个函数tion supports generation of field indices only for OFDM modulation.

example

ind= wlanFieldIndices(cfg,field)returns the start and stop indices for the specified field type.

example

ind= wlanFieldIndices(___,OversamplingFactor=osf)returns field indices for an oversampled transmission with the specified oversampling factor. For more information about oversampling, seeFFT-Based Oversampling.

Examples

collapse all

Recover the information bits in the HE-SIG-A field of a WLAN HE single-user (HE-SU) waveform.

Create a WLAN HE-SU-format configuration object with default settings and use it to generate an HE-SU waveform.

cfgHE = wlanHESUConfig; cbw = cfgHE.ChannelBandwidth; waveform = wlanWaveformGenerator(1,cfgHE);

Obtain the WLAN field indices, which contain the HE-SIG-A field.

ind = wlanFieldIndices(cfgHE); rxSIGA = waveform(ind.HESIGA(1):ind.HESIGA(2),:);

Perform orthogonal frequency-division multiplexing (OFDM) demodulation to extract the HE-SIG-A field.

sigaDemod = wlanHEDemodulate(rxSIGA,'HE-SIG-A',cbw);

Return the pre-HE OFDM information and extract the demodulated HE-SIG-A symbols.

preHEInfo = wlanHEOFDMInfo('HE-SIG-A',cbw); siga = sigaDemod(preHEInfo.DataIndices,:);

Recover the HE-SIG-A information bits and other information, assuming no channel noise. Display the parity check result.

noiseVarEst = 0; [bits,failCRC] = wlanHESIGABitRecover(siga,noiseVarEst); disp(failCRC);
0

Extract the very-high-throughput short training field (VHT-STF) from a VHT waveform.

Create a VHT-format configuration object for a multiple-input/multiple-output (MIMO) transmission using a 160-MHz channel bandwidth. Generate the corresponding VHT waveform.

cfg = wlanVHTConfig('MCS',8,'ChannelBandwidth','CBW160',...'NumTransmitAntennas',2,'NumSpaceTimeStreams',2); txSig = wlanWaveformGenerator([1;0;0;1],cfg);

Determine the component PPDU field indices for the VHT format.

ind = wlanFieldIndices(cfg)
ind =struct with fields:LSTF: [1 1280] LLTF: [1281 2560] LSIG: [2561 3200] VHTSIGA: [3201 4480] VHTSTF: [4481 5120] VHTLTF: [5121 6400] VHTSIGB: [6401 7040] VHTData: [7041 8320]

The VHT PPDU waveform is comprised of eight fields, including seven preamble fields and one data field.

Extract the VHT-STF from the transmitted waveform.

stf = txSig(ind.VHTSTF(1):ind.VHTSTF(2),:);

Verify that the VHT-STF has dimension 640-by-2, corresponding to the number of samples (80 for each 20-MHz bandwidth segment) and the number of transmit antennas.

disp(size(stf))
640 2

Generate a VHT waveform. Extract and demodulate the VHT long training field (VHT-LTF) to estimate the channel coefficients. Recover the data field by using the channel estimate and use this field to determine the number of bit errors.

Configure a VHT-format configuration object with two paths.

vht = wlanVHTConfig('NumTransmitAntennas',2,'NumSpaceTimeStreams',2);

Generate a random PSDU and create the corresponding VHT waveform.

txPSDU = randi([0 1],8*vht.PSDULength,1); txSig = wlanWaveformGenerator(txPSDU,vht);

Pass the signal through a TGac 2x2 MIMO channel.

tgacChan = wlanTGacChannel('NumTransmitAntennas',2,'NumReceiveAntennas',2,...'LargeScaleFadingEffect','Pathloss and shadowing'); rxSigNoNoise = tgacChan(txSig);

Add AWGN to the received signal. Set the noise variance for the case in which the receiver has a 9-dB noise figure.

nVar = 10^((-228.6+10*log10(290)+10*log10(80e6)+9)/10); awgnChan = comm.AWGNChannel('NoiseMethod','Variance','Variance',nVar); rxSig = awgnChan(rxSigNoNoise);

Determine the indices for the VHT-LTF and extract the field from the received signal.

indVHT = wlanFieldIndices(vht,'VHT-LTF'); rxLTF = rxSig(indVHT(1):indVHT(2),:);

解调VHT-LTF和估计通道有限公司efficients.

dLTF = wlanVHTLTFDemodulate(rxLTF,vht); chEst = wlanVHTLTFChannelEstimate(dLTF,vht);

Extract the VHT-Data field and recover the information bits.

indData = wlanFieldIndices(vht,'VHT-Data'); rxData = rxSig(indData(1):indData(2),:); rxPSDU = wlanVHTDataRecover(rxData,chEst,nVar,vht);

Determine the number of bit errors.

numErrs = biterr(txPSDU,rxPSDU)
numErrs = 0

Create a WLAN HE MU configuration object and use it to generate an HE MU waveform with packet extension and an oversampling factor.

cfg = wlanHEMUConfig(192); cfg.User{1}.NominalPacketPadding = 16; bits = [1; 0; 0; 1]; osf = 3; waveform = wlanWaveformGenerator(bits,cfg,OversamplingFactor=osf);

Return and display the PPDU field indices.

ind = wlanFieldIndices(cfg,OversamplingFactor=osf); disp(ind)
LSTF: [1 480] LLTF: [481 960] LSIG: [961 1200] RLSIG: [1201 1440] HESIGA: [1441 1920] HESIGB: [1921 2400] HESTF: [2401 2640] HELTF: [2641 3600] HEData: [3601 11280] HEPE: [11281 11520]

Input Arguments

collapse all

Transmission format, specified as one of these configuration objects:wlanHESUConfig,wlanHEMUConfig,wlanHERecoveryConfig,wlanHETBConfig,wlanWURConfig,wlanVHTConfig,wlanHTConfig,wlanNonHTConfig,wlanDMGConfig, orwlanS1GConfig.

Example:cfg = wlanVHTConfig

PPDU field name, specified as a character vector. The valid set of values for this input depends on the transmission format you specify in thecfginput.

Transmission Format (cfg) Valid Field Name Values (field)
wlanHESUConfig,wlanHEMUConfig,wlanHERecoveryConfig, orwlanHETBConfig

'L-STF','L-LTF','L-SIG','RL-SIG','HE-SIG-A','HE-SIG-B','HE-STF','HE-LTF','HE-Data', or'HE-PE'

wlanWURConfig

'L-STF','L-LTF','L-SIG','BPSK-Mark1','BPSK-Mark2','WUR-Data', or'WUR-Sync'

wlanDMGConfig

'DMG-STF','DMG-CE','DMG-Header', and'DMG-Data'are common for all directional multi-gigabit (DMG) physical layer (PHY) configurations.

When theTrainingLengthof thewlanDMGConfigis positive, additional valid fields are'DMG-AGC','DMG-AGCSubfields','DMG-TRN','DMG-TRNCE', and'DMG-TRNSubfields'.

wlanS1GConfig

'S1G-STF','S1G-LTF1', and'S1G-Data'are common for all sub-one-gigahertz (S1G) configurations.

For a 1-MHz or greater than 2-MHz short preamble configuration, additional valid fields are'S1G-SIG'and'S1G-LTF2N'.

For a greater than 2-MHz long preamble configuration, additional valid fields are'S1G-SIG-A','S1G-DSTF','S1G-DLTF', and'S1G-SIG-B'.

wlanVHTConfig

'L-STF','L-LTF','L-SIG','VHT-SIG-A','VHT-STF','VHT-LTF','VHT-SIG-B', or'VHT-Data'

wlanHTConfig

'L-STF','L-LTF','L-SIG','HT-SIG','HT-STF','HT-LTF', or'HT-Data'

wlanNonHTConfig

'L-STF','L-LTF','L-SIG', or'NonHT-Data'

Data Types:char|string

Oversampling factor, specified as a scalar greater than or equal to 1. The oversampled field indices must be integer-valued.

Data Types:single|double|int8|int16|int32|int64|uint8|uint16|uint32|uint64

Output Arguments

collapse all

启动和停止指标,作为结构或返回an integer-valued matrix. The indices correspond to the start and stop indices of fields included in the baseband waveform defined by thecfginput.

If you specify thefieldinput, the function returnsindas anN-by-2 integer-valued matrix consisting of the start and stop indices of the specified PPDU field. This table outlines theNdimension of theN-by-2 matrix that is returned based on the specific format and configuration.

Format Configuration indor Specific Field Dimension

non-HT

1-by-2 matrix for each field

HT

1-by-2 matrix for each field

Null data packet (NDP) mode, if thePSDULengthproperty ofwlanHTConfigobject is0 Empty matrix

VHT and S1G

1-by-2 matrix for each field

NDP mode, if theAPEPLengthproperty of thewlanVHTConfigorwlanS1GConfigobject is0 Empty matrix
WUR cfg.NumUsers-by-2 matrix when you specify thefieldinput as'WUR-Sync'or'WUR-Data'. Otherwise, 1-by-2 matrix for each field.

HE(1)

1-by-2 matrix for each field

NDP mode, if theAPEPLengthproperty of thewlanHESUConfigorwlanHESUConfigobject is0 Empty matrix
When a midamble is added to the HE-Data field to improve channel estimates for high-Doppler scenarios

R-by-2 matrix when you specify thefieldinput as'HE-Data', whereRis the number of data blocks separated by midamble periods

DMG(2)

1-by-2 matrix for each field

When theTrainingLengthproperty ofwlanDMGConfigobject is positive 1-by-2 matrix when you specify thefieldinput as'DMG-AGC'or'DMG-TRN'
'DMG-AGCSubfields'is aTrainingLength-by-2 matrix.
TrainingLength-by-2 matrix when you specify thefieldinput as'DMG-TRNSubfields'
(TrainingLength/4)-by-2 matrix when you specify thefieldinput as'DMG-TRNCE'
When theTrainingLengthproperty ofwlanDMGConfigobject is0 Empty matrix when you specify thefieldinput as'DMG-AGC','DMG-TRN','DMG-AGCSubfields','DMG-TRNSubfields', or'DMG-TRNCE'.
  1. As described in section 27.3.12.16 of[1], you can add a midamble to the HE-Data field to improve the channel estimates for high-Doppler scenarios.

  2. For DMG, the'DMG-AGC'field containsNTrainingLengthsubfields, whereNTrainingLengthis 0–64 subfields. The'DMG-TRN'field containsNTrainingLength+ (NTrainingLength/4) subfields. As shown in this figure, the indices for'DMG-AGC'and'DMG-TRN'overlap with the indices of their respective subfields,'DMG-AGCSubfields'and'DMG-TRNSubfields'.

Data Types:uint32|struct

Algorithms

collapse all

FFT-Based Oversampling

Anoversampledsignal is a signal sampled at a frequency that is higher than the Nyquist rate. WLAN signals maximize occupied bandwidth by using small guardbands, which can pose problems for anti-imaging and anti-aliasing filters. Oversampling increases guardband width relative to the total signal bandwidth, thereby increasing the number of samples in the signal.

This function performs oversampling by using a larger IFFT and zero pad when generating an OFDM waveform. This diagram shows the oversampling process for an OFDM waveform withNFFTsubcarriers comprisingNgguardband subcarriers on either side ofNstoccupied bandwidth subcarriers.

FFT-based oversampling.

References

[1] IEEE Std 802.11ax™-2021 (Amendment to IEEE Std 802.11™-2020). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 1: Enhancements for High Efficiency WLAN.” IEEE Standard for Information technology — Telecommunications and information exchange between systems. Local and metropolitan area networks — Specific requirements.

[2] IEEE Std 802.11-2020 (Revision of IEEE Std 802.11-2016). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.” IEEE Standard for Information technology — Telecommunications and information exchange between systems. Local and metropolitan area networks — Specific requirements.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2015b