Generate VHT-Data field
y = wlanVHTData(psdu,cfg)
y = wlanVHTData(psdu,cfg,scramInit)
Generate the waveform for a MIMO 20 MHz VHT-Data field.
Create a VHT configuration object. Assign a 20 MHz channel bandwidth, two transmit antennas, two space-time streams, and set MCS to four.
cfgVHT = wlanVHTConfig('ChannelBandwidth','CBW20','NumTransmitAntennas',2,'NumSpaceTimeStreams',2,'MCS',4);
Generate the user payload data and the VHT-Data field waveform.
psdu = randi([0 1],cfgVHT.PSDULength*8,1); y = wlanVHTData(psdu,cfgVHT); size(y)
ans = 1×2 2160 2
The 20 MHz waveform is an array with two columns, corresponding to two transmit antennas. There are 2160 complex samples in each column.
ans = 10×2 complex -0.0598 + 0.1098i -0.1904 + 0.1409i 0.6971 - 0.3068i -0.0858 - 0.2701i -0.1284 + 0.9268i -0.8318 + 0.3314i -0.1180 + 0.0731i 0.1313 + 0.4956i 0.3591 + 0.5485i 0.9749 + 0.2859i -0.9751 + 1.3334i 0.0559 + 0.4248i 0.0881 - 0.8230i -0.1878 - 0.2959i -0.2952 - 0.4433i -0.1005 - 0.4035i -0.5562 - 0.3940i -0.1292 - 0.5976i 1.0999 + 0.3292i -0.2036 - 0.0200i
cfg— Format configuration
Format configuration, specified as a
wlanVHTData function uses the object properties
scramInit— Scrambler initialization state
Initial scrambler state of the data scrambler for each packet
generated, specified as an integer, a binary vector, a 1-by-
row vector, or a 7-by-
NU is the number
of users, from 1 to 4. If specified as an integer or binary vector,
the setting applies to all users. If specified as a row vector or
binary matrix, the setting for each user is specified in the corresponding
column, as a scalar integer from 1 to 127 or the corresponding binary
The scrambler initialization used on the transmission data follows the process described in IEEE Std 802.11-2012, Section 220.127.116.11 and IEEE Std 802.11ad™-2012, Section 21.3.9. The header and data fields that follow the scrambler initialization field (including data padding bits) are scrambled by XORing each bit with a length-127 periodic sequence generated by the polynomial S(x) = x7+x4+1. The octets of the PSDU (Physical Layer Service Data Unit) are placed into a bit stream, and within each octet, bit 0 (LSB) is first and bit 7 (MSB) is last. The generation of the sequence and the XOR operation are shown in this figure:
Conversion from integer to bits uses left-MSB orientation. For the
initialization of the scrambler with decimal
1, the bits are mapped to the
To generate the bit stream equivalent to a decimal, use
de2bi. For example, for decimal
de2bi(1,7,'left-msb') ans = 0 0 0 0 0 0 1
[1;0;1;1;1;0;1] conveys the scrambler
initialization state of 93 as a binary vector.
The very high throughput data (VHT data) field is used to transmit one or more frames from the MAC layer. It follows the VHT-SIG-B field in the packet structure for the VHT format PPDUs.
The VHT data field is defined in IEEE Std 802.11ac-2013, Section 22.3.10. It is composed of four subfields.
Service field — Contains a seven-bit scrambler initialization state, one bit reserved for future considerations, and eight bits for the VHT-SIG-B CRC field.
PSDU — Variable-length field containing the PLCP service data unit. In 802.11, the PSDU can consist of an aggregate of several MAC service data units.
PHY Pad — Variable number of bits passed to the transmitter to create a complete OFDM symbol.
Tail — Bits used to terminate a convolutional code. Tail bits are not needed when LDPC is used.
Physical layer (PHY) Service Data Unit (PSDU). A PSDU can consist of one medium access control (MAC) protocol data unit (MPDU) or several MPDUs in an aggregate MPDU (A-MPDU). In a single user scenario, the VHT-Data field contains one PSDU. In a multi-user scenario, the VHT-Data field carries up to four PSDUs for up to four users.
The VHT-Data field encodes
the service, PSDU, pad bits, and
tail bits. The
wlanVHTData function performs
transmitter processing on the VHT-Data field and outputs the time-domain waveform for NT transmit
|NES is the number of BCC encoders.|
|NSS is the number of spatial streams.|
|NSTS is the number of space-time streams.|
|NT is the number of transmit antennas.|
BCC channel coding is shown.
For algorithm details, refer to IEEE Std 802.11ac-2013 , Section 18.104.22.168 and 22.214.171.124, respectively, single user and multi-user.
 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.
 IEEE Std 802.11ac-2013 Adapted and reprinted with permission from IEEE. Copyright IEEE 2013. All rights reserved.