Main Content

wlanEHTTBConfig

Configure EHT TB transmission

Since R2023a

Description

The wlanEHTTBConfig object is a configuration object for the WLAN extremely high-throughput trigger-based (EHT TB) packet format.

Creation

Description

cfgEHTTB = wlanEHTTBConfig creates a configuration object that initializes parameters for an IEEE® 802.11™ EHT TB PPDU. For a detailed description of the EHT WLAN formats, see IEEE P802.11be™/D3.0 [1].

example

cfgEHTTB = wlanEHTTBConfig(Name=Value) sets properties using one or more name-value arguments.

example

Properties

expand all

Channel bandwidth of PPDU transmission, specified as one of these values.

  • "CBW20" — Channel bandwidth of 20 MHz

  • "CBW40" — Channel bandwidth of 40 MHz

  • "CBW80" — Channel bandwidth of 80 MHz

  • "CBW160" — Channel bandwidth of 160 MHz

  • "CBW320" — Channel bandwidth of 320 MHz

Data Types: char | string

Resource unit size, specified as a positive integer or a vector of positive integers. If the resource unit (RU) is a multiple resource unit (MRU), RUSize is a vector with entries given by the sizes of the RUs that compose the MRU. Otherwise, RUSize is a scalar. The possible RU sizes are 26, 52, 106, 242, 484, 996, 1992, and 3984.

Data Types: double

Resource unit index, specified as an integer in the range [1, 148] or a vector of such integers. If the RU is an MRU, RUIndex is a vector with entries given by the indices of the RUs that compose the MRU. Otherwise, RUIndex is a scalar. Use this property to indicate the location of the RU within the channel.

Example: An 80 MHz transmission has four possible 242-tone RUs, one in each 20 MHz subchannel. RU 242-1 (RUSize = 242, RUIndex = 1) is the RU occupying the lowest absolute frequency within the 80MHz, and RU 242-4 (RUSize = 242, RUIndex = 4) is the RU occupying the highest absolute frequency.

Data Types: double

Power scaling factor for pre-EHT fields, specified as a real scalar in the range [1/√2, 1].

Data Types: double

Number of transmit antennas, specified as a positive integer.

Data Types: double

Cyclic shift values, in nanoseconds, of additional transmit antennas for the pre-EHT fields of the waveform. The first eight antennas use the cyclic shift values specified in Table 21-10 of IEEE Std 802.11-2020 [2]. The remaining L antennas use the values that you specify in this property, where L = NumTransmitAntennas – 8. Specify this property as one of these values:

  • An integer in the range [−200, 0] — The wlanEHTTBConfig object uses this cyclic shift value for each of the L additional antennas.

  • A row vector of length L of integers in the range [−200, 0] — The wlanEHTTBConfig object uses the kth element as the cyclic shift value for the (k + 8)th transmit antenna.

    Note

    If you specify this property as a row vector of length greater than L, the wlanEHTTBConfig object uses only the first L elements. For example, if you set the NumTransmitAntennas property to 16, the wlanEHTTBConfig object uses only the first L = 16 – 8 = 8 elements of this vector.

Dependencies

To enable this property, set the NumTransmitAntennas property to a value greater than 8.

Data Types: double

Number of space-time streams in the transmission, specified as an integer in the interval [1, 8].

Data Types: double

Starting space-time stream index, in one-based form, specified as an integer in the interval [1, 8]. In a multi-user multiple-input multiple-output (MU-MIMO) configuration with multiple users on the same RU, each user must transmit on a distinct space-time stream. In this case, you must set this property and the NumSpaceTimeStreams property to ensure that each space-time stream transmits at most one user.

Data Types: double

Spatial mapping scheme, specified as "direct", "hadamard", "fourier", or "custom".

The default value, "direct", applies only when NumTransmitAntennas is equal to NumSpaceTimeStreams.

Data Types: char | string | enumeration

Spatial mapping matrix, specified as one of these values:

  • A complex-valued scalar. This value applies to all the subcarriers.

  • A complex-valued matrix of size NSTSTotal -by-NT, where:

    • NSTSTotal is the sum of the number of the space-time streams for all users assigned to the RU.

    • NT is the number of transmit antennas.

    In this case, the spatial mapping matrix applies to all the subcarriers.

  • A complex-valued 3-D array of size NST-by-NSTSTotal-by-NT, where NST is the number of occupied carriers and is determined by the RUSize property. In this case, each occupied subcarrier has its own spatial mapping matrix.

