Main Content

wlanHEMUUser

Configure users for HE MU transmission

Description

The wlanHEMUUser object contains properties of a user within a WLAN high-efficiency (HE) resource unit (RU). When you create a wlanHEMUConfig object, the value to which you set its AllocationIndex property determines its User property. The User property is returned as a cell array of wlanHEMUUser objects.

Creation

Description

cfgHEMU.User = wlanHEMUUser(RUNumber) creates an HE user configuration object for RUNumber, the input RU number.

example

cfgHEMU.User = wlanHEMUUser(RUNumber,Name,Value) sets properties using one or more name-value pairs. Enclose each property name in quotation marks.

Properties

expand all

Aggregated MPDU (A-MPDU) pre-end-of-frame (pre-EOF) padding (APEP) length, in bytes, specified as an integer in the interval [1, 6451631].

The object uses this property to determine the number of OFDM symbols in the data field. For more information, see [1].

Data Types: double

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

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

0 or 1

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

0 or 1

1/2
2

Not applicable

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

0 or 1

1/2
43/4
564-QAM

Not applicable

2/3
63/4
75/6
8256-QAM3/4
95/6
101024-QAM3/4
115/6

Data Types: double

Number of space-time streams in the transmission, specified as an integer in the interval [1, 8]. The maximum number of space-time streams for any user within a MU-MIMO RU is 4. The maximum value of the sum of the number of space-time streams over all users in an RU is 8. For information on these and other restrictions on the number of space-time streams, see Tables 18-1 and 27-30 of [1].

Data Types: double

Dual carrier modulation (DCM) indicator, specified as a logical value of 1 (true) or 0 (false). To indicate that DCM is used for the HE-Data field, set this property to 1 (true).

Dependencies

You can only set this property to 1 (true) when all of these conditions are satisfied:

Data Types: logical

Forward-error-correction (FEC) coding type for the HE-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 not 10 or 11.

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

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

Data Types: char | string

Station (STA) identifier, specified as an integer in the interval [0, 2047]. The value of this property specifies the station association identifier (AID) field as defined in section 26.11.1 of [1]. The 11 least significant bits (LSBs) of the AID field are used to address the STA. When you set this property to 2046, the associated RU carries no data.

Data Types: double

RU number, specified as an integer or a vector of integers. This property indexes the appropriate cell array elements of the RU property within the associated wlanHEMUConfig object.

Note

This property is read-only after the object is created.

Data Types: double

Nominal packet padding, in microseconds, specified as 0, 8, or 16. The associated wlanHEMUConfig object uses this property and the pre-forward-error-correction (pre-FEC) padding factor to calculate the duration, TPE, of the packet extension field. For more information about the packet extension field, see section 27.3.13 of [1].

This table shows the possible values of TPE for different values of this property and a, a parameter defined by equation (27-83) or (27-84) of [1].

Value of aValue of TPE in Microseconds
NominalPacketPadding Set to 0NominalPacketPadding Set to 8NominalPacketPadding Set to 16
1004
2008
30412
40816

Data Types: double

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

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

  • 'Global stream' — Generate normally distributed random bits by using the current global random number stream.

  • 'User-defined' — Use the bits specified in the PostFECPaddingBits property as the post-FEC padding bits.

Data Types: char | string

Post-FEC padding bit seed for the mt19937ar algorithm, specified as a nonnegative integer. If this object is an element of the User property of the wlanHEMUConfig object, the default value of this property the user number, i.e., the default value of User{k}.PostFECPaddingSeed is k for all integers k in the interval [1, Nusers]. Nusers is the number of users in the transmission.

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 getNumPostFECPaddingBits 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

Examples

collapse all

Create a 20 MHz multiuser HE configuration object with the allocation index set to 0. An allocation index of 0 specifies nine 26-tone RUs in a 20 MHz channel.

