Main Content

wlanEHTDemodulate

Demodulate fields of EHT waveform

Since R2023a

Description

sym = wlanEHTDemodulate(rx,field,cfg) recovers a demodulated frequency-domain signal by OFDM-demodulating the received time-domain extremely high-throughput (EHT) signal rx.

example

sym = wlanEHTDemodulate(rx,field,cfg,ruNumber) specifies the number of a resource unit (RU) or multiple resource unit (MRU). To demodulate the EHT-Data field or the EHT long training field (EHT-LTF), use this syntax.

example

sym = wlanEHTDemodulate(___,Name=Value) specifies additional options using one or more name-value arguments in combination with either of the previous syntaxes.

example

Examples

collapse all

Create a non-OFDMA EHT MU configuration object with a channel bandwidth of 320 MHz.

cfg = wlanEHTMUConfig("CBW320");

Generate a time-domain waveform for the configuration.

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

Extract the part of the waveform that corresponds to the EHT-SIG field.

ind = wlanFieldIndices(cfg);
ehtSig = tx(ind.EHTSIG(1):ind.EHTSIG(2),:);

Demodulate the EHT-SIG field.

sym = wlanEHTDemodulate(ehtSig,"EHT-SIG",cfg);

Extract the data and pilot subcarriers.

info = wlanEHTOFDMInfo('EHT-SIG',cfg);
data = sym(info.DataIndices,:,:);
pilots = sym(info.PilotIndices,:,:);

Create an OFDMA EHT MU configuration object. Set the allocation index to 23. This setting specifies a configuration with four users. One user has a 26-tone RU, another has a 106-tone RU, and the remaining two both have a 52-tone RU.

cfg = wlanEHTMUConfig(23);

Generate a time-domain waveform for the configuration.

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

Generate field indices for the configuration.

ind = wlanFieldIndices(cfg);

Extract the parts of the waveform that correspond to the EHT-LTF and EHT-Data fields.

rxLTF = tx(ind.EHTLTF(1):ind.EHTLTF(2),:);
rxData = tx(ind.EHTData(1):ind.EHTData(2),:);

Demodulate the EHT-LTF and EHT-Data fields for each of the four RUs.

for ruNumber = 1:numel(cfg.RU)
    symLTF = wlanEHTDemodulate(rxLTF,"EHT-LTF",cfg,ruNumber);
    symData = wlanEHTDemodulate(rxData,"EHT-Data",cfg,ruNumber);
end

Create a non-OFDMA EHT MU configuration object with a channel bandwidth of 40 MHz.

cfg = wlanEHTMUConfig("CBW40");

Generate a time-domain waveform for the configuration.

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

Generate the field indices for the configuration, once using default settings and once specifying an oversampling factor of 2.

ind1 = wlanFieldIndices(cfg);
ind2 = wlanFieldIndices(cfg,OversamplingFactor=2);

Extract and demodulate the part of the waveform that corresponds to the EHT-SIG field, once using default settings and once specifying an oversampling factor of 2.

rxEHTSig1 = tx(ind1.EHTSIG(1):ind1.EHTSIG(2),:);
sym1 = wlanEHTDemodulate(rxEHTSig1,"EHT-SIG",cfg);
rxEHTSig2 = tx(ind2.EHTSIG(1):ind2.EHTSIG(2),:);
sym2 = wlanEHTDemodulate(rxEHTSig2,"EHT-SIG",cfg,OversamplingFactor=2);

Input Arguments

collapse all

Received time-domain signal, specified as a complex-valued matrix of size Ns-by-Nr.

  • Ns is the number of time-domain samples. If Ns is not an integer multiple of the OFDM symbol length, Ls, for the specified field, then the function ignores the remaining mod(Ns,Ls) symbols.

  • Nr is the number of receive antennas.

Data Types: single | double
Complex Number Support: Yes

Field to be demodulated, specified as one of these values:

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

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

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

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

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

  • "EHT-LTF" — Demodulate the EHT long training field (EHT-LTF).

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

Data Types: char | string

Physical layer (PHY) format configuration, specified as an object of type wlanEHTMUConfig, wlanEHTTBConfig, or wlanEHTRecoveryConfig.

Number of the RU or MRU of interest, specified as a positive integer. This input specifies the location of the RU or MRU in the channel. For example, consider a 20 MHz transmission with one 106+26-tone RU, one 52+26-tone MRU, and one 26-tone RU, in order of absolute frequency. For this allocation:

  • RU 1 corresponds to the 106+26-tone MRU at the lowest absolute frequency (size 106+26, index 1).

  • RU 2 corresponds to the 52+26-tone MRU at the next lowest absolute frequency (size 52+26, index 2).

  • RU 3 corresponds to the 26-tone RU at the highest absolute frequency (size 26, index 3).

Note

  • For an OFDMA-type EHT MU PPDU, this input is required when the field input is "EHT-LTF" or "EHT-Data".

  • For a non-OFDMA-type EHT MU PPDU, this input is not required, regardless of the value of the field input.

  • For an EHT TB PPDU, this input is not required.

  • This input is not required when field is equal to "L-LTF", "L-SIG", "RL-SIG", U-SIG", or "EHT-SIG".

  • This input is not required when you specify cfg as a wlanEHTRecoveryConfig object.

Data Types: single | double

Name-Value Arguments

collapse all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: OversamplingFactor=2

Oversampling factor, specified as a scalar greater than or equal to 1. The oversampled cyclic prefix length must be an integer number of samples. For more information, see FFT-Based Oversampling.

OFDM symbol sampling offset, specified as a scalar in the interval [0, 1]. The scalar represents the sampling offset as a fraction of the cyclic prefix length.

The value that you specify indicates the start location for OFDM demodulation relative to the beginning of the cyclic prefix.

Example: 0.45

Data Types: double | single

Output Arguments

collapse all

Demodulated frequency-domain signal, returned as a complex-valued array of size Nsc-by-Nsym-by-Nr.

  • Nsc is the number of active occupied subcarriers in the demodulated field.

  • Nsym is the number of OFDM symbols.

  • Nr is the number of receive antennas.

Data Types: double
Complex Number Support: Yes

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 R2023a

expand all