This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Generate VHT-SIG-A waveform


y= wlanVHTSIGA(cfg)
[y,bits] = wlanVHTSIGA(cfg)



y= wlanVHTSIGA(cfg) generates a VHT-SIG-A[1] time-domain waveform for the specified configuration object. See VHT-SIG-A Processing for waveform generation details.

[y,bits] = wlanVHTSIGA(cfg) also outputs VHT-SIG-A information bits.


collapse all

Generate the VHT-SIG-A waveform for an 80 MHz transmission packet.

Create a VHT configuration object, assign an 80 MHz channel bandwidth, and generate the waveform.

cfgVHT = wlanVHTConfig;
cfgVHT.ChannelBandwidth = 'CBW80';
y = wlanVHTSIGA(cfgVHT);
ans = 1×2

   640     1

The 80 MHz waveform has two OFDM symbols and is a total of 640 samples long. Each symbol contains 320 samples.

Generate the VHT-SIG-A waveform for a 40 MHz transmission packet.

Create a VHT configuration object, and assign a 40 MHz channel bandwidth.

cfgVHT = wlanVHTConfig;
cfgVHT.ChannelBandwidth = 'CBW40';

Generate the VHT-SIG-A waveform and information bits.

[y,bits] = wlanVHTSIGA(cfgVHT);

Extract the bandwidth from the returned bits and analyze. The bandwidth information is contained in the first two bits.

bwBits = bits(1:2);
ans = 2x1 int8 column vector


As defined in IEEE Std 802.11ac-2013, Table 22-12, a value of '1' corresponds to 40 MHz bandwidth.

Input Arguments

collapse all

Format configuration, specified as a wlanVHTConfig object. The wlanVHTSIGA function uses the object properties indicated.

User Scenario

Applicable Object Properties


ChannelBandwidth, NumUsers, UserPositions, NumTransmitAntennas, NumSpaceTimeStreams, SpatialMapping, STBC, ChannelCoding, GuardInterval, and GroupID

Single user

ChannelBandwidth, NumUsers, NumTransmitAntennas, NumSpaceTimeStreams, SpatialMapping, STBC, MCS, ChannelCoding, GuardInterval, GroupID, Beamforming, and PartialAID

Channel bandwidth, specified as 'CBW20', 'CBW40', 'CBW80', or 'CBW160'. If the transmission has multiple users, the same channel bandwidth is applied to all users. The default value of 'CBW80' sets the channel bandwidth to 80 MHz.

Data Types: char | string

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

Data Types: double

Position of users, specified as an integer row vector with length equal to NumUsers and element values from 0 to 3 in a strictly increasing order. This property applies when NumUsers > 1.

Example: [0 2 3] indicates positions for three users, where the first user occupies position 0, the second user occupies position 2, and the third user occupies position 3.

Data Types: double

Number of transmit antennas, specified as an integer in the range [1, 8].

Data Types: double

Number of space-time streams in the transmission, specified as a scalar or vector.

  • For a single user, the number of space-time streams is a scalar integer from 1 to 8.

  • For multiple users, the number of space-time streams is a 1-by-NUsers vector of integers from 1 to 4, where the vector length, NUsers, is an integer from 1 to 4.

Example: [1 3 2] is the number of space-time streams for each user.


The sum of the space-time stream vector elements must not exceed eight.

Data Types: double

Spatial mapping scheme, specified as 'Direct', 'Hadamard', 'Fourier', or 'Custom'. The default value of 'Direct' applies when NumTransmitAntennas and NumSpaceTimeStreams are equal.

Data Types: char | string

Enable signaling of a transmission with beamforming, specified as a logical. Beamforming is performed when setting is true. This property applies when NumUsers equals 1 and SpatialMapping is set to 'Custom'. The SpatialMappingMatrix property specifies the beamforming steering matrix.

Data Types: logical

Enable space-time block coding (STBC) of the PPDU data field, specified as a logical. STBC transmits multiple copies of the data stream across assigned antennas.

  • When set to false, no STBC is applied to the data field, and the number of space-time streams is equal to the number of spatial streams.

  • When set to true, STBC is applied to the data field, and the number of space-time streams is double the number of spatial streams.

See IEEE® 802.11ac™-2013, Section for further description.


STBC is relevant for single-user transmissions only.

Data Types: logical

Modulation and coding scheme used in transmitting the current packet, specified as a scalar or vector.

  • For a single user, the MCS value is a scalar integer from 0 to 9.

  • For multiple users, MCS is a 1-by-NUsers vector of integers or a scalar with values from 0 to 9, where the vector length, NUsers, is an integer from 1 to 4.

MCSModulationCoding Rate

Data Types: double

