Main Content

wlanHEEqualize

Equalize demodulated HE field symbols

Since R2023b

Description

[eqSym,csi] = wlanHEEqualize(sym,chEst,noiseEst,cfg,field) equalizes the demodulated high-efficiency (HE) field symbols sym from the specified field. The function uses the channel estimate chEst, the noise estimate noiseEst, and the parameters specified in cfg.

example

[eqSym,csi] = wlanHEEqualize(___,userIdx) specifies the user index in addition to any input argument combination from the previous syntax. This syntax applies only when cfg is a wlanHEMUConfig object and field is "HE-Data".

example

Examples

collapse all

Create a WLAN HE single-user configuration object with a channel bandwidth of 160 MHz.

cfg = wlanHESUConfig(ChannelBandwidth="CBW160");
cbw = cfg.ChannelBandwidth;

Generate a time-domain waveform for the configuration.

tx = wlanWaveformGenerator([1;0;0;1],cfg);

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

snr = 15;
rx = awgn(tx,snr);

Get the field indices for the configuration.

ind = wlanFieldIndices(cfg);

Isolate and demodulate the L-LTF. Use the demodulated symbols to get channel and noise estimates.

rxLLTF = rx(ind.LLTF(1):ind.LLTF(2),:);
lltfDemod = wlanHEDemodulate(rxLLTF,"L-LTF",cfg);
chEstLLTF = wlanLLTFChannelEstimate(lltfDemod,cfg);
noiseEst = wlanLLTFNoiseEstimate(lltfDemod);

Isolate and demodulate the L-SIG field. Estimate the channel there.

rxLSIG = rx(ind.LSIG(1):ind.LSIG(2),:);
sym = wlanHEDemodulate(rxLSIG,"L-SIG",cfg);
chEst = wlanPreHEChannelEstimate(sym,chEstLLTF,cbw);

Use the channel and noise estimates to equalize the demodulated L-SIG symbols.

[eqSym,csi] = wlanHEEqualize(sym,chEst,noiseEst,cfg,"L-SIG");

Create a WLAN HE multi-user configuration object. Set the allocation index to 0. This setting specifies nine 26-tone resource units (RUs), each with one user, in a 20 MHz channel bandwidth.

cfg = wlanHEMUConfig(0);
cbw = cfg.ChannelBandwidth;

Generate a time-domain waveform for the configuration.

tx = wlanWaveformGenerator([1;0;0;1],cfg);

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

snr = 20;
rx = awgn(tx,snr);

Get the field indices for the configuration.

ind = wlanFieldIndices(cfg);

Isolate and demodulate the L-LTF. Use the demodulated symbols to estimate the noise power.

rxLLTF = rx(ind.LLTF(1):ind.LLTF(2),:);
lltfDemod = wlanHEDemodulate(rxLLTF,"L-LTF",cfg);
noiseEst = wlanLLTFNoiseEstimate(lltfDemod);

Isolate and demodulate the HE-LTF for the first RU. Use the demodulated symbols to estimate the channel.

rxHELTF = rx(ind.HELTF(1):ind.HELTF(2),:);
ruNumber = 9;
heltfDemod = wlanHEDemodulate(rxHELTF,"HE-LTF",cfg,ruNumber);
chEst = wlanHELTFChannelEstimate(heltfDemod,cfg,ruNumber);

Isolate and demodulate the HE-Data field for the first RU.

rxData = rx(ind.HEData(1):ind.HEData(2),:);
sym = wlanHEDemodulate(rxData,"HE-Data",cfg,ruNumber);

Use the channel and noise estimates to equalize the demodulated HE-Data symbols for the first user.

userIdx = ruNumber;
[eqSym,csi] = wlanHEEqualize(sym,chEst,noiseEst,cfg,"HE-Data",userIdx);

Input Arguments

collapse all

Demodulated HE field symbols, specified as a 3-D array. The size of the array is NSC-by-NSYM-by-NR, where NSC is the number of subcarriers, NSYM is the number of OFDM symbols, and NR is the number of receive antennas.

Data Types: double | single

Channel estimate, specified as a matrix or 3-D array. The size of this input must be:

  • NSC-by-1-by-NR if the field input is not "HE-Data"

  • NSC-by-2-by-NR if the STBC property of the cfg input is 1 (true)

  • NSC-by-NSTS-by-NR if the field input is "HE-Data"

NSTS is the number of space-time streams specified in the cfg input.

Data Types: double | single
Complex Number Support: Yes

Noise estimate, specified as a nonnegative real scalar. This input determines how the function equalizes the input symbols. For more information, see Equalization Methods.

Data Types: double | single

Format configuration, specified as one of these objects: wlanHEMUConfig, wlanHESUConfig, wlanHERecoveryConfig, or wlanHETBConfig.

Field to equalize, specified as one of these values:

  • "L-LTF" — Equalize the legacy long training field (L-LTF).

  • "L-SIG" — Equalize the legacy signal (L-SIG) field.

  • "RL-SIG" — Equalize the repeated legacy signal (RL-SIG) field.

  • "HE-SIG-A"— Equalize the HE signal A (HE-SIG-A) field.

  • "HE-SIG-B" — Equalize the HE signal B (HE-SIG-B) field. This value applies only when cfg is a wlanHEMUConfig or wlanHERecoveryConfig object.

  • "HE-Data" — Equalize the HE-Data field.

Data Types: char | string

User index, specified as a positive integer.

Note

This input is required only when cfg is a wlanHEMUConfig object and field is "HE-Data". If you specify this input in any other situation, the function ignores it.

Output Arguments

collapse all

Equalized symbols, returned as a matrix or 3-D array. The size of this output depends on the value of the field input:

  • If field is "HE-SIG-B", eqSym has size C*NSC-by-NSYM, where NSC is the number of data, pilot, or combined data and pilot subcarriers in a 20 MHz channel bandwidth, NSYM is the number of OFDM symbols, and C is the number of content channels. C is 1 if the channel bandwidth is 20 MHz, and 2 otherwise.

  • If field is "HE-Data", eqSym has size NSC-by-NSYM-by-NSTS. NSC is the number of subcarriers in the sym input. NSYM is the number of OFDM symbols. NSTS is 1 when the STBC of the cfg input is 1 (true). Otherwise, NSTS is the number of space-time streams in the chEst input.

  • If field has any other value, eqSym has size NSC-by-NSYM, where NSC is the number of data, pilot, or combined data and pilot subcarriers in a 20 MHz channel bandwidth.

Data Types: single | double
Complex Number Support: Yes

Channel state information, returned as a real-valued matrix. The size of the matrix is NSC-by-NSTS, where NSC is equal to the first dimension of the eqSym output.

Data Types: single | double

Algorithms

collapse all

References

[1] 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

expand all

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

Version History

Introduced in R2023b