Create VHT configuration object
The wlanVHTConfig
object is a configuration object for the WLAN
very high throughput (VHT) packet format.
creates a
configuration object that initializes parameters for an IEEE®
802.11™ VHT PPDU.cfgVHT
= wlanVHTConfig
sets
properties using one or more name-value pairs. Enclose each property name in quotation
marks. For example, cfgVHT
= wlanVHTConfig(Name,Value)wlanVHTConfig('GuardInterval','Short')
specifies a
400-nanosecond 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'CBW80'
(default) | 'CBW20'
| 'CBW40'
| '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
NumUsers
— Number of users1
(default) | 2
| 3
| 4
Number of users, specified as 1
, 2
,
3
, or 4
.
Data Types: double
UserPositions
— User positions[0 1]
(default) | vector of integersUser positions, specified as a 1-by-NumUsers
vector of integers in the interval [0, 3] in strictly increasing order.
Example: [0 2 3]
specifies the positions for three users. The
first user occupies position 0, the second user occupies position 2, and the third user
occupies position 3.
This property applies only when you specify the NumUsers
property as a value greater than 1
.
Data Types: double
NumTransmitAntennas
— Number of transmit antennas1
(default) | positive integerNumber of transmit antennas, specified as a positive integer.
Data Types: double
PreVHTCyclicShifts
— 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-VHT
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 wlanVHTConfig
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 wlanVHTConfig
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 wlanVHTConfig
object uses only the
first L elements. For example, if you set the
NumTransmitAntennas
property to 16
,
the wlanVHTConfig
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] | vector of integers in the interval [1, 4]Number of space-time streams in the transmission, specified as one of these values:
Example: [1 3 2]
is the number of space-time streams for each user
in a three-user transmission.
Note
The sum of the elements of this property must not exceed eight.
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 value of 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 | Number of Occupied Subcarriers, NST | Number of Data Subcarriers | Number of Pilot Subcarriers |
---|---|---|---|
'CBW20' | 56 | 52 | 4 |
'CBW40' | 114 | 108 | 6 |
'CBW80' | 242 | 234 | 8 |
'CBW160' | 484 | 468 | 16 |
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. For more information, see Section 19.3.11.11.2 of [1]. 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 beamformingtrue
or 1
(default) | false
or 0
Enable beamforming, specified as a numeric or logical value of 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 the NumUsers
property is set to 1
and the SpatialMapping
property is set to 'Custom'
.
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 value of 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.
For more information, see Section 22.3.10.9.4 of
This property applies only when the NumUsers
property is 1
.
Data Types: logical
MCS
— Modulation and coding scheme used for transmission0
(default) | integer in the interval [0, 9] | vector of integersModulation and coding scheme used for transmission, specified as one of these values:
an integer in the interval [0, 9], applicable when the NumUsers
property is 1
a 1-by-NumUsers
vector of integers in the interval [0,
9], applicable when the NumUsers
property is greater than
1
.
This table shows the modulation type and coding rate for each valid value
of MCS
:
MCS | Modulation | Coding Rate |
---|---|---|
0 | Binary phase-shift keying (BPSK) | 1/2 |
1 | Quadrature phase-shift keying (QPSK) | 1/2 |
2 | QPSK | 3/4 |
3 | 16-point quadrature amplitude modulation (16-QAM) | 1/2 |
4 | 16-QAM | 3/4 |
5 | 64-QAM | 2/3 |
6 | 64-QAM | 3/4 |
7 | 64-QAM | 5/6 |
8 | 256-QAM | 3/4 |
9 | 256-QAM | 5/6 |
Data Types: double
ChannelCoding
— FEC coding type'BCC'
(default) | 'LDPC'
| cell array of character vectors | cell array of stringsForward-error-correction (FEC) coding type for the VHT-Data field, specified as one of these values:
'LDPC'
– Low-density parity-check (LDPC) coding applies to all
users in the transmission
'BCC'
– binary convolutional coding (BCC) applies to all
users in the transmission
A 1-by-NumUsers
cell array containing the values 'LDPC'
and 'BCC'
, where the kth element specifies
the channel coding for user k
For more information, see Section 21.3.10.5 of [1].
Data Types: char
| cell
| string
APEPLength
— APEP length1024
(default) | nonnegative integer | vector of nonnegative integersAggregated MPDU (A-MPDU) pre-end-of-frame (pre-EOF) padding (APEP) length, in bytes.
When the NumUsers
property is 1
, specify this property as
a nonnegative integer in the interval [0, 220 –
1].
When the NumUsers
property is a value other than 1
,
specify this property as a 1-by-NumUsers
vector of integers
in the interval [0, 220 – 1].
For a null data packet (NDP), set this property to
0
.
The wlanVHTConfig
object uses this property to determine
the number of OFDM symbols in the data field. For more information, see Table 21-1 of
[1].
Note
This object supports only aggregated data transmission.
Data Types: double
PSDULength
— PSDU lengthThis property is read-only.
Physical layer convergence procedure (PLCP) service data unit (PSDU) length, in bytes, specified as one of these values:
An integer in the interval [0, 220 – 1], applicable
when the NumUsers
property is 1
. A value of
0
corresponds to a null data packet (NDP).
A vector of integers in the interval [0, 220 – 1],
applicable when the NumUsers
property is greater than 1
.
An empty array, applicable when this property is undefined, for example, when the set of property values is invalid.
The wlanVHTConfig
object calculates this property based on
the value of the APEPLength
property and other coding related properties. The details of this calculation are
specified in Section 21.4.3 of [1].
Example: [1035 4150]
is the PSDU length vector for a
wlanVHTConfig
object where the NumUsers
property is 2
and the MCS
property
is [0 3]
.
Data Types: double
GuardInterval
— Guard interval (cyclic prefix) duration'Long'
(default) | 'Short'
Guard interval (cyclic prefix) duration for the data field within a packet specified as one of these values:
'Long'
– Guard interval duration of 800 ns
'Short'
– Guard interval duration of 400 ns
Data Types: char
| string
GroupID
— Group identification number63
(default) | integer in the interval [0, 63]Group identification number, specified as an integer in the interval [0, 63].
The values 0
and 63
apply only when you set
the NumUsers
property to 1
. Values in the interval [1, 62] apply only when you
set the NumUsers
property to a value other than
1
.
Data Types: double
PartialAID
— Abbreviated indication of PSDU recipients275
(default) | integer in the interval [0, 511]Abbreviated indication of the PSDU recipients, specified as an integer in the interval [0, 511].
For an uplink transmission, the partial identification number is the last nine bits of the basic service set identifier (BSSID).
For a downlink transmission, the partial identification number is an identifier that combines the association ID with the BSSID of its serving AP.
For more information, see Table 21-1 of [1].
Data Types: double
Create a VHT configuration object with the default settings.
cfgVHT = wlanVHTConfig
cfgVHT = wlanVHTConfig with properties: ChannelBandwidth: 'CBW80' NumUsers: 1 NumTransmitAntennas: 1 NumSpaceTimeStreams: 1 SpatialMapping: 'Direct' STBC: 0 MCS: 0 ChannelCoding: 'BCC' APEPLength: 1024 GuardInterval: 'Long' GroupID: 63 PartialAID: 275 Read-only properties: PSDULength: 1035
Update the channel bandwidth.
cfgVHT.ChannelBandwidth = 'CBW40'
cfgVHT = wlanVHTConfig with properties: ChannelBandwidth: 'CBW40' NumUsers: 1 NumTransmitAntennas: 1 NumSpaceTimeStreams: 1 SpatialMapping: 'Direct' STBC: 0 MCS: 0 ChannelCoding: 'BCC' APEPLength: 1024 GuardInterval: 'Long' GroupID: 63 PartialAID: 275 Read-only properties: PSDULength: 1030
Create a VHT configuration object for a 20 MHz two-user transmission with one antenna per user.
Create a wlanVHTConfig
object using a combination of name-value pairs and inline initialization to change default settings. Vector-valued properties apply user-specific settings.
cfgMU = wlanVHTConfig('ChannelBandwidth','CBW20','NumUsers',2, ... 'GroupID',2,'NumTransmitAntennas',2); cfgMU.NumSpaceTimeStreams = [1 1]; cfgMU.MCS = [4 8]; cfgMU.APEPLength = [1024 2048]; cfgMU.ChannelCoding = {'BCC' 'LDPC'}
cfgMU = wlanVHTConfig with properties: ChannelBandwidth: 'CBW20' NumUsers: 2 UserPositions: [0 1] NumTransmitAntennas: 2 NumSpaceTimeStreams: [1 1] SpatialMapping: 'Direct' MCS: [4 8] ChannelCoding: {'BCC' 'LDPC'} APEPLength: [1024 2048] GuardInterval: 'Long' GroupID: 2 Read-only properties: PSDULength: [1030 2065]
The configuration object settings reflect the updates specified. Properties that aren't modified take their default values.
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.
Usage notes and limitations: After the first use of this object for a VHT MU-MIMO transmission, you cannot change the number of elements in any of these properties.
In addition, if you specify the ChannelCoding
property as a cell array, you cannot change any of the elements of this property after the
first use of this object for a VHT MU-MIMO transmission.
wlanDMGConfig
| wlanHEMUConfig
| wlanHESUConfig
| wlanHETBConfig
| wlanHTConfig
| wlanNonHTConfig
| wlanS1GConfig
wlanVHTData
| wlanVHTDataRecover
| wlanVHTLTF
| wlanVHTLTFDemodulate
| wlanVHTOFDMInfo
| wlanVHTSIGA
| wlanVHTSIGARecover
| wlanVHTSIGB
| wlanVHTSIGBRecover
| wlanVHTSTF
| wlanWaveformGenerator
You have a modified version of this example. Do you want to open this example with your edits?