Documentation

This is machine translation

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

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

wlanVHTSIGBRecover

Recover VHT-SIG-B information bits

Syntax

recBits = wlanVHTSIGBRecover(rxSig,chEst,noiseVarEst,cbw)
recBits = wlanVHTSIGBRecover(rxSig,chEst,noiseVarEst,cbw,userNumber,numSTS)
recBits = wlanVHTSIGBRecover(___,cfgRec)
[recBits,eqSym] = wlanVHTSIGBRecover(___)
[recBits,eqSym,cpe] = wlanVHTSIGBRecover(___)

Description

example

recBits = wlanVHTSIGBRecover(rxSig,chEst,noiseVarEst,cbw) returns the recovered information bits from the VHT-SIG-B[1] field for a single-user transmission. Inputs include the received VHT-SIG-B field, the channel estimate, the noise variance estimate, and the channel bandwidth.

recBits = wlanVHTSIGBRecover(rxSig,chEst,noiseVarEst,cbw,userNumber,numSTS) returns the recovered information bits of a multiuser transmission for the user of interest, userNumber, and the number of space-time streams, numSTS.

example

recBits = wlanVHTSIGBRecover(___,cfgRec) specifies algorithm information using wlanRecoveryConfig object cfgRec.

example

[recBits,eqSym] = wlanVHTSIGBRecover(___) returns the equalized symbols, eqSym, using the arguments from previous syntaxes.

example

[recBits,eqSym,cpe] = wlanVHTSIGBRecover(___) returns the common phase error, cpe.

Examples

collapse all

Recover VHT-SIG-B bits in a perfect channel having 80 MHz channel bandwidth, one space-time stream, and one receive antenna.

Create a wlanVHTConfig object having a channel bandwidth of 80 MHz. Using the object, create a VHT-SIG-B waveform.

cfg = wlanVHTConfig('ChannelBandwidth','CBW80');
[txSig,txBits] = wlanVHTSIGB(cfg);

For a channel bandwidth of 80 MHz, there are 242 occupied subcarriers. The channel estimate array dimensions for this example must be [Nst,Nsts,Nr] = [242,1,1]. The example assumes a perfect channel and one receive antenna. Therefore, specify the channel estimate as a column vector of ones and the noise variance estimate as zero.

chEst = ones(242,1);
noiseVarEst = 0;

Recover the VHT-SIG-B. Verify that the received information bits are identical to the transmitted bits.

rxBits = wlanVHTSIGBRecover(txSig,chEst,noiseVarEst,'CBW80');
isequal(txBits,rxBits)
ans =

  logical

   1

Recover the VHT-SIG-B using a zero-forcing equalizer in an AWGN channel having 160 MHz channel bandwidth, one space-time stream, and one receive antenna.

Create a wlanVHTConfig object having a channel bandwidth of 160 MHz. Using the object, create a VHT-SIG-B waveform.

cfg = wlanVHTConfig('ChannelBandwidth','CBW160');
[txSig,txBits] = wlanVHTSIGB(cfg);

Pass the transmitted VHT-SIG-B through an AWGN channel.

awgnChan = comm.AWGNChannel('NoiseMethod','Variance','Variance',0.1);

rxSig = awgnChan(txSig);

Using wlanRecoveryConfig, set the equalization method to zero-forcing, 'ZF'.

cfgRec = wlanRecoveryConfig('EqualizationMethod','ZF');

Recover the VHT-SIG-B. Verify that the received information has no bit errors.

rxBits = wlanVHTSIGBRecover(rxSig,ones(484,1),0.1,'CBW160',cfgRec);
numErr = biterr(txBits,rxBits)
numErr =

     0

Recover VHT-SIG-B in a 2x2 MIMO channel for an SNR=10 dB and a receiver that has a 9 dB noise figure. Confirm that the information bits are recovered correctly.

Set the channel bandwidth and the corresponding sample rate.

cbw = 'CBW20';
fs = 20e6;

Create a VHT configuration object with 20 MHz bandwidth and two transmission paths. Generate the L-LTF and VHT-SIG-B waveforms.

vht = wlanVHTConfig('ChannelBandwidth',cbw,'NumTransmitAntennas',2, ...
    'NumSpaceTimeStreams',2);

txVHTLTF = wlanVHTLTF(vht);
[txVHTSIGB,txVHTSIGBBits] = wlanVHTSIGB(vht);

Pass the VHT-LTF and VHT-SIG-B waveforms through a 2x2 TGac channel.