Type of forward error correction coding for the data field, specified as 'BCC' (default) or 'LDPC'. 'BCC' indicates binary convolutional coding and 'LDPC' indicates low density parity check coding. Providing a character vector or a single cell character vector defines the channel coding type for a single user or all users in a multiuser transmission. By providing a cell array different channel coding types can be specified per user for a multiuser transmission.

Data Types: char | cell | string

Cyclic prefix length for the data field within a packet, specified as 'Long' or 'Short'.

  • The long guard interval length is 800 ns.

  • The short guard interval length is 400 ns.

Data Types: char | string

Group identification number, specified as a scalar integer from 0 to 63.

  • A group identification number of either 0 or 63 indicates a VHT single-user PPDU.

  • A group identification number from 1 to 62 indicates a VHT multi-user PPDU.

Data Types: double

Abbreviated indication of the PSDU recipient, specified as a scalar integer from 0 to 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 of a client is an identifier that combines the association ID with the BSSID of its serving AP.

For more information, see IEEE Std 802.11ac-2013, Table 22-1.

Data Types: double

Output Arguments

collapse all

VHT-SIG-A time-domain waveform, returned as an NS-by-NT matrix. NS is the number of time-domain samples, and NT is the number of transmit antennas.

NS is proportional to the channel bandwidth. The time-domain waveform consists of two symbols.


See VHT-SIG-A Processing for waveform generation details.

Data Types: double
Complex Number Support: Yes

Signaling bits used for the VHT-SIG-A, returned as a 48-bit column vector.

Data Types: int8

More About

collapse all


The very high throughput signal A (VHT-SIG-A) field contains information required to interpret VHT format packets. Similar to the non-HT signal (L-SIG) field for the non-HT OFDM format, this field stores the actual rate value, channel coding, guard interval, MIMO scheme, and other configuration details for the VHT format packet. Unlike the HT-SIG field, this field does not store the packet length information. Packet length information is derived from L-SIG and is captured in the VHT-SIG-B field for the VHT format.

The VHT-SIG-A field consists of two symbols: VHT-SIG-A1 and VHT-SIG-A2. These symbols are located between the L-SIG and the VHT-STF portion of the VHT format PPDU.

The VHT-SIG-A field is defined in IEEE Std 802.11ac-2013, Section

The VHT-SIG-A field includes these components. The bit field structures for VHT-SIG-A1 and VHT-SIG-A2 vary for single user or multiuser transmissions.

  • BW — A two-bit field that indicates 0 for 20 MHz, 1 for 40 MHz, 2 for 80 MHz, or 3 for 160 MHz.

  • STBC — A bit that indicates the presence of space-time block coding.

  • Group ID — A six-bit field that indicates the group and user position assigned to a STA.

  • NSTS — A three-bit field for a single user or 4 three-bit fields for a multiuser scenario, that indicates the number of space-time streams per user.

  • Partial AID — An identifier that combines the association ID and the BSSID.

  • TXOP_PS_NOT_ALLOWED — An indicator bit that shows if client devices are allowed to enter dose state. This bit is set to false when the VHT-SIG-A structure is populated, indicating that the client device is allowed to enter dose state.

  • Short GI — A bit that indicates use of the 400 ns guard interval.

  • Short GI NSYM Disambiguation — A bit that indicates if an extra symbol is required when the short GI is used.

  • SU/MU[0] Coding — A bit field that indicates if convolutional or LDPC coding is used for a single user or for user MU[0] in a multiuser scenario.

  • LDPC Extra OFDM Symbol — A bit that indicates if an extra OFDM symbol is required to transmit the data field.

  • MCS — A four-bit field.

    • For a single user scenario, it indicates the modulation and coding scheme used.

    • For a multiuser scenario, it indicates use of convolutional or LDPC coding and the MCS setting is conveyed in the VHT-SIG-B field.

  • Beamformed — An indicator bit set to 1 when a beamforming matrix is applied to the transmission.

  • CRC — An eight-bit field used to detect errors in the VHT-SIG-A transmission.

  • Tail — A six-bit field used to terminate the convolutional code.


collapse all

VHT-SIG-A Processing

The VHT-SIG-A field includes information required to process VHT format packets.

For algorithm details, refer to IEEE Std 802.11ac-2013 [1], Section The wlanVHTSIGA function performs transmitter processing on the VHT-SIG-A field and outputs the time-domain waveform.


[1] IEEE Std 802.11ac™-2013 IEEE Standard for Information technology — Telecommunications and information exchange between systems — Local and metropolitan area networks — Specific requirements — Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications — Amendment 4: Enhancements for Very High Throughput for Operation in Bands below 6 GHz.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2015b

[1] IEEE Std 802.11ac-2013 Adapted and reprinted with permission from IEEE. Copyright IEEE 2013. All rights reserved.