Use this property to rotate and scale the output vector of the constellation mapper. The spatial mapping matrix is used for beamforming and mixing space-time streams over the transmit antennas. The calling function normalizes the spatial mapping matrix for each subcarrier.

Example: [0.6 0.2; 0.5 0.4; 0.5 0.9] represents a spatial mapping matrix with three space-time streams and two transmit antennas.

Dependencies

This property applies only when you set the SpatialMapping property to "custom".

Data Types: double
Complex Number Support: Yes

Phase rotation values for the pre-EHT portion of the waveform, specified as a row vector of length 16 with entries equal to 1 or −1. This property applies only when the channel bandwidth is 320 MHz. The 16 entries of this property correspond to 20 MHz subchannels in ascending order of frequency, as defined in Equation 36-13 of IEEE P802.11be/D2.0 [1].

Data Types: double

Modulation and coding scheme (MCS) for transmission, specified as a nonnegative integer in the range [0, 13], or 15. This table shows the modulation type and coding rate for each valid value of MCS:

MCSModulationDual Carrier ModulationCoding Rate
0Binary phase-shift keying (BPSK)

Not applicable

1/2
1Quadrature phase-shift keying (QPSK)

Not applicable

1/2
2

Not applicable

3/4
316-point quadrature amplitude modulation (16-QAM)

Not applicable

1/2
43/4
564-QAM

Not applicable

2/3
63/4
75/6
8256-QAM3/4
95/6
101024-QAM3/4
115/6
124096-QAM3/4
135/6
15BPSK-DCM

0 or 1

1/2

Data Types: double

Forward-error-correction (FEC) coding type for the EHT-Data field, specified as "ldpc" for low-density parity-check (LDPC) coding or "bcc" for binary convolutional coding (BCC).

Dependencies

You can set this property to "bcc" only when all of these conditions are satisfied:

  • The MCS property is in the range [0, 9], or equal to 15.

  • The size of any RU is less than or equal to 242. Obtain the RU sizes by using the ruInfo object function.

  • The NumSpaceTimeStreams property is less than or equal to 4.

Data Types: char | string | enumeration

Pre-FEC padding factor, specified as 1, 2, 3, or 4.

Data Types: single | double

Extra OFDM symbol segment indicator, specified as 1 (true) or 0 (false). To indicate the presence of an extra OFDM symbol segment for LDPC coding, set this property to 1 (true). Otherwise, set this property to 0 (false).

Dependencies

To enable this property, set the ChannelCoding property to "ldpc".

Data Types: logical

PE-Disambiguity subfield value, specified as 1 (true) or 0 (false). For more information, see Section 27.3.12 of IEEE Std 802.11-2020 [2].

Data Types: logical

Length of L-SIG field, in OFDM symbols, specified as an integer in the range [1, 4093]. The L-SIG length must satisfy mod(LSIGLength,3) = 1, where mod(a,m) returns the remainder after dividing a by m. For more information, see mod.

Data Types: double

Guard interval (cyclic prefix) duration for the data field within a packet, in microseconds, specified as 3.2 or 1.6.

Data Types: double

EHT-LTF compression mode, specified as 1, 2, or 4. These values correspond to the 1× EHT-LTF, 2× EHT-LTF, and 4× EHT-LTF compression modes. The EHT-LTF type is enumerated in Table 36-18 of IEEE P802.11be/D2.0 [1] as:

  • 1× EHT-LTF — Duration of 3.2 μs with a guard range duration of 1.6 μs

  • 2× EHT-LTF — Duration of 6.4 μs with a guard range duration of 0.8 μs or 1.6 μs

  • 4× EHT-LTF — Duration of 12.8 μs with a guard range duration of 0.8 μs or 3.2 μs

For more information on the EHT-LTF, see Section 36.3.12.10 of IEEE P802.11be/D2.0 [1].

Data Types: double

Number of EHT-LTF symbols in the PPDU, specified as 1, 2, 4, 6, or 8.

Data Types: double

Basic service set (BSS) color identifier, specified as an integer in the interval [0, 63].

Data Types: double

Value of Spatial Reuse 1 subfield in the U-SIG field, specified as an integer in the range [0, 15]. For more information, see Table 36-31 of IEEE P802.11be/D2.0 [1].

Data Types: double

