Create user configuration object for HE MU transmission
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.
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)
APEPLength
— APEP length100
(default) | integer in the interval [1, 6500531]Aggregated MPDU (A-MPDU) pre-end-of-frame (pre-EOF) padding (APEP) length, in bytes, specified as an integer in the interval [1, 6500531].
This property is used internally to determine the number of OFDM symbols in the data field. For more information, see [1].
Data Types: double
MCS
— MCS used for transmission0
(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 streams1
(default) | integerNumber 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-28 of [1].
Data Types: double
DCM
— DCM indicatorfalse
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
).
You can only set this property to 1
(true
)
when all of these conditions are satisfied:
The MCS
property is 0
, 1
, 3
, or
4
.
The STBC
property of the associated wlanHEMUConfig
object is 0
(false
).
The NumSpaceTimeStreams
property is less than or equal to 2.
The RU
property of the associated wlanHEMUConfig
object defines a single-user RU.
Data Types: logical
ChannelCoding
— FEC 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).
You can only set this property to 'BCC'
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
STAID
— STA identifier0
(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 number1
(default) | integer | vector of integersRU 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.
This property is read-only after the object is created.
Data Types: double
NominalPacketPadding
— Nominal packet padding0
(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.12 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
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 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 Read-only properties: RUNumber: 1
ans = wlanHEMUUser with properties: APEPLength: 500 MCS: 3 NumSpaceTimeStreams: 1 DCM: 0 ChannelCoding: 'LDPC' STAID: 0 NominalPacketPadding: 8 Read-only properties: RUNumber: 2
[1] IEEE P802.11ax™/D4.1. “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 1: Enhancements for High Efficiency WLAN.” Draft Standard for Information technology — Telecommunications and information exchange between systems. Local and metropolitan area networks — Specific requirements.
You have a modified version of this example. Do you want to open this example with your edits?