tgacChan = wlanTGacChannel('NumTransmitAntennas',2, ...
    'NumReceiveAntennas',2, 'ChannelBandwidth',cbw,'SampleRate',fs);
rxVHTLTF = tgacChan(txVHTLTF);
rxVHTSIGB = tgacChan(txVHTSIGB);

Add white noise for an SNR = 10dB.

chNoise = comm.AWGNChannel('NoiseMethod','Signal to noise ratio (SNR)',...
    'SNR',10);

rxVHTLTF = chNoise(rxVHTLTF);
rxVHTSIGB = chNoise(rxVHTSIGB);

Add additional white noise corresponding to a receiver with a 9 dB noise figure. The noise variance is equal to k*T*B*F, where k is Boltzmann's constant, T is the ambient temperature, B is the channel bandwidth (sample rate), and F is the receiver noise figure.

nVar = 10^((-228.6+10*log10(290)+10*log10(fs)+9)/10);
rxNoise = comm.AWGNChannel('NoiseMethod','Variance','Variance',nVar);

rxVHTLTF = rxNoise(rxVHTLTF);
rxVHTSIGB = rxNoise(rxVHTSIGB);

Demodulate the VHT-LTF signal and use it to generate a channel estimate.

demodVHTLTF = wlanVHTLTFDemodulate(rxVHTLTF,vht);
chEst = wlanVHTLTFChannelEstimate(demodVHTLTF,vht);

Recover the VHT-SIG-B information bits. Display the scatter plot of the equalized symbols.

[recVHTSIGBBits,eqSym,cpe] = wlanVHTSIGBRecover(rxVHTSIGB,chEst,nVar,cbw);
scatterplot(eqSym)

Display the common phase error.

cpe
cpe =

    0.0318

Determine the number of errors between the transmitted and received VHT-SIG-B information bits.

numErr = biterr(txVHTSIGBBits,recVHTSIGBBits)
numErr =

     0

Input Arguments

collapse all

Received VHT-SIG-B field, specified as an NS-by-NR matrix. NS is the number of samples and increases with channel bandwidth.

Channel BandwidthNS
'CBW20'80
'CBW40'160
'CBW80'320
'CBW160'640

NR is the number of receive antennas.

Data Types: double
Complex Number Support: Yes

Channel estimate, specified as an NST-by-NSTS-by-NR array. NST is the number of occupied subcarriers. NSTS is the number of space-time streams. For multiuser transmissions, NSTS is the total number of space-time streams for all users . NR is the number of receive antennas.

NST increases with channel bandwidth.

ChannelBandwidthNumber of Occupied Subcarriers (NST)Number of Data Subcarriers (NSD)Number of Pilot Subcarriers (NSP)
'CBW20'56524
'CBW40'1141086
'CBW80'2422348
'CBW160'48446816

The channel estimate is based on the VHT-LTF.

Noise variance estimate, specified as a nonnegative scalar.

Data Types: double

Channel bandwidth, specified as 'CBW20', 'CBW40', 'CBW80', or 'CBW160'.

Data Types: char | string

Number of the user in a multiuser transmission, specified as an integer having a value from 1 to NUsers. NUsers is the total number of users.

Data Types: double

Number of space-time streams in a multiuser transmission, specified as a vector. The number of space-time streams is a 1-by-NUsers vector of integers from 1 to 4, where NUsers is an integer from 1 to 4.

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

Note

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

Data Types: double

Algorithm parameters, specified as a wlanRecoveryConfig object. The function uses these properties:

Note

If cfgRec is not provided, the function uses the default values of the wlanRecoveryConfig object.

OFDM symbol sampling offset represented as a fraction of the cyclic prefix (CP) length, specified as a scalar value from 0 to 1. This value indicates the start location for OFDM demodulation, relative to the beginning of the cyclic prefix. OFDMSymbolOffset = 0 represents the start of the cyclic prefix and OFDMSymbolOffset = 1 represents the end of the cyclic prefix.

Data Types: double

Equalization method, specified as 'MMSE' or 'ZF'.

  • 'MMSE' indicates that the receiver uses a minimum mean square error equalizer.

  • 'ZF' indicates that the receiver uses a zero-forcing equalizer.

Example: 'ZF'

Data Types: char | string

Pilot phase tracking, specified as 'PreEQ' or 'None'.

  • 'PreEQ' — Enables pilot phase tracking, which is performed before any equalization operation.

  • 'None' — Pilot phase tracking does not occur.

Data Types: char | string

Output Arguments

collapse all

