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.

wlanHTDataRecover

Recover HT data

Syntax

recData = wlanHTDataRecover(rxSig,chEst,noiseVarEst,cfg)
recData = wlanHTDataRecover(rxSig,chEst,noiseVarEst,cfg,cfgRec)
[recData,eqSym] = wlanHTDataRecover(___)
[recData,eqSym,cpe] = wlanHTDataRecover(___)

Description

example

recData = wlanHTDataRecover(rxSig,chEst,noiseVarEst,cfg) returns the recovered HT-Data field[1] , recData, for input signal rxSig. Specify a channel estimate for the occupied subcarriers, chEst, a noise variance estimate, noiseVarEst, and an HT-Mixed format configuration object, cfg.

example

recData = wlanHTDataRecover(rxSig,chEst,noiseVarEst,cfg,cfgRec) specifies algorithm information using wlanRecoveryConfig object cfgRec.

[recData,eqSym] = wlanHTDataRecover(___) also returns the equalized symbols, eqSym, using the arguments from the previous syntaxes.

[recData,eqSym,cpe] = wlanHTDataRecover(___) also returns the common phase error, cpe.

Examples

collapse all

Create an HT configuration object having a PSDU length of 1024 bytes. Generate an HTData sequence from a binary sequence whose length is eight times the length of the PSDU.

cfgHT = wlanHTConfig('PSDULength',1024);
txBits = randi([0 1],8*cfgHT.PSDULength,1);
txHTSig = wlanHTData(txBits,cfgHT);

Pass the signal through an AWGN channel with a signal-to-noise ratio of 10 dB.

rxHTSig = awgn(txHTSig,10);

Specify a channel estimate. Because fading was not introduced, a vector of ones is a perfect estimate. For a 20 MHz bandwidth, there are 52 data subcarriers and 4 pilot subcarriers in the HT-SIG field.

chEst = ones(56,1);

Recover the data bits and determine the number of bit errors. Display the number of bit errors and the associated bit error rate.

rxBits = wlanHTDataRecover(rxHTSig,chEst,0.1,cfgHT);
[numerr,ber] = biterr(rxBits,txBits)
numerr =

     0


ber =

     0

Create an HT configuration object having a 40 MHz channel bandwidth and a 1024-byte PSDU length. Generate the corresponding HT-Data sequence.

cfgHT = wlanHTConfig('ChannelBandwidth','CBW40','PSDULength',1024);
txBits = randi([0 1],8*cfgHT.PSDULength,1);
txHTSig = wlanHTData(txBits, cfgHT);

Pass the signal through an AWGN channel with a signal-to-noise ratio of 7 dB.

rxHTSig = awgn(txHTSig,7);

Create a data recovery object that specifies the use of the zero-forcing algorithm.

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

Recover the data and determine the number of bit errors. Because fading was not introduced, the channel estimate is set to a vector of ones whose length is equal to the number of occupied subcarriers.

rxBits = wlanHTDataRecover(rxHTSig,ones(114,1),0.2,cfgHT,cfgRec);
[numerr,ber] = biterr(rxBits,txBits)
numerr =

     0


ber =

     0

Input Arguments

collapse all

Received HT-Data signal, specified as an NS-by-NR vector or matrix. NS is the number of samples, and 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, and NR is the number of receive antennas.

Data Types: double
Complex Number Support: Yes

Noise variance estimate, specified as a nonnegative scalar.

Example: 0.7071

Data Types: double

Format configuration, specified as a wlanHTConfig object. The wlanHTDataRecover function uses the following wlanHTConfig object properties:

Channel bandwidth in MHz, specified as 'CBW20' or 'CBW40'.

Data Types: char | string

Number of space-time streams in the transmission, specified as 1, 2, 3, or 4.

Data Types: double

Modulation and coding scheme to use for transmitting the current packet, specified as an integer from 0 to 31. The MCS setting identifies which modulation and coding rate combination is used, and the number of spatial streams (NSS).

