Main Content

wlanVHTData

Generate VHT-Data field

Description

y = wlanVHTData(psdu,cfg) generates a VHT-Data field1 time-domain waveform from user data bits psdu for transmission parameters cfg. See VHT-Data Field Processing for waveform generation details.

example

y = wlanVHTData(psdu,cfg,scramInit) uses scramInit for the scrambler initialization state.

y = wlanVHTData(___,OversamplingFactor=osf) generates an oversampled VHT-Data waveform with the specified oversampling factor. For more information about oversampling, see FFT-Based Oversampling.

Examples

collapse all

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.

y(1:10,:)
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

Input Arguments

collapse all

PHY service data unit (PSDU), specified as a binary column vector or row cell array.

If you specify psdu as a column vector, it must have Nb elements. Nb is the number of bits and is equal to the PSDULength property of the cfg input multiplied by eight.

If you specify psdu as a row cell array, its length must be equal to the NumUsers property of the cfg input. The ith element of the cell array must be a binary column vector. The length of this vector must be equal to eight times the ith element of the PSDULength property.

Data Types: double | int8

Transmission parameters, specified as a wlanVHTConfig object.

Initial scrambler state of the data scrambler for each packet generated, specified as an integer, a binary vector, a 1-by-NU integer row vector, or a 7-by-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 18.3.5.5 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 are placed into a bit stream and, within each octet, bit 0 (LSB) is first and bit 7 (MSB) is last. This figure shows the generation of the sequence and the XOR operation.

Conversion from integer to bits uses left-MSB orientation. For example, initializing the scrambler with decimal 1, the bits map to these elements.

ElementX7X6X5X4X3X2X1
Bit Value0000001

To generate the bit stream equivalent to a decimal, use the int2bit function. For example, for decimal 1:

int2bit(1,7)'
ans =

     0     0     0     0     0     0     1

Example: [1;0;1;1;1;0;1] conveys the scrambler initialization state of 93 as a binary vector.

Data Types: double | int8

Oversampling factor, specified as a scalar greater than or equal to 1. The oversampled cyclic prefix length must be an integer number of samples.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Output Arguments

collapse all

VHT-Data field 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. See VHT-Data Field Processing for waveform generation details.

More About

collapse all

Algorithms

collapse all

References

[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

expand all

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

Version History

Introduced in R2015b


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