Main Content

wlanEHTMUConfig

Configure EHT MU transmission

Since R2022b

    Description

    The wlanEHTMUConfig object is a configuration object for the WLAN extremely high-throughput multi-user (EHT MU) packet format.

    Creation

    Description

    example

    cfgEHTMU = wlanEHTMUConfig(AllocationIndex) creates cfgEHTMU, a configuration object that initializes transmit parameters for an IEEE® 802.11™ EHT MU PPDU for AllocationIndex, the input resource unit allocation. The PPDU type is OFDMA. For a detailed description of the EHT WLAN format, see [1].

    example

    cfgEHTMU = wlanEHTMUConfig(ChannelBandwidth) creates cfgEHTMU, a configuration object that initializes transmit parameters for an IEEE 802.11 EHT MU PPDU for ChannelBandwidth, the input channel bandwidth. The PPDU type is non-OFDMA.

    example

    cfgEHTMU = wlanEHTMUConfig(___,Name=Value) sets properties using one or more name-value pairs. For example, wlanEHTMUConfig("CBW320",NumUsers=8) specifies a non-OFDMA transmission with eight users and a bandwidth allocation of 320 MHz.

    At runtime, the calling function validates object settings for properties relevant to the operation of the function.

    Properties

    expand all

    Resource unit (RU) allocation index for each 20 MHz subchannel, specified as an integer, row vector of integers, or matrix of integers. This property determines the number of RUs, the size of each RU, the number of users assigned to each RU, and which RUs are punctured. For an example of puncturing in OFDMA transmissions, see 802.11be Waveform Generation.

    The correspondence between allocation indices and resource unit allocations is given in the EHT MU Transmission tutorial. This property applies only when the PPDU type is OFDMA.

    The format of AllocationIndex depends on the desired channel bandwidth.

    • Specify AllocationIndex as an integer to set a channel bandwidth of 20 MHz. For example, specifying AllocationIndex as 0 gives nine RUs, each with one user and of size 26.

    • Specify AllocationIndex as a 1-by-N vector of integers to set a channel bandwidth of 40, 80, 160, or 320 MHz. N is equal to the number of 20 MHz subchannels. For example, specifying AllocationIndex as [0 0] gives 18 RUs, each with one user and of size 26.

    • Specify AllocationIndex as an M-by-N matrix of integers to set a channel bandwidth of 160 or 320 MHz. N is as defined above. M is equal to the number of 80 MHz segments. When you specify AllocationIndex as a matrix, all of its rows must be equal.

    Note

    When you specify AllocationIndex as a 1-by-N vector in the 160 MHz or 320 MHz case, the value of the property is set to an M-by-N matrix. M is 2 for 160 MHz and 4 for 320 MHz. The new rows are generated by taking extra copies of the vector that you specify. This process is compliant with the standard [1]. The value of M is equal to the number of 80 MHz segments in the channel. An example is given in Annex Z.8 of the standard.

    Note

    You can set this property only when you create the object. After creation, the object is read-only.

    Data Types: double

    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

    Create a non-OFDMA wlanEHTMUConfig object by setting the value of this property. When you create an OFDMA wlanEHTMUConfig object, this property is configured based on the value to which you set the AllocationIndex property.

    Note

    You can set this property only when you create the object. After creation, the object is read-only.

    Data Types: char | string

    Number of users in a non-OFDMA configuration, specified as an integer in the range [1, 8].

    Note

    You can set this property only when you create the object. After creation, the object is read-only.

    Data Types: single | double

    Puncturing pattern value for a non-OFDMA configuration, specified as an integer in the range [0, 24]. The correspondence between puncturing patterns and integers in the range [0, 24] is defined in Table 36-30 of [1]. For each channel bandwidth, the default, 0, specifies that no puncturing takes place.

    • For channel bandwidths of 20 and 40 MHz, PuncturedChannelFieldValue must be 0 because puncturing is not available at these bandwidths.

    • For an 80 MHz channel bandwidth, PuncturedChannelFieldValue must be in the range [0, 4].

    • For a 160 MHz channel bandwidth, PuncturedChannelFieldValue must be in the range [0, 12].

    Note

    You can set this property only when you create the object. After creation, the object is read-only.

    Data Types: single | double

    Enable EHT DUP mode by setting this property to true or 1. This property applies only to a non-OFDMA configuration with a channel bandwidth of 80, 160, or 320 MHz.

    Note

    You can set this property only when you create the object. After creation, the object is read-only.

    Data Types: logical

    Puncturing pattern for the given value of the PuncturedChannelFieldValue property, specified as a logical vector. The correspondence between puncturing patterns and values of the PuncturedChannelFieldValue property is defined in table 36-30 of [1].

    If the channel bandwidth is 80 or 160 MHz, the length of the vector is equal to the number of 20 MHz subchannels. If the channel bandwidth is 320 MHz, the length of the vector is equal to the number of 40 MHz subchannels. For each entry of the logical vector, a value of true or 1 means that the subchannel that corresponds to the entry is punctured.

    Note

    This property is read-only and is determined by the value of the PuncturedChannelFieldValue property.

    Data Types: logical

    Transmission properties of each RU and MRU in the transmission, specified as a cell array of wlanEHTRU objects. For an OFDMA wlanEHTMUConfig object, the AllocationIndex property determines the RU property. For a non-OFDMA wlanEHTMUConfig object, the ChannelBandwidth property determines the RU property.

    Data Types: cell

    Transmission properties of each user, specified as a cell array of wlanEHTUser objects. For an OFDMA wlanEHTMUConfig object, the AllocationIndex property determines the User property. For a non-OFDMA wlanEHTMUConfig object, the ChannelBandwidth property determines the User property.

    Data Types: cell

    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 [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 wlanEHTMUConfig 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 wlanEHTMUConfig 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 wlanEHTMUConfig object uses only the first L elements. For example, if you set the NumTransmitAntennas property to 16, the wlanEHTMUConfig 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

    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-12 of [1].

    Data Types: double

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

    Data Types: double

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

    • 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 [1].

    Data Types: double

    Amount by which the number of EHT-LTF symbols exceeds the initial number of EHT-LTF symbols, specified as a positive integer. The initial number of EHT-LTF symbols is determined by the total number of spatial streams, per Table 36-43 in [1]. The sum of NumExtraEHTLTFSymbols and the initial number of EHT-LTF symbols cannot exceed 8.

    Data Types: double

    Modulation and coding scheme (MCS) of the extremely high throughput signal field (EHT-SIG), specified as 0, 1, 3, or 15. These respectively correspond to the EHT-SIG-MCS values 0, 1, 2, and 3 in table 36-88 of [1].

    Data Types: double

    Uplink indication, specified as a numeric or logical 1 (true) or 0 (false). To indicate that the PPDU is sent on a downlink transmission, set this property to 0 (false). To indicate that the PPDU is sent on an uplink transmission, set this property to 1 (true).

    Data Types: logical

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

    Data Types: double

    Spatial reuse indication, specified as an integer in the range [0, 15].

    Data Types: double

    Duration information for transmit opportunity (TXOP) protection, specified as an integer in the range [0, 8448]. The TXOPDuration property represents a duration in microseconds. In the TXOP subfield of the U-SIG field, these durations are represented by integers in the range [0, 127]. Therefore, a duration in microseconds must be converted according to the procedure set out in table 36-1 of [1]. The default, [], indicates that no information is specified. In this case, the TXOP subfield of the U-SIG field is set to 127.

    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 [1], when you specify 1, these locations are numbered 31, 95, and 159. When you specify 2, the locations are numbers 63, 127 and 191.

    Data Types: double

    Object Functions

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

    Examples

    collapse all

    Create a multi-user EHT configuration object with the allocation index set to 48. This setting specifies an OFDMA configuration with one 106+26 tone MRU and one 106 tone RU in a 20 MHz channel. Both resource units have one user.

    allocationIndex = 48;
    cfgSMRU = wlanEHTMUConfig(allocationIndex);

    Display the properties of the MRU.

    cfgSMRU.RU{1}
    ans = 
      wlanEHTRU with properties:
    
        PowerBoostFactor: 1
          SpatialMapping: direct
    
       Read-only properties:
                    Size: [106 26]
                   Index: [1 5]
             UserNumbers: 1
    
    

    Now create a multi-user EHT configuration object with the allocation index set to the vector [151 30 30 30 64 64 29 29]. This setting specifies a 996+484-tone MRU and two 242-tone RUs in a 160 MHz channel. The MRU has eight users and the two RUs have one user each.

    allocationIndex = [151 30 30 30 64 64 29 29];
    cfgLMRU = wlanEHTMUConfig(allocationIndex);

    For multi-user OFDMA transmissions with a channel bandwidth of 160 MHz or higher, the EHT-SIG content channels can carry different information per 80 MHz segment. For these bandwidths, the read-only property AllocationIndex is a matrix of size M-by-N, where M is the number of 80 MHz segments and N is the number of 20 MHz subchannels. In this example M is 2 and N is 8. Each row of the matrix represents an 80 MHz segment.

    Display the AllocationIndex property.

    disp(cfgLMRU.AllocationIndex);
       151    30    30    30    28    28    29    29
        30    30    30    30    64    64    29    29
    

    Display the properties of the MRU.

    cfgLMRU.RU{1}
    ans = 
      wlanEHTRU with properties:
    
        PowerBoostFactor: 1
          SpatialMapping: direct
    
       Read-only properties:
                    Size: [996 484]
                   Index: [1 4]
             UserNumbers: [1 2 3 4 5 6 7 8]
    
    

    Now create a multi-user EHT configuration object with the allocation index set to the 2-by-8 matrix obtained by duplicating the previous allocation index. In this case, the EHT-SIG content channels carry the same information per 80 MHz segment.

    allocationIndex = [allocationIndex;allocationIndex];
    cfg2by8 = wlanEHTMUConfig(allocationIndex);

    Display the AllocationIndex property.

    disp(cfg2by8.AllocationIndex);
       151    30    30    30    64    64    29    29
       151    30    30    30    64    64    29    29
    

    Verify that the two configuration objects have the same resource unit allocations.

    isequal(ruInfo(cfgLMRU),ruInfo(cfg2by8))
    ans = logical
       1
    
    

    Create a non-OFDMA EHT MU configuration object. Set the channel bandwidth to 320 MHz and the number of users to 2. Specify a punctured channel field value of 20.

    cfg = wlanEHTMUConfig("CBW320",NumUsers=2,PuncturedChannelFieldValue=20);

    Display the puncturing pattern determined by the punctured channel field value.

    cfg.PuncturingPattern
    ans = 1x8 logical array
    
       0   1   0   0   0   0   1   1
    
    

    Show the RU allocation of the configuration. The punctured 40 MHz subchannels do not appear in the figure.

    showAllocation(cfg)

    Figure RU/MRU Assignment and Occupied Subcarriers contains an axes object. The axes object with ylabel Subcarrier Index contains 31 objects of type patch, line, text. One or more of the lines displays its values using only markers

    You can zoom in on an individual 80 MHz segment by clicking the figure and choosing S1, S2, S3, or S4.

    S3 new icon.png

    This is a zoomed-in view of the third segment, which consists of the subcarriers whose index is between 0 and 1000.

    S3 after zoom.png

    References

    [1] IEEE P802.11be™/D2.0. “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 8: Enhancements for Extremely High Throughput (EHT).” Draft 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

    Version History

    Introduced in R2022b

    expand all