MCS(Note 1)NSS(Note 1)ModulationCoding Rate

0, 8, 16, or 24

1, 2, 3, or 4

BPSK1/2

1, 9, 17, or 25

1, 2, 3, or 4

QPSK1/2

2, 10, 18, or 26

1, 2, 3, or 4

QPSK3/4

3, 11, 19, or 27

1, 2, 3, or 4

16QAM1/2

4, 12, 20, or 28

1, 2, 3, or 4

16QAM3/4

5, 13, 21, or 29

1, 2, 3, or 4

64QAM2/3

6, 14, 22, or 30

1, 2, 3, or 4

64QAM3/4

7, 15, 23, or 31

1, 2, 3, or 4

64QAM5/6
Note-1 MCS from 0 to 7 have one spatial stream. MCS from 8 to 15 have two spatial streams. MCS from 16 to 23 have three spatial streams. MCS from 24 to 31 have four spatial streams.

See IEEE® 802.11™-2012, Section 20.6 for further description of MCS dependent parameters.

When working with the HT-Data field, if the number of space-time streams is equal to the number of spatial streams, no space-time block coding (STBC) is used. See IEEE 802.11-2012, Section 20.3.11.9.2 for further description of STBC mapping.

Example: 22 indicates an MCS with three spatial streams, 64-QAM modulation, and a 3/4 coding rate.

Data Types: double

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

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

Number of bytes carried in the user payload, specified as an integer from 0 to 65,535. A PSDULength of 0 implies a sounding packet for which there are no data bits to recover.

Example: 512

Data Types: double

Algorithm parameters, specified as a wlanRecoveryConfig object. The object properties include:

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

Maximum number of decoding iterations in LDPC, specified as a positive scalar integer. This parameter is applicable when channel coding is set to LDPC. For information on channel coding options, see wlanVHTConfig or wlanHTConfig for 802.11 format of interest.

Data Types: double

Enable early termination of LDPC decoding, specified as a logical. This parameter is applicable when channel coding is set to LDPC.

  • When set to false, LDPC decoding completes the number of iterations specified by MaximumLDPCIterationCount, regardless of parity check status.

  • When set to true, LDPC decoding terminates when all parity-checks are satisfied.

For information on channel coding options, see wlanVHTConfig or wlanHTConfig for 802.11 format of interest.

Output Arguments

collapse all

Recovered binary output data, returned as a column vector of length 8×NPSDU, where NPSDU is the length of the PSDU in bytes. See wlanHTConfig Properties for PSDULength details.

Data Types: int8

Equalized symbols, returned as an NSD-by-NSYM-by-NSS array. NSD is the number of data subcarriers, NSYM is the number of OFDM symbols in the HT-Data field, and NSS is the number of spatial streams.

Data Types: double
Complex Number Support: Yes

Common phase error in radians, returned as a column vector having length NSYM. NSYM is the number of OFDM symbols in the HT-Data field.

More About

collapse all

HT-Data field

The high throughput data field (HT-Data) follows the last HT-LTF of an HT-mixed packet.

The high throughput data field is used to transmit one or more frames from the MAC layer and consists of four subfields.

  • Service field — Contains 16 zeros to initialize the data scrambler.

  • PSDU — Variable-length field containing the PLCP service data unit (PSDU). In 802.11, the PSDU can consist of an aggregate of several MAC service data units.

  • Tail — Tail bits required to terminate a convolutional code. The field uses six zeros for each encoding stream.

  • Pad Bits — Variable-length field required to ensure that the HT-Data field consists of an integer number of symbols.

HT-Mixed

High throughput mixed (HT-mixed) format devices support a mixed mode in which the PLCP header is compatible with HT and Non-HT modes.

References

[1] IEEE Std 802.11™-2012 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.

Extended Capabilities

Introduced in R2015b


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

Was this topic helpful?