cfgMU = wlanHEMUConfig(0);
for i=1:numel(cfgMU.User)
    % Set the APEPLength of each user
    cfgMU.User{i}.APEPLength = 100;
end

Display the configuration object properties for the fourth user.

cfgMU.User{4}
ans = 
  wlanHEMUUser with properties:

              APEPLength: 100
                     MCS: 0
     NumSpaceTimeStreams: 1
                     DCM: 0
           ChannelCoding: 'LDPC'
                   STAID: 0
    NominalPacketPadding: 0
    PostFECPaddingSource: 'mt19937ar with seed'
      PostFECPaddingSeed: 4

   Read-only properties:
                RUNumber: 4

Create an HE MU configuration object for a 40 MHz transmission with an allocation index of 11000000 for each 20 MHz subchannel. This configuration specifies two 242-tone RUs, each with one user.

cfgHEMU = wlanHEMUConfig(["11000000" "11000000"],'NumTransmitAntennas',2);

Configure the first RU and the first user.

cfgHEMU.RU{1}.SpatialMapping = 'Direct';
cfgHEMU.User{1}.APEPLength = 1e3;
cfgHEMU.User{1}.MCS = 2;
cfgHEMU.User{1}.NumSpaceTimeStreams = 2;
cfgHEMU.User{1}.ChannelCoding = 'LDPC';
cfgHEMU.User{1}.NominalPacketPadding = 16;

Configure the second RU and the second user.

cfgHEMU.RU{2}.SpatialMapping = 'Fourier';
cfgHEMU.User{2}.APEPLength = 500;
cfgHEMU.User{2}.MCS = 3;
cfgHEMU.User{2}.NumSpaceTimeStreams = 1;
cfgHEMU.User{2}.ChannelCoding = 'LDPC';
cfgHEMU.User{2}.NominalPacketPadding = 8;

Display the configuration object properties for both RUs and both users.

disp(cfgHEMU)
  wlanHEMUConfig with properties:

                     RU: {[1x1 wlanHEMURU]  [1x1 wlanHEMURU]}
                   User: {[1x1 wlanHEMUUser]  [1x1 wlanHEMUUser]}
    NumTransmitAntennas: 2
                   STBC: 0
          GuardInterval: 3.2000
              HELTFType: 4
                SIGBMCS: 0
                SIGBDCM: 0
       UplinkIndication: 0
               BSSColor: 0
           SpatialReuse: 0
           TXOPDuration: 127
            HighDoppler: 0

   Read-only properties:
       ChannelBandwidth: 'CBW40'
        AllocationIndex: [192 192]
cfgHEMU.RU{1:2}
ans = 
  wlanHEMURU with properties:

    PowerBoostFactor: 1
      SpatialMapping: 'Direct'

   Read-only properties:
                Size: 242
               Index: 1
         UserNumbers: 1

ans = 
  wlanHEMURU with properties:

    PowerBoostFactor: 1
      SpatialMapping: 'Fourier'

   Read-only properties:
                Size: 242
               Index: 2
         UserNumbers: 2

cfgHEMU.User{1:2}
ans = 
  wlanHEMUUser with properties:

              APEPLength: 1000
                     MCS: 2
     NumSpaceTimeStreams: 2
                     DCM: 0
           ChannelCoding: 'LDPC'
                   STAID: 0
    NominalPacketPadding: 16
    PostFECPaddingSource: 'mt19937ar with seed'
      PostFECPaddingSeed: 1

   Read-only properties:
                RUNumber: 1

ans = 
  wlanHEMUUser with properties:

              APEPLength: 500
                     MCS: 3
     NumSpaceTimeStreams: 1
                     DCM: 0
           ChannelCoding: 'LDPC'
                   STAID: 0
    NominalPacketPadding: 8
    PostFECPaddingSource: 'mt19937ar with seed'
      PostFECPaddingSeed: 2

   Read-only properties:
                RUNumber: 2

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.

Extended Capabilities

Version History

Introduced in R2018b