Recovered VHT-SIG-B information bits, returned as an Nb-by-1 column vector. Nb is the number of recovered VHT-SIG-B information bits and increases with the channel bandwidth. The output is for a single user as determined by userNumber.

The number of output bits is proportional to the channel bandwidth.

ChannelBandwidthNb
'CBW20'26
'CBW40'27
'CBW80'29
'CBW160'29

See VHT-SIG-B for information about the meaning of each bit in the field.

Equalized symbols, returned as an NSD-by-1 column vector. NSD is the number of data subcarriers.

NSD increases with the channel bandwidth.

ChannelBandwidthNSD
'CBW20'52
'CBW40'108
'CBW80'234
'CBW160'468

Common phase error in radians, returned as a scalar.

More About

collapse all

VHT-SIG-B

The very high throughput signal B field (VHT-SIG-B) is used for multi-user scenario to set up the data rate and to fine-tune MIMO reception. It is modulated using MCS 0 and is transmitted in a single OFDM symbol.

The VHT-SIG-B field consists of a single OFDM symbol located between the VHT-LTF and the data portion of the VHT format PPDU.

The very high throughput signal B (VHT-SIG-B) field contains the actual rate and A-MPDU length value per user. The VHT-SIG-B is defined in IEEE® Std 802.11ac™-2013, Section 22.3.8.3.6, and Table 22–14. The number of bits in the VHT-SIG-B field varies with the channel bandwidth and the assignment depends on whether single user or multi-user scenario in allocated. For single user configurations, the same information is available in the L-SIG field but the VHT-SIG-B field is included for continuity purposes.

Field

VHT MU PPDU Allocation (bits)

VHT SU PPDU Allocation (bits)

Description

 

20 MHz

40 MHz

80 MHz, 160 MHz

20 MHz

40 MHz

80 MHz, 160 MHz

 

VHT-SIG-B

B0-15 (16)

B0-16 (17)

B0-18 (19)

B0-16 (17)

B0-18 (19)

B0-20 (21)

A variable-length field that indicates the size of the data payload in four-byte units. The length of the field depends on the channel bandwidth.

VHT-MCS

B16-19 (4)

B17-20 (4)

B19-22 (4)

N/A

N/A

N/A

A four-bit field that is included for multi-user scenarios only.

Reserved

N/A

N/A

N/A

B17–19 (3)

B19-20 (2)

B21-22 (2)

All ones

Tail

B20-25 (6)

B21-26 (6)

B23-28 (6)

B20-25 (6)

B21-26 (6)

B23-28 (6)

Six zero-bits used to terminate the convolutional code.

Total # bits

26

27

29

26

27

29

 

Bit field repetition

1

2

4

For 160 MHz, the 80 MHz channel is repeated twice.

1

2

4

For 160 MHz, the 80 MHz channel is repeated twice.
 

For a null data packet (NDP), the VHT-SIG-B bits are set according to IEEE Std 802.11ac-2013, Table 22-15.

VHT-LTF

The very high throughput long training field (VHT-LTF) is located between the VHT-STF and VHT-SIG-B portion of the VHT packet.

It is used for MIMO channel estimation and pilot subcarrier tracking. The VHT-LTF includes one VHT long training symbol for each spatial stream indicated by the selected MCS. Each symbol is 4 μs long. A maximum of eight symbols are permitted in the VHT-LTF.

The VHT-LTF is defined in IEEE Std 802.11ac-2013, Section 22.3.8.3.5.

PPDU

PLCP protocol data unit

The PPDU is the complete PLCP frame, including PLCP headers, MAC headers, the MAC data field, and the MAC and PLCP trailers.

Algorithms

collapse all

VHT-SIG-B Recovery

The VHT-SIG-B field consists of one symbol and resides between the VHT-LTF field and the data portion of the packet structure for the VHT format PPDUs.

For single-user packets, you can recover the length information from the L-SIG and VHT-SIG-A field information. Therefore, it is not strictly required for the receiver to decode the VHT-SIG-B field. For multiuser transmissions, recovering the VHT-SIG-B field provides packet length and MCS information for each user.

For VHT-SIG-B details, refer to IEEE Std 802.11ac™-2013 [1], Section 22.3.4.8, and Perahia [2], Section 7.3.2.4.

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.

[2] Perahia, E., and R. Stacey. Next Generation Wireless LANs: 802.11n and 802.11ac . 2nd Edition, United Kingdom: Cambridge University Press, 2013.

Extended Capabilities

Introduced in R2015b


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

Was this topic helpful?