Main Content

wlanLSIGBitRecover

Recover information bits in L-SIG field

Description

[bits,failCheck,info] = wlanLSIGBitRecover(lsig,noiseVarEst) recovers information bits, bits, for legacy signal (L-SIG) field lsig and channel noise variance estimate noiseVarEst. The function also returns failCheck, the result of the parity check on bits and info, a structure containing modulation and coding scheme (MCS) value and physical layer convergence procedure service data unit (PSDU) length.

example

[bits,failCheck,info] = wlanLSIGBitRecover(lsig,noiseVarEst,csi) recovers the L-SIG information bits for channel state information csi.

example

Examples

collapse all

Recover the information bits in the L-SIG field of a WLAN HE single-user (HE-SU) waveform.

Create a WLAN HE-SU-format configuration object with default settings and use it to generate an HE-SU waveform.

cfgHE = wlanHESUConfig;
cbw = cfgHE.ChannelBandwidth;
waveform = wlanWaveformGenerator(1,cfgHE);

Obtain the WLAN field indices, which contain the modulated L-SIG and RL-SIG fields.

ind = wlanFieldIndices(cfgHE);
rxLSIG = waveform(ind.LSIG(1):ind.RLSIG(2),:);

Perform orthogonal frequency-division multiplexing (OFDM) demodulation to extract the L-SIG field.

lsigDemod = wlanHEDemodulate(rxLSIG,'L-SIG',cbw);

Average the L-SIG and RL-SIG symbols, return the pre-HE OFDM information, and extract the demodulated L-SIG symbols.

lsigDemodAverage = mean(lsigDemod,2);
preHEInfo = wlanHEOFDMInfo('L-SIG',cbw);
lsig = lsigDemodAverage(preHEInfo.DataIndices,:);

Recover the L-SIG information bits and other information, assuming no channel noise. Display the parity check result.

noiseVarEst = 0;
[bits,failCheck,info] = wlanLSIGBitRecover(lsig,noiseVarEst);
disp(failCheck);
   0

Recover the information bits in the L-SIG field of a WLAN HE multiuser (HE-MU) waveform with specified channel state information.

Create a WLAN HE-MU-format configuration object with an allocation index of 192 and use it to generate an HE-MU waveform.

cfgHE = wlanHEMUConfig(192);
cbw = cfgHE.ChannelBandwidth;
waveform = wlanWaveformGenerator(1,cfgHE);

Obtain the WLAN field indices, which contain the modulated L-SIG and RL-SIG fields.

ind = wlanFieldIndices(cfgHE);
rxLSIG = waveform(ind.LSIG(1):ind.RLSIG(2),:);

Perform OFDM demodulation to extract the L-SIG field.

lsigDemod = wlanHEDemodulate(rxLSIG,'L-SIG',cbw);

Average the L-SIG and RL-SIG symbols, return the pre-HE OFDM information, and extract the demodulated L-SIG symbols.

lsigDemodAverage = mean(lsigDemod,2);
preHEInfo = wlanHEOFDMInfo('L-SIG',cbw);
lsig = lsigDemodAverage(preHEInfo.DataIndices,:);

Specify the channel state information and assume no channel noise.

csi = ones(52,1);
noiseVarEst = 0;

Recover the L-SIG information bits and other information. Display the parity check result.

[bits,failCheck,info] = wlanLSIGBitRecover(lsig,noiseVarEst,csi);
disp(failCheck);
   0

Input Arguments

collapse all

Demodulated L-SIG symbols, specified as a complex-valued column vector. The size of lsig depends on the WLAN format. For a high-efficiency (HE) format, specify lsig as a 52-by-1 column vector. For a very-high-throughput (VHT), high-throughput (HT), or non-high-throughput (non-HT) format, specify lsig as a 48-by-1 column vector.

Data Types: single | double
Complex Number Support: Yes

Channel noise variance estimate, specified as a nonnegative scalar.

Data Types: single | double

Channel state information, specified as a real-valued column vector. The size of csi depends on the WLAN format. For a high-efficiency (HE) format, specify csi as a 52-by-1 column vector. For a very-high-throughput (VHT), high-throughput (HT), or non-high-throughput (non-HT) formats, specify csi as a 48-by-1 column vector.

To use the channel state information for enhanced demapping of the orthogonal frequency-division multiplexing (OFDM) symbols, specify csi.

Data Types: single | double

Output Arguments

collapse all

Information bits recovered from L-SIG field, returned as a 24-by-1 binary column.

Data Types: int8

Parity check result, returned as a logical value of 1 (true) or 0 (false). The wlanLSIGBitRecover function returns failCheck as 1 if the recovered bits fail the parity check.

Data Types: logical

MCS value and PSDU length, returned as a structure containing these fields.

MCS value, returned as an integer in the interval [0, 7]. Each value of MCS corresponds to a rate, as shown in this table.

MCSRate (Mb/s)
06
19
212
318
424
536
648
754

For more information, see Section 17.3.4 of [1].

Data Types: single | double

Length of PSDU, returned as a nonnegative integer. The value of length is the number of octets in the PSDU that the physical (PHY) layer attempts to send.

Data Types: single | double

Data Types: struct

References

[1] IEEE Std 802.11™-2020 (Revision of IEEE Std 802.11-2016). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems — Local and Metropolitan Area Networks — Specific Requirements.

[2] IEEE® Std 802.11ax™-2021 (Amendment to IEEE Std 802.11-2020). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 1: Enhancements for High Efficiency WLAN.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems. Local and Metropolitan Area Networks — Specific Requirements.

Extended Capabilities

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

Version History

Introduced in R2019a

expand all