Main Content

wlanEHTEqualize

Equalize demodulated EHT field symbols

Since R2023b

Description

[eqSym,csi] = wlanEHTEqualize(sym,chEst,noiseEst,cfg,field) equalizes the demodulated extremely high-throughput (EHT) 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] = wlanEHTEqualize(___,userIdx) specifies the user index in addition to any input argument combination from the previous syntax. This syntax applies only when cfg is a wlanEHTMUConfig object and field is "EHT-Data".

example

Examples

collapse all

Create a WLAN EHT multi-user configuration object with a channel bandwidth of 320 MHz.

cfg = wlanEHTMUConfig("CBW320");
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 get channel and noise estimates.

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

Isolate and demodulate the U-SIG field.

rxUSIG = rx(ind.USIG(1):ind.USIG(2),:);
usigDemod = wlanEHTDemodulate(rxUSIG,"U-SIG",cfg);

Estimate the channel at the U-SIG field.

chEst = wlanPreEHTChannelEstimate(usigDemod,chEstLLTF,cbw);

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

[eqSym,csi] = wlanEHTEqualize(usigDemod,chEst,noiseEst,cfg,"U-SIG");

Create a WLAN EHT multi-user configuration object with the allocation index set to 48. This setting specifies an OFDMA configuration with one 106+26-tone multiple resource unit (MRU) and one 106-tone resource unit (RU) in a 20 MHz channel. Both resource units have one user.

cfg = wlanEHTMUConfig(48);
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 estimate the noise power.

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

Isolate and demodulate the EHT-LTF for the 106+26-tone MRU. Use the demodulated symbols to estimate the channel.

rxEHTLTF = rx(ind.EHTLTF(1):ind.EHTLTF(2),:);
ruNumber = 1;
ehtltfDemod = wlanEHTDemodulate(rxEHTLTF,"EHT-LTF",cfg,ruNumber);
chEst = wlanEHTLTFChannelEstimate(ehtltfDemod,cfg,ruNumber);

Isolate and demodulate the HE-Data field for the 106+26-tone MRU.

rxData = rx(ind.EHTData(1):ind.EHTData(2),:);
sym = wlanEHTDemodulate(rxData,"EHT-Data",cfg,ruNumber);

Use the channel and noise estimates to equalize the demodulated EHT-Data symbols for the MRU's user.

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

Input Arguments

collapse all

Demodulated EHT 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: single | double

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 "EHT-Data"

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

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

Data Types: single | double
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: wlanEHTMUConfig, wlanEHTTBConfig, or wlanEHTRecoveryConfig.

Field to equalize, specified as one of these values:

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

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

  • "U-SIG"— Equalize the universal signal (U-SIG) field.

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

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

Data Types: char | string

User index, specified as a positive integer.

Note

This input is required only when cfg is a wlanEHTMUConfig object and field is "EHT-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 "U-SIG", eqSym has size L*NSC-by-NSYM, where NSC is the number of data, pilot, or combined data and pilot subcarriers, NSYM is the number of OFDM symbols, and L is the number of subblocks. L is 1 if the channel bandwidth is 80 MHz or less, 2 if the channel bandwidth is 160 MHz, and 4 if the channel bandwidth is 320 MHz.

  • If field is "EHT-SIG", the size further depends on the PPDU type of cfg:

    PPDU TypeSize of eqSym
    Single-user or sounding NDPNSC-by-NSYM
    Multi-user non-OFDMAC*NSC-by-NSYM
    OFDMAC*L*NSC-by-NSYM

    In the table, C is the number of content channels in the transmission. It is equal to 1 for a 20 MHz channel and equal to 2 for all other bandwidths.

  • If field is "EHT-Data", eqSym has size NSC-by-NSYM-by-NSTS, where NSC is the number of subcarriers in the sym input, NSYM is the number of OFDM symbols, and 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: double | single
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® P802.11be™/D5.0. “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 8: Enhancements for Extremely High Throughput (EHT).” Draft Standard for Information Technology — Telecommunications and Information Exchange between Systems — Local and Metropolitan Area Networks — Specific Requirements, https://ieeexplore.ieee.org/document/10381585

Extended Capabilities

expand all

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

Version History

Introduced in R2023b

expand all