Generate VHT-Data field
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
psdu— PHY service data unit
PHY service data unit (PSDU),
specified as an Nb-by-1
vector. Nb is the number
of bits and equals
PSDULength × 8.
cfg— Format configuration
Format configuration, specified as a
scramInit— Scrambler initialization state
93(default) | integer in the interval [1, 127] | integer row vector | binary vector | binary matrix
Initial scrambler state of the data scrambler for each packet generated, specified as an
integer, a binary vector, a
NU integer row vector, or
NU binary matrix.
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 an
integer in the interval [1, 127] or the corresponding binary vector.
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 VHT-Data field carries one or more frames from the medium access control (MAC) layer. This field follows the VHT-SIG-B field in a VHT PPDUs.
For a detailed description of the VHT-Data field, see section 21.3.10 of IEEE Std 802.11-2016. The VHT Data field consists 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 cyclic redundancy check (CRC) field
PSDU — Variable-length field containing a PLCP service data unit
PHY Pad — Variable number of bits passed to the transmitter to create a complete OFDM symbol
Tail — Bits required to terminate a convolutional code (not required when the transmission uses LDPC channel coding)
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.