Value of Spatial Reuse 2 subfield in the U-SIG field, specified as an integer in the range [0, 15]. For more information, see Table 36-31 of IEEE P802.11be/D2.0 [1].

Data Types: double

Duration information for transmit opportunity (TXOP) protection in microseconds, specified as an integer in the interval [0, 8448]. This table describes the correspondence between the value you set for this property and the value of the seven-bit TXOP subfield in the U-SIG field.

TXOPDuration PropertyTXOP Subfield
[]127
Integer less than 5122TXOPDuration8
Integer greater than or equal to 5122(TXOPDuration512128)+1

Data Types: double

Channelization for a 320 MHz channel bandwidth, specified as 1 or 2. A 320 MHz channel has three possible locations for the channel center frequencies. In accordance with Section 36.3.23.2 of IEEE P802.11be/D2.0 [1], when you specify 1, these locations are numbers 31, 95, and 159. When you specify 2, the locations are numbers 63, 127 and 191.

Dependencies

This property applies only when you specify the ChannelBandwidth property as "CBW320".

Data Types: double

Disregard bits in the first U-SIG symbol, specified as a binary column vector of length 6. The default is a column vector of length 6 with all entries equal to 1.

Data Types: double | int8

Validate bit in the second U-SIG symbol, specified as 1 or 0.

Data Types: double | int8

Disregard bits in the second U-SIG symbol, specified as a binary column vector of length 5.

Data Types: double | int8

Post-FEC padding bit source used by the wlanWaveformGenerator function, specified as one of these values:

  • "mt19937arwithseed" — Generate normally distributed random bits by using the mt19937ar algorithm with seed specified in the PostFECPaddingSeed property.

  • "globalstream" — Generate normally distributed random bits by using the current global random number stream.

  • "userdefined" — Use the bits specified in the PostFECPaddingBits property as the post-FEC padding bits.

Data Types: char | string | enumeration

Post-FEC padding bit seed for the mt19937ar algorithm, specified as a nonnegative integer.

Dependencies

To enable this property, set the PostFECPaddingSource property to "mt19937ar with seed".

Data Types: double

Post-FEC padding bits, specified as a binary-valued scalar or column vector.

To generate a waveform, the wlanWaveformGenerator function requires n bits, where n depends on the specified configuration. To calculate n, use the numPostFECPaddingBits object function with the specified configuration object as the input argument and specify this property as a vector of length n. Alternatively, specify this input as a binary-valued scalar or column vector of arbitrary length. If the length of this property is less than n, the waveform generator loops the vector to create a vector of length n. If the length of this property is greater than n, the function uses only the first n entries as the post-FEC padding bits.

Note

For C/C++ code generation, you must specify the data type of this property as int8.

Data Types: single | double | int8

Object Functions

psduLengthEHT PSDU length
packetFormat WLAN packet format
ruInfoResource unit allocation information
showAllocationResource unit allocation
transmitTimePacket transmission time
compressionModeCompression mode of EHT TB configuration
numPostFECPaddingBitsRequired number of post-FEC padding bits

Examples

collapse all

Create a configuration object for a WLAN EHT TB transmission.

cfgEHTTB = wlanEHTTBConfig;

Get the PSDU length, in bytes, from the configuration object by using the psduLength object function.

length = psduLength(cfgEHTTB);

Generate a PSDU of the relevant length, converting bytes to bits by multiplying by eight.

psdu = randi([0 1],8*length,1);

Generate a time-domain waveform for the bits and configuration, specifying an oversampling factor of 3. Plot the waveform.

waveform = wlanWaveformGenerator(psdu,cfgEHTTB,OversamplingFactor=3);
plot(abs(waveform));
title("EHT TB Waveform");
xlabel("Time (Nanoseconds)");
ylabel("Amplitude");

Figure contains an axes object. The axes object with title EHT TB Waveform, xlabel Time (Nanoseconds), ylabel Amplitude contains an object of type line.

Create a configuration object for an EHT TB transmission, setting the channel bandwidth to 320 MHz and specifying that the configuration has an MRU of size 3*996.

cfgEHTTB = wlanEHTTBConfig(ChannelBandwidth="CBW320",RUSize=[996;996;996],RUIndex=[1;2;3]);

Use the compressionMode object function to return the compression mode of the configuration.

compressionMode(cfgEHTTB)
ans = 
0

References

[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 R2023a