Main Content

wlanVHTConfig

Configure VHT transmission

Description

The wlanVHTConfig object is a configuration object for the WLAN very high throughput (VHT) packet format.

Creation

Description

example

cfgVHT = wlanVHTConfig creates a configuration object that initializes parameters for an IEEE® 802.11™ VHT PPDU.

example

cfgVHT = wlanVHTConfig(Name,Value) sets properties using one or more name-value pairs. Enclose each property name in quotation marks. For example, 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

expand all

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

Number of users, specified as 1, 2, 3, or 4.

Data Types: double

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

Number of transmit antennas, specified as a positive integer.

Data Types: double

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 the NumTransmitAntennas property to 16, the wlanVHTConfig 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

Number of space-time streams in the transmission, specified as one of these values:

  • An integer in the interval [1, 8], applicable when the NumUsers property is 1

  • A 1-by-NumUsers vector of integers in the interval [1, 4], applicable when the NumUsers property is greater than 1.

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

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

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:

    ChannelBandwidthNumber of Occupied Subcarriers, NSTNumber of Data SubcarriersNumber of Pilot Subcarriers
    'CBW20'56524
    'CBW40'1141086
    'CBW80'2422348
    'CBW160'

    484

    46816

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

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

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

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 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:

MCSModulationCoding Rate
0Binary phase-shift keying (BPSK)1/2
1Quadrature phase-shift keying (QPSK)1/2
2QPSK3/4
316-point quadrature amplitude modulation (16-QAM)1/2
416-QAM3/4
564-QAM2/3
664-QAM3/4
764-QAM5/6
8256-QAM3/4
9256-QAM5/6

Data Types: double

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 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

Aggregated 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 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

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 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 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

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

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

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

transmitTimePacket transmission time

Examples

collapse all

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.

More About

expand all

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

Version History

Introduced in R2015b