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
creates an HE user configuration object for cfgHEMU.User
= wlanHEMUUser(RUNumber
)RUNumber
, the input RU
number.
sets properties using one or more name-value pairs. Enclose each property name in
quotation marks.cfgHEMU.User
= wlanHEMUUser(RUNumber
,Name,Value)
Properties
APEPLength
— APEP length
100
(default) | integer in the interval [1, 6451631]
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
MCS
— Modulation and coding scheme used for transmission
0
(default) | integer in the interval [0, 11]
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
:
MCS | Modulation | Dual Carrier Modulation | Coding Rate |
---|---|---|---|
0 | Binary phase-shift keying (BPSK) |
| 1/2 |
1 | Quadrature phase-shift keying (QPSK) |
| 1/2 |
2 | Not applicable | 3/4 | |
3 | 16-point quadrature amplitude modulation (16-QAM) |
| 1/2 |
4 | 3/4 | ||
5 | 64-QAM | Not applicable | 2/3 |
6 | 3/4 | ||
7 | 5/6 | ||
8 | 256-QAM | 3/4 | |
9 | 5/6 | ||
10 | 1024-QAM | 3/4 | |
11 | 5/6 |
Data Types: double
NumSpaceTimeStreams
— Number of space-time streams
1
(default) | integer
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
DCM
— Dual carrier modulation indicator
false
or 0
(default) | true
or 1
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:
The
MCS
property is0
,1
,3
, or4
.The
STBC
property of the associatedwlanHEMUConfig
object is0
(false
).The
NumSpaceTimeStreams
property is less than or equal to 2.The
RU
property of the associatedwlanHEMUConfig
object defines a single-user RU.
Data Types: logical
ChannelCoding
— Forward-error-correction coding type
'LDPC'
(default) | 'BCC'
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 not10
or11
.The size of any RU is less than or equal to 242. Obtain the RU sizes by using the
ruInfo
object function with the associatedwlanHEMUConfig
object.The
NumSpaceTimeStreams
property is less than or equal to 4.
Data Types: char
| string
STAID
— STA identifier
0
(default) | integer in the interval [0, 2047]
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
RUNumber
— RU number
1
(default) | integer | vector of integers
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
NominalPacketPadding
— Nominal packet padding
0
(default) | 8
| 16
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 a | Value of TPE in Microseconds | ||
---|---|---|---|
NominalPacketPadding Set to
0 | NominalPacketPadding Set to
8 | NominalPacketPadding Set to
16 | |
1 | 0 | 0 | 4 |
2 | 0 | 0 | 8 |
3 | 0 | 4 | 12 |
4 | 0 | 8 | 16 |
Data Types: double
PostFECPaddingSource
— Post-FEC padding bit source
'mt19937ar with seed'
(default) | 'Global stream'
| 'User-defined'
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 thePostFECPaddingSeed
property.'Global stream'
— Generate normally distributed random bits by using the current global random number stream.'User-defined'
— Use the bits specified in thePostFECPaddingBits
property as the post-FEC padding bits.
Data Types: char
| string
PostFECPaddingSeed
— Post-FEC padding bit seed for mt19937ar algorithm
73
(default) | nonnegative integer
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
PostFECPaddingBits
— Post-FEC padding bits
0
(default) | binary-valued column vector
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
Create Multiuser HE Configuration Object
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 HE MU Object Using Binary Allocation Indexing
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
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
You must specify the data type of the postFECPaddingBits
property
as int8
.
Version History
Introduced in R2018b
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)