Main Content

802.11az Waveform Generation

This example shows how to parameterize and generate IEEE® 802.11az™ high-efficiency (HE) ranging null data packet (NDP) waveforms and highlights some of the key features of the standard.

Introduction

The 802.11az standard [1], commonly referred to as next-generation positioning (NGP), enables a station to identify its position relative to other stations. This standard supports two HE ranging physical layer (PHY) protocol data unit (PPDU) formats:

  • HE ranging NDP

  • HE trigger-based (TB) ranging NDP

The HE ranging NDP and HE TB ranging NDP are the respective analogues of the HE sounding NDP and HE TB NDP feedback PPDU formats, as defined in the 802.11ax™ standard. For more information on these HE PPDU formats, see [2].

The HE ranging NDP supports the positioning of one or more users with an optional secure HE long training field (HE-LTF) sequence. The single-user HE ranging waveform contains HE-LTF symbols for a single user, which also support an optional secure HE-LTF sequence. The multi-user HE ranging waveform permits only secure HE-LTF symbols for multiple users. Single-user and multi-user waveforms can contain multiple repetitions of the HE-LTF symbols. This feature can help improve distance estimation accuracy.

Because the 802.11az standard uses the same underlying PHY technologies as the 802.11ax standard, the processing chains are very similar. This example shows how to generate 802.11az HE ranging NDP waveforms with secure and nonsecure HE-LTF sequences.

HE Ranging NDP Without Secure HE-LTF

The HE Ranging NDP contains HE-LTF symbols for a single user and uses the regular HE-LTF sequence defined in [2]. The number of HE-LTF symbols is the product of the number of HE-LTF repetitions and the number of HE-LTF symbols per repetition. The number of HE-LTF symbols depends on the number of space-time streams as specified in Table 21-13 of [3]. The construction of HE-LTF symbols in an HE Ranging NDP follows the steps defined in Section 27.3.10.10 of [2] for all repeated HE-LTF symbols in an HE-LTF.

Single-User HE Ranging NDP Generation

Configure a transmission with two antennas, two space-time streams, and two HE-LTF repetitions. The example oversamples the waveform using a larger IFFT than required for the nominal baseband rate, resulting in an oversampled waveform.

cfgSU = heRangingConfig('NumTransmitAntennas',2);
cfgSU.User{1}.NumSpaceTimeStreams = 2;
cfgSU.User{1}.NumHELTFRepetitions = 2;
osf = 2; % Oversampling factor

Generate the HE ranging NDP waveform for the specified configuration.

txSU = heRangingWaveformGenerator(cfgSU,'OversamplingFactor',osf);

Plot the transmission power on the first antenna.

heRangingWavGenPlot(txSU,cfgSU,osf);

Generate the spectrum of the generated signal.

sr = wlanSampleRate(cfgSU.ChannelBandwidth,'OversamplingFactor',osf); % Sample rate Hz
infoRU = ruInfo(cfgSU);
cfgOFDM = wlanHEOFDMInfo('HE-LTF',cfgSU.ChannelBandwidth,cfgSU.GuardInterval,[infoRU.RUSizes infoRU.RUIndices],'OversamplingFactor',osf);
rbw = sr/cfgOFDM.FFTLength; % Resolution bandwidth
spectrumScope = spectrumAnalyzer(SampleRate=sr,...
            RBWSource='property',RBW=rbw,...
            AveragingMethod='exponential',ForgettingFactor=0.25,...
            ShowLegend=true,Title='Transmitted IEEE 802.11az Waveform');
spectrumScope(txSU);

HE Ranging NDP With Secure HE-LTF

To generate an HE ranging NDP with secure HE-LTF symbols, as defined in [2], specify either of these transmission parameter combinations.

  • A single-user heRangingConfig object with its SecureHELTF property set to 1 (true)

  • A multi-user heRangingConfig object

The secure HE-LTF comprises a randomized LTF sequence as defined in Section 27.3.18b of [1]. To specify this sequence for a chosen user, set the SecureHELTFOctets property of the corresponding User property of the heRangingConfig object. If the number of octets in the SecureHELTFOctets property is less than the required number of octets for the given user configuration, the object cyclically extends the secure octets. If the number of octets in SecureHELTFOctets is more than the required number of octets for the given user configuration, the object uses only the required number of octets. The object extracts the required octets from the specified octets. When the transmission contains a secure HE-LTF sequence, the sequence must use a zero-power guard interval for the HE-LTF symbols. The packet extension (PE) starts with a zero-power guard interval.

Single-User HE Ranging NDP with Secure HE-LTF Generation

Configure a transmission with two antennas, two space-time streams, three HE-LTF repetitions, and secure HE-LTF symbols.

cfgSecureSU = heRangingConfig('NumTransmitAntennas',2,'SecureHELTF',true);
cfgSecureSU.User{1}.NumSpaceTimeStreams = 2;
cfgSecureSU.User{1}.NumHELTFRepetitions = 3;

Get the number of octets required.

numOctets = numSecureHELTFOctets(cfgSecureSU);

Represent the HE-LTF octets as an integer vector.

cfgSecureSU.User{1}.SecureHELTFOctets = randi([0 255], 1, numOctets(1));

Generate the HE ranging NDP waveform for the specified configuration.

txSecureSU = heRangingWaveformGenerator(cfgSecureSU);

Plot the transmission power on the first antenna.

heRangingWavGenPlot(txSecureSU,cfgSecureSU);

Multi-User HE Ranging NDP Generation

A multi-user HE ranging NDP waveform contains secure HE-LTF symbols for multiple users. The transmission concatenates HE-LTF symbols for each user up to a maximum of 64 consecutive symbols. This example demonstrates waveform generation with a secure HE-LTF sequence shown for two users. Configure transmission parameters, specifying two users and the number of space-time streams and HE-LTF repetitions for each user.

cfgSecureMU = heRangingConfig(2);
cfgSecureMU.User{1}.NumSpaceTimeStreams = 1;
cfgSecureMU.User{1}.NumHELTFRepetitions = 2;
cfgSecureMU.User{2}.NumSpaceTimeStreams = 1;
cfgSecureMU.User{2}.NumHELTFRepetitions = 3;

Get the number of octets required.

numOctets = numSecureHELTFOctets(cfgSecureMU);

Set the secure HE-LTF octets for the first user. Represent the HE-LTF octets as an integer vector.

cfgSecureMU.User{1}.SecureHELTFOctets = randi([0 255], 1, numOctets(1));

Set the secure HE-LTF octets for the second user. You can also represent the secure HE-LTF octets as hexadecimals.

cfgSecureMU.User{2}.SecureHELTFOctets = dec2hex(randi([0 15], 1, 2*numOctets(1)))';

Generate the HE ranging NDP waveform for the specified configuration.

txSecureMU = heRangingWaveformGenerator(cfgSecureMU);

Plot the transmission power on the first antenna.

heRangingWavGenPlot(txSecureMU,cfgSecureMU);

Related Examples

References

  1. IEEE Std 802.11az™-2022 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 4: Enhancements for positioning.

  2. IEEE Std 802.11ax™-2021 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.

  3. 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.