wlanVHTConfig
Configure VHT transmission
Description
The wlanVHTConfig
object is a configuration object for the WLAN
very high throughput (VHT) packet format.
Creation
Description
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.
Properties
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 users
1
(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 integers
User 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.
Dependencies
This property applies only when you specify the NumUsers
property as a value greater than 1
.
Data Types: double
NumTransmitAntennas
— Number of transmit antennas
1
(default) | positive integer
Number 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 vector
Cyclic 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 theNumTransmitAntennas
property to16
, thewlanVHTConfig
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
NumSpaceTimeStreams
— Number of space-time streams
1
(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'
.
Dependencies
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 matrix
1
(default) | complex-valued scalar | complex-valued matrix | complex-valued 3-D array
Spatial 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.
Dependencies
This property applies only when you set the SpatialMapping
property to 'Custom'
.
Data Types: double
Complex Number Support: Yes
Beamforming
— Enable beamforming
true
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.
Dependencies
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 STBC
false
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
Dependencies
This property applies only when the NumUsers
property is 1
.
Data Types: logical
MCS
— Modulation and coding scheme used for transmission
0
(default) | integer in the interval [0, 9] | vector of integers
Modulation and coding scheme used for transmission, specified as one of these values:
an integer in the interval [0, 9], applicable when the
NumUsers
property is1
a 1-by-
NumUsers
vector of integers in the interval [0, 9], applicable when theNumUsers
property is greater than1
.
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 strings
Forward-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 transmissionA 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 length
1024
(default) | nonnegative integer | vector of nonnegative integers
Aggregated MPDU (A-MPDU) pre-end-of-frame (pre-EOF) padding (APEP) length, in bytes.
When the
NumUsers
property is1
, specify this property as a nonnegative integer in the interval [0, 220 – 1].When the
NumUsers
property is a value other than1
, 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 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 length
integer in the interval [0, 220 – 1] | vector of integers in the interval [0, 220–1]
This 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 is1
. A value of0
corresponds to a null data packet (NDP).A vector of integers in the interval [0, 220 – 1], applicable when the
NumUsers
property is greater than1
.An empty array, applicable when this property is undefined, for example, when the set of property values is invalid.
The object calculates this property based on the value of the APEPLength
property and other coding related properties. For more information, see 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 number
63
(default) | integer in the interval [0, 63]
Group identification number, specified as an integer in the interval [0, 63].
Dependencies
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 recipients
275
(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
Object Functions
transmitTime | Packet transmission time |
Examples
Create wlanVHTConfig Object for Single User
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 wlanVHTConfig Object for Two Users
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.
More About
PPDU
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.
References
[1] 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™.
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.
Version History
Introduced in R2015b
See Also
Functions
transmitTime
|wlanVHTData
|wlanVHTDataRecover
|wlanVHTLTF
|wlanVHTLTFDemodulate
|wlanVHTOFDMInfo
|wlanVHTSIGA
|wlanVHTSIGARecover
|wlanVHTSIGB
|wlanVHTSIGBRecover
|wlanVHTSTF
|wlanWaveformGenerator
Apps
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)