wlanEHTMUConfig
Description
The wlanEHTMUConfig
object is a configuration object for the WLAN
extremely high-throughput multi-user (EHT MU) packet format.
Creation
Syntax
Description
creates cfgEHTMU
= wlanEHTMUConfig(AllocationIndex
)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].
creates cfgEHTMU
= wlanEHTMUConfig(ChannelBandwidth
)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.
sets properties using one or more name-value pairs. For example,
cfgEHTMU
= wlanEHTMUConfig(___,Name=Value)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
AllocationIndex
— Resource unit allocation index
integer | row vector of integers | matrix of integers
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 your desired channel
bandwidth.
Specify
AllocationIndex
as an integer to set a channel bandwidth of 20 MHz. For example, specifyingAllocationIndex
as0
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, specifyingAllocationIndex
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 subblocks. When you specifyAllocationIndex
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 may differ from your original input
vector. The difference between the rows means that, in each 80 MHz subblock, a
different EHT-SIG content channel carries the allocation information. To comply with
the standard [1], the object fills in values of 28
, 29
, and
30
, which indicate EHT-SIG content channels signaling no users.
The value of M is equal to the number of 80 MHz subblocks in the channel. When you
specify AllocationIndex
as a matrix, the rows must
be equal: this means that the content channels all carry the same information. The
Create Multi-User EHT OFDMA Configuration Objects example shows a
specific case.
Note
You can set this property only when you create the object. After creation, the object is read-only.
Data Types: double
ChannelBandwidth
— Channel bandwidth
"CBW20"
| "CBW40"
| "CBW80"
| "CBW160"
| "CBW320"
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 this property.
When you create an OFDMA wlanEHTMUConfig
object, the
AllocationIndex
determines this property.
Note
You can set this property only when you create the object. After creation, the object is read-only.
Data Types: char
| string
NumUsers
— Number of users in non-OFDMA configuration
1
(default) | integer in the range [1, 8]
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
PuncturedChannelFieldValue
— Puncturing pattern value for non-OFDMA configuration
0
(default) | integer in the range [0, 24]
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 no
puncturing.
For channel bandwidths of 20 and 40 MHz,
PuncturedChannelFieldValue
must be0
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
EHTDUPMode
— Enable EHT DUP mode
false
or 0
(default) | true
or 1
Enable EHT DUP mode by setting this property to true
or
1
. This property applies only to non-OFDMA configurations with
channel bandwidths 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
PuncturingPattern
— Puncturing pattern in non-OFDMA configuration
logical vector
Puncturing pattern in non-OFDMA configuration, specified as a logical vector. This
property depends on the PuncturedChannelFieldValue
property, as
shown 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
RU
— Transmission properties of each RU and MRU in transmission
cell array of wlanEHTRU
objects
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
User
— Transmission properties of each user
cell array of wlanEHTUser
objects
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
NumTransmitAntennas
— Number of transmit antennas
1
(default) | positive integer
Number of transmit antennas, specified as a positive integer.
Data Types: double
PreEHTCyclicShifts
— Cyclic shift values of additional transmit antennas
-75
(default) | integer in the range [–200, 0] | row vector
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 theNumTransmitAntennas
property to16
, thewlanEHTMUConfig
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
PreEHTPhaseRotation
— Pre-EHT phase rotation values
[1 -1 -1 -1 1 -1 -1 -1 -1 1 1 1 -1 1 1 1]
(default) | row vector
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
GuardInterval
— Guard range (cyclic prefix) duration
3.2
(default) | 1.6
| 0.8
Guard range (cyclic prefix) duration for the data field within a packet, in
microseconds, specified as 3.2
, 1.6
, or
0.8
.
Note
The possible value of this property depends on the EHTLTFType
property. For 2 × EHT-LTF, the value cannot be 3.2
. For 4 ×
EHT-LTF, the value cannot be 1.6
.
Data Types: double
EHTLTFType
— EHT-LTF compression mode
4
(default) | 2
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 defined in Table 36-18 of [1] as:
2 × EHT-LTF — Duration of 6.4 μs. The guard interval duration must be 0.8 μs or 1.6 μs.
4 × EHT-LTF — Duration of 12.8 μs. The guard interval duration must be 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
NumExtraEHTLTFSymbols
— Number of extra EHT-LTF symbols
0
(default) | integer in the range [0, 7]
Number of extra EHT-LTF symbols, specified as a positive integer. This property is
the amount by which the number of EHT-LTF symbols exceeds the initial number of EHT-LTF
symbols. 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 eight.
Data Types: double
EHTSIGMCS
— MCS of the EHT-SIG field
0
(default) | 1
| 3
| 15
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
UplinkIndication
— Uplink indication
false
or 0
(default) | true
or 1
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
). This property must be false
for OFDMA
configurations.
Data Types: logical
BSSColor
— Basic service set color identifier
0
(default) | integer in the range [0, 63]
Basic service set (BSS) color identifier, specified as an integer in the range [0, 63].
Data Types: double
SpatialReuse
— Spatial reuse indication
0
(default) | integer in the range [0, 15]
Spatial reuse indication, specified as an integer in the range [0, 15].
Data Types: double
TXOPDuration
— Duration information for TXOP protection
[]
(default) | integer in the range [0, 8448]
Duration information for transmit opportunity (TXOP) protection, specified as an
integer in the range [0, 8448]. This 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 using the
procedure given 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
— Channelization for 320 MHz channel bandwidth
1
(default) | 2
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.
Dependencies
This property applies only when you specify the ChannelBandwidth
property as "CBW320"
.
Data Types: double
Object Functions
numPostFECPaddingBits | Required number of post-FEC padding bits |
packetFormat | WLAN packet format |
psduLength | EHT PSDU length |
ruInfo | Resource unit allocation information |
transmitTime | Packet transmission time |
showAllocation | Resource unit allocation |
Examples
Create Multi-User EHT OFDMA Configuration Objects
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
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,NumTransmitAntennas=8); cfgLMRU.User{9}.NumSpaceTimeStreams=8; cfgLMRU.User{10}.NumSpaceTimeStreams=8;
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 subblock. For these bandwidths, the read-only property AllocationIndex
is a matrix of size M-by-N, where M is the number of 80 MHz subblocks and N is the number of 20 MHz subchannels. In this example M is 2 and N is 8.
Display the AllocationIndex
property.
disp(cfgLMRU.AllocationIndex);
151 30 30 30 28 28 29 29 30 30 30 30 64 64 29 29
The first and second rows of the matrix correspond to the lower and upper 80 MHz subblocks, respectively. In this configuration:
The lower 80 MHz subblock's first content channel signals users 1–8. The second content channel signals no users.
The upper 80 MHz subblock's first and second content channels signal users 9 and 10, respectively.
The second half of the first 80 MHz subblock and the first half of the second 80 MHz subblock have been filled with values of 28
, 29
, and 30
. These values correspond to EHT-SIG content channels with no users signalled.
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.
allocationIndex = [allocationIndex;allocationIndex]; cfg2by8 = wlanEHTMUConfig(allocationIndex,NumTransmitAntennas=8); cfg2by8.User{9}.NumSpaceTimeStreams=8; cfg2by8.User{10}.NumSpaceTimeStreams=8;
Display the AllocationIndex
property.
disp(cfg2by8.AllocationIndex);
151 30 30 30 64 64 29 29 151 30 30 30 64 64 29 29
In this configuration, in both 80 MHz subblocks, users 1–9 are signaled on content channel 1 and user 10 is signaled on content channel 2.
Verify that the two configuration objects have the same resource unit allocations.
isequal(ruInfo(cfgLMRU),ruInfo(cfg2by8))
ans = logical
1
Create EHT Non-OFDMA Configuration Object with Puncturing
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)
You can zoom in on an individual 80 MHz subblock by clicking the figure and choosing S1, S2, S3, or S4.
This is a zoomed-in view of the third segment, which consists of the subcarriers whose index is between 0 and 1000.
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™.
You must specify the data type of the PostFECPaddingBits
property of the User
property as
int8
. (since R2022b)
To use the strcmp
function with the SpatialMapping
property of a wlanEHTRU
object,
you must specify the property as a member of the wlan.type.SpatialMapping
enumeration class. (since R2023a)
To use the strcmp
function with the ChannelCoding
and
PostFECPaddingSource
properties of a wlanEHTUser
object,
you must specify the properties as members of the wlan.type.ChannelCoding
and wlan.type.PostFECPaddingSource
enumeration classes,
respectively. (since R2023a)
Version History
Introduced in R2022bR2023a: Integer Channelization
property
The Channelization
property takes the integer values 1
and 2
instead of
the string values "320MHz-1"
and "320MHz-2"
.
R2023a: SpatialMapping
, ChannelCoding
, and PostFECPaddingSource
enumeration classes
The SpatialMapping
property of a wlanEHTRU
object is
saved as a member of the wlan.type.SpatialMapping
enumeration class. The
ChannelCoding
and
PostFECPaddingSource
properties of a wlanEHTUser
object
are saved as members of the wlan.type.ChannelCoding
and
wlan.type.PostFECPaddingSource
enumeration classes,
respectively.
See Also
Objects
wlanDMGConfig
|wlanEHTRU
|wlanEHTUser
|wlanHEMUConfig
|wlanHERecoveryConfig
|wlanHESUConfig
|wlanHETBConfig
|wlanHTConfig
|wlanNonHTConfig
|wlanS1GConfig
|wlanVHTConfig
Functions
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 (한국어)