Create HE SU configuration object
The wlanHESUConfig
object is a configuration object for the WLAN HE
single-user (HE SU) and HE extended-range single-user (HE ER SU) packet
formats.
sets
properties using one or more name-value pairs. Enclose each property name in quotation
marks. For example, cfgHESU
= wlanHESUConfig(Name,Value)wlanHESUConfig('GuardInterval',1.6)
specifies a 1.6
microsecond guard interval (cyclic prefix) duration.
At runtime, the calling function validates object settings for properties relevant to the operation of the function.
ChannelBandwidth
— Channel bandwidth of PPDU transmission'CBW20'
(default) | 'CBW40'
| 'CBW80'
| 'CBW160'
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
Data Types: char
| string
ExtendedRange
— Enable HE ER SU formatfalse
or 0
(default) | true
or 1
Enable HE ER SU format, specified as a numeric or logical 1
(true
) or 0
(false
). To
create an HE ER SU format configuration object, set this property to
1
(true
).
This property applies only when you set the ChannelBandwidth
property to 'CBW20'
.
Data Types: logical
Upper106ToneRU
— Enable higher frequency 106-tone RUfalse
or 0
(default) | true
or 1
Enable higher frequency 106-tone resource unit (RU), specified as a numeric or
logical 1
(true
) or 0
(false
). To use only the higher frequency 106-tone RU within the
primary 20 MHz channel bandwidth of an HE ER SU transmission, set this property to
1
(true
).
This property applies only when you set the ChannelBandwidth
property to 'CBW20'
and the
ExtendedRange
property to 1
(true
).
Data Types: logical
InactiveSubchannels
— Indicate inactive 20 MHz subchannels in HE sounding NDPfalse
or 0
(default) | logical vectorIndicate inactive 20 MHz subchannels in an HE sounding null data packet (NDP),
specified as a numeric or logical 0
(false
) or a
logical vector with at least one element set to 0
(false
). When specifying a vector, the elements correspond to
subchannels in order of increasing absolute frequency. Each element indicates whether
the corresponding 20 MHz subchannel is inactive. To indicate an inactive 20 MHz
subchannel, set the corresponding element to 1
(true
). If you set this property to 0
(false
), the wlanHESUConfig
object applies that value
to all 20 MHz subchannels, indicating that all subchannels are active.
Example: [0 0 0 1]
indicates an HE sounding NDP such that the
subchannel with the highest absolute frequency value is inactive.
To enable this property, set the ChannelBandwidth
property to either 'CBW80'
or
'CBW160'
and the APEPLength
property to 0
.
Data Types: logical
NumTransmitAntennas
— Number of transmit antennas1
(default) | positive integerNumber of transmit antennas, specified as a positive integer.
Data Types: double
PreHECyclicShifts
— Cyclic shift values of additional transmit antennas-75
(default) | integer in the interval [–200, 0] | row vectorCyclic shift values, in nanoseconds, of additional transmit antennas for the pre-HE
fields of the waveform. The first eight antennas use the cyclic shift values specified
in Table 21-10 of [1].
The remaining L antennas use the values you specify in this property,
where L = NumTransmitAntennas
–
8. Specify this property as one of these values:
An integer in the interval [–200, 0] – the wlanHESUConfig
object
uses this cyclic shift value for each of the L additional
antennas.
A row vector of length L of integers in the interval [–200,
0] – the wlanHESUConfig
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 wlanHESUConfig
object uses only the
first L elements. For example, if you set the
NumTransmitAntennas
property to 16
,
the wlanHESUConfig
object uses only the first L = 16 – 8 = 8 elements of this vector.
To enable this property, set the NumTransmitAntennas
property to a value greater than
8
.
Data Types: double
NumSpaceTimeStreams
— Number of space-time streams1
(default) | integer in the interval [1, 8]Number of space-time streams in the transmission, specified as an integer in the interval [1, 8].
Data Types: double
SpatialMapping
— Spatial mapping scheme'Direct'
(default) | 'Hadamard'
| 'Fourier'
| 'Custom'
Spatial mapping scheme, specified as 'Direct'
,
'Hadamard'
, 'Fourier'
, or
'Custom'
.
The default value, 'Direct'
, applies only when you set the
NumTransmitAntennas
and NumSpaceTimeStreams
properties to the same value.
Data Types: char
| string
SpatialMappingMatrix
— Spatial mapping matrix1
(default) | complex-valued scalar | complex-valued matrix | complex-valued 3-D arraySpatial mapping matrix, specified as one of these values:
A complex-valued scalar. This value applies to all the subcarriers.
A complex-valued matrix of size NSTS -by-NT, where:
NSTS is the number of space-time streams;
NT is the number of transmit antennas.
In this case, the spatial mapping matrix applies to all the subcarriers.
A complex-valued 3-D array of size
NST-by-NSTS-by-NT,
where NST is the number of occupied
subcarriers. The ChannelBandwidth
property determines the value of
NST. In this case, each occupied
subcarrier has its own spatial mapping matrix.
This table shows the ChannelBandwidth
setting and the
corresponding NST:
ChannelBandwidth | NST |
---|---|
'CBW20' | 242 |
'CBW40' | 484 |
'CBW80' | 996 |
'CBW160' | 1992 |
Use this property to rotate and scale the output vector of the constellation mapper. The spatial mapping matrix is used for beamforming and mixing space-time streams over the transmit antennas. The calling function normalizes the spatial mapping matrix for each subcarrier.
Example: [0.5 0.3; 0.4 0.4; 0.5 0.8]
represents a spatial mapping
matrix with three space-time streams and two transmit antennas.
This property applies only when you set the SpatialMapping
property to 'Custom'
.
Data Types: double
Complex Number Support: Yes
Beamforming
— Enable signaling of transmission with beamformingtrue
or 1
(default) | false
or 0
Enable signaling of a transmission with beamforming, specified as a numeric or
logical 1
(true
) or 0
(false
). To apply a beamforming steering matrix, set this property
to 1
(true
). The SpatialMappingMatrix
property specifies the beamforming steering
matrix.
This property applies only when you set the SpatialMapping
property to 'Custom'
.
Data Types: logical
PreHESpatialMapping
— Enable spatial mapping of pre-HE-STF portionfalse
or 0
(default) | true
or 1
Enable spatial mapping of the pre-HE-short-training-field (pre-HE-STF) portion of
the PPDU, specified as a numeric or logical 1
(true
) or 0
(false
). To
spatially map the pre-HE-STF portion of the PPDU in the same way as the first symbol of
the HE-LTF on each tone, set this property to 1
(true
). To apply no spatial mapping to the pre-HE-STF portion of
the PPDU, set this property to 0
(false
).
Data Types: logical
STBC
— Enable STBCfalse
or 0
(default) | true
or 1
Enable space-time block coding (STBC) of the PPDU data field, specified as a numeric
or logical 1
(true
) or 0
(false
). STBC transmits multiple copies of the data stream across
assigned antennas.
When you set this property to 0
(false
),
STBC is not applied to the data field. The number of space-time streams is equal
to the number of spatial streams.
When you set this property to 1
(true
),
STBC is applied to the data field. The number of space-time streams is twice the
number of spatial streams.
This property applies only when the NumSpaceTimeStreams
property is 2
and the DCM
property is 0
(false
).
Data Types: logical
MCS
— Modulation and coding scheme0
(default) | integer in the interval [0, 11]Modulation and coding scheme (MCS) used in transmitting the current packet,
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 |
When you set the ExtendedRange
to 1
(true
), you
can only set this property to 0
, 1
, or
2
.
When you set the Upper106ToneRU
to 1
(true
),
you can only set this property to 0
.
Data Types: double
DCM
— DCM indicatorfalse
or 0
(default) | true
or 1
Dual carrier modulation (DCM) indicator, specified as a numeric or logical
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 is 0
(false
).
The NumSpaceTimeStreams
property is less than or equal to 2.
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.
The NumSpaceTimeStreams
property is less than or equal to 4.
Data Types: char
| string
APEPLength
— APEP length100
(default) | integer in the interval [0, 6,500,531]Aggregated MPDU (A-MPDU) pre-end-of-frame (pre-EOF) padding (APEP) length, in bytes,
specified as an integer in the interval [0, 6,500,531]. Setting this property to
0
specifies transmission of an HE NDP.
The wlanHESUConfig
uses this property to determine the number of OFDM
symbols in the data field. For more information, see [2].
Data Types: double
GuardInterval
— Guard interval (cyclic prefix) duration3.2
(default) | 1.6
| 0.8
Guard interval (cyclic prefix) duration for the data field within a packet, in
microseconds, specified as 3.2
, 1.6
, or
0.8
.
Data Types: double
HELTFType
— HE-LTF compression mode of HE PPDU4
(default) | 2
| 1
HE-LTF compression mode of HE PPDU, specified as 4
,
2
, or 1
. This property indicates the type of
HE-LTF, where a value of 4
, 2
, or
1
corresponds to four times, two times, or one times HE-LTF
duration compression mode, respectively. The HE-LTF type is enumerated in Table 27-1 of
[2]
as:
1xHE-LTF – Duration of 3.2 μs with a guard interval duration of 0.8 μs or 1.6μs
2xHE-LTF – Duration of 6.4 μs with a guard interval duration of 0.8 μs or 1.6 μs
4xHE-LTF – Duration of 12.8 μs with a guard interval duration of 0.8 μs or 3.2 μs
For more information on the HE-LTF, see Section 27.3.10.10 of [2].
Data Types: double
UplinkIndication
— Uplink transmission indicatorfalse
or 0
(default) | true
or 1
Uplink transmission indicator, 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
BSSColor
— BSS color identifier0
(default) | integer in the interval [0, 63]Basic service set (BSS) color identifier, specified as an integer in the interval [0, 63].
Data Types: double
SpatialReuse
— Spatial reuse indicator0
(default) | integer in the interval [0, 15]Spatial reuse indicator, specified as an integer in the interval [0, 15].
Data Types: double
TXOPDuration
— Duration information for TXOP protection127
(default) | integer in the interval [0, 127]Duration information for transmit opportunity (TXOP) protection, specified as an
integer in the interval [0, 127]. Except for the first bit, which specifies TXOP length
granularity, each bit of the TXOP subfield of the HE-SIG-A field is equal to
TXOPDuration
. Therefore a duration in microseconds must be
converted according to the procedure set out in Table 27-18 of [2].
Data Types: double
HighDoppler
— High-Doppler mode indicatorfalse
or 0
(default) | true
or 1
High-Doppler mode indicator, specified as a numeric or logical 1
(true
) or 0
(false
). To
indicate high-Doppler mode in the HE-SIG-A field, set this property to
1
(true
).
The 1
(true
) value of this property is valid
only when the NumSpaceTimeStreams
property is less than or equal to 4 for any
RU.
Data Types: logical
MidamblePeriodicity
— Midamble periodicity of HE-Data field10
(default) | 20
Midamble periodicity of the HE-Data field, in number of OFDM symbols, specified as
10
or 20
.
This property applies only when the HighDoppler
property is 1
(true
).
Data Types: double
NominalPacketPadding
— Nominal packet padding0
(default) | 8
| 16
Nominal packet padding, in microseconds, specified as 0
,
8
, or 16
. The wlanHESUConfig
object uses this property and a, the pre-forward-error-correction
(pre-FEC) padding factor to calculate the duration,
TPE, of the packet extension (PE) field. For
more information about the packet extension field, see Section 27.3.12 of [2].
This table shows the possible values of TPE for different values of this property and a, which is defined by equation (27-83) or (27-84) of [2].
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 |
To enable this property, set the APEPLength
property to an integer in the interval [1, 6,500,531]. The duration of the PE field
for an NDP, regardless of the nominal packet padding, is 4 microseconds.
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 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
PostFECPaddingSeed
— Post-FEC padding bit seed for mt19937ar algorithm73
(default) | nonnegative integerPost-FEC padding bit seed for the mt19937ar algorithm, specified as a nonnegative integer.
To enable this property, set the PostFECPaddingSource
property to 'mt19937ar with seed'
.
Data Types: double
PostFECPaddingBits
— Post-FEC padding bits0
(default) | binary-valued column vectorPost-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
getNumPostFECPaddingBits | Calculate required number of post-FEC padding bits |
getPSDULength | Calculate HE PSDU length |
packetFormat | Return WLAN packet format |
ruInfo | Return HE format resource unit allocation information |
showAllocation | Show resource unit (RU) allocation |
Create an HE SU configuration object for a 40-MHz transmission.
cfgHE = wlanHESUConfig;
cfgHE.ChannelBandwidth = 'CBW40'
cfgHE = wlanHESUConfig with properties: ChannelBandwidth: 'CBW40' NumTransmitAntennas: 1 NumSpaceTimeStreams: 1 SpatialMapping: 'Direct' PreHESpatialMapping: 0 STBC: 0 MCS: 0 DCM: 0 ChannelCoding: 'LDPC' APEPLength: 100 GuardInterval: 3.2000 HELTFType: 4 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: 127 HighDoppler: 0 NominalPacketPadding: 0 PostFECPaddingSource: 'mt19937ar with seed' PostFECPaddingSeed: 73
Create an HE ER SE configuration object for a 20-MHz transmission.
cfgHE = wlanHESUConfig('ExtendedRange',true)
cfgHE = wlanHESUConfig with properties: ChannelBandwidth: 'CBW20' ExtendedRange: 1 Upper106ToneRU: 0 NumTransmitAntennas: 1 NumSpaceTimeStreams: 1 SpatialMapping: 'Direct' PreHESpatialMapping: 0 STBC: 0 MCS: 0 DCM: 0 ChannelCoding: 'LDPC' APEPLength: 100 GuardInterval: 3.2000 HELTFType: 4 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: 127 HighDoppler: 0 NominalPacketPadding: 0 PostFECPaddingSource: 'mt19937ar with seed' PostFECPaddingSeed: 73
Create an HE SU configuration object, specifying a channel bandwidth of 40 MHz and nominal packet padding value of eight microseconds.
cfgHESU = wlanHESUConfig('ChannelBandwidth','CBW40','NominalPacketPadding',8)
cfgHESU = wlanHESUConfig with properties: ChannelBandwidth: 'CBW40' NumTransmitAntennas: 1 NumSpaceTimeStreams: 1 SpatialMapping: 'Direct' PreHESpatialMapping: 0 STBC: 0 MCS: 0 DCM: 0 ChannelCoding: 'LDPC' APEPLength: 100 GuardInterval: 3.2000 HELTFType: 4 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: 127 HighDoppler: 0 NominalPacketPadding: 8 PostFECPaddingSource: 'mt19937ar with seed' PostFECPaddingSeed: 73
Update the configuration object to specify NDP transmission mode. Because the duration of the PE field for an NDP is always four microseconds, the NominalPacketPadding
property does not apply.
cfgHESU.APEPLength = 0
cfgHESU = wlanHESUConfig with properties: ChannelBandwidth: 'CBW40' NumTransmitAntennas: 1 NumSpaceTimeStreams: 1 SpatialMapping: 'Direct' PreHESpatialMapping: 0 STBC: 0 MCS: 0 DCM: 0 ChannelCoding: 'LDPC' APEPLength: 0 GuardInterval: 3.2000 HELTFType: 4 UplinkIndication: 0 BSSColor: 0 SpatialReuse: 0 TXOPDuration: 127 HighDoppler: 0
The physical layer (PHY) protocol data unit (PPDU) is the complete physical layer convergence procedure (PLCP) frame, including PLCP headers, MAC headers, the MAC data field, and the MAC and PLCP trailers.
[1] IEEE Std 802.11-2016 (Revision of IEEE Std 802.11-2012). “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.
[2] 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 must specify the data type of the postFECPaddingBits
property
as int8
.
wlanDMGConfig
| wlanHEMUConfig
| wlanHERecoveryConfig
| wlanHETBConfig
| wlanHTConfig
| wlanNonHTConfig
| wlanS1GConfig
| wlanVHTConfig
You have a modified version of this example. Do you want to open this example with your edits?