This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

wlanHEDemodulate

Demodulate fields of an HE waveform

Syntax

sym = wlanHEDemodulate(rx,field,cfg)
sym = wlanHEDemodulate(rx,field,cfg,ruNumber)
sym = wlanHEDemodulate(rx,field,cbw,hegi,ru)
sym = wlanHEDemodulate(rx,field,cbw,hegi,ltfType,ru)
sym = wlanHEDemodulate(rx,field,cbw)
sym = wlanHEDemodulate(___,'OFDMSymbolOffset',symOffset)

Description

example

sym = wlanHEDemodulate(rx,field,cfg) returns the demodulated frequency-domain signal sym by performing orthogonal frequency-division multiplexing (OFDM) demodulation on the received time-domain signal rx for an HE-format configuration object cfg. The function uses parameters appropriate for the specified field, field.

example

sym = wlanHEDemodulate(rx,field,cfg,ruNumber) returns the frequency-domain signal for the resource unit of interest, as determined by its number ruNumber. Use this syntax when you specify cfg as an HE-multi-user (HE-MU) format configuration object to demodulate either the HE-Data field or the HE-LTF.

sym = wlanHEDemodulate(rx,field,cbw,hegi,ru) returns the frequency-domain signal for the specified channel bandwidth cbw, guard interval hegi, and resource unit determined by its size and index specified in ru. If ru is not specified, wlanHEDemodulate returns the demodulated signal assuming a full band configuration. To demodulate the HE-Data field when the PHY format configuration is unknown, use this syntax.

sym = wlanHEDemodulate(rx,field,cbw,hegi,ltfType,ru) returns the frequency-domain signal for the specified HE-LTF type ltfType. If ru is not specified, wlanHEDemodulate returns the demodulated signal assuming a full band configuration. To demodulate the HE-LTF when the PHY format configuration is unknown, use this syntax.

example

sym = wlanHEDemodulate(rx,field,cbw) returns the frequency-domain signal for the input field and channel bandwidth. To return OFDM information for one of the L-LTF, L-SIG, RL-SIG, HE-SIG-A, or HE-SIG-B fields when the PHY format configuration is unknown, use this syntax.

sym = wlanHEDemodulate(___,'OFDMSymbolOffset',symOffset) returns the frequency-domain signal for the specified OFDM symbol sampling offset, symoffset, specified as a fraction of the cyclic prefix length.

Examples

collapse all

Perform OFDM demodulation on the HE-SIG-A field and extract the data and pilot subcarriers.

Generate a WLAN waveform for an HE-SU format configuration.

cfg = wlanHESUConfig;
bits = [1; 0; 0; 1];
waveform = wlanWaveformGenerator(bits,cfg);

Obtain the field indices and extract the HE-SIG-A field.

ind = wlanFieldIndices(cfg);
rx = waveform(ind.HESIGA(1):ind.HESIGA(2),:);

Perform OFDM demodulation on the HE-SIG-A field.

sym = wlanHEDemodulate(rx,'HE-SIG-A',cfg);

Return OFDM information, extracting the data and pilot subcarriers.

info = wlanHEOFDMInfo('HE-SIG-A',cfg);
data = sym(info.DataIndices,:,:);
pilots =  sym(info.PilotIndices,:,:);

Demodulate the HE-LTF for each RU in a HE-MU waveform.

Create a WLAN HE-MU format configuration object, specifying the allocation index, HE-LTF type, and guard interval.

AllocationIndex = 16;
cfg = wlanHEMUConfig(16,'HELTFType',2,'GuardInterval',1.6);

Generate a waveform for the specified information bits and format configuration object.

bits = [1; 0; 0; 1];
waveform = wlanWaveformGenerator(bits,cfg);

Generate field indices and extract the HE-LTF.

ind = wlanFieldIndices(cfg);
rx = waveform(ind.HELTF(1):ind.HELTF(2),:);

Demodulate the HE-LTF for each RU and display the size of the array containing the demodulated symbols in each case.

info = ruInfo(cfg);
allRUs = info.NumRUs;
for ruNumber = 1:allRUs
    sym = wlanHEDemodulate(rx,'HE-LTF',cfg,ruNumber);
    disp(size(sym));
end
    52     1

    52     1

   106     1

Perform OFDM demodulation on a received signal, specifying the L-LTF and a channel bandwidth of 80 MHz.

Retrieve the L-LTF from a VHT waveform with a channel bandwidth of 80 MHz.

cbw = 'CBW80'; % Specify the channel bandwidth
rx = wlanLLTF(wlanVHTConfig('ChannelBandwidth',cbw));

Return the frequency-domain signal by demodulating the L-LTF.

sym = wlanHEDemodulate(rx,'L-LTF',cbw);

Input Arguments

collapse all

Received time-domain signal, specified as a matrix with complex entries. Specify rx as a matrix of size Ns-by-Nr where Ns is the number of time-domain samples and Nr is the number of receive antennas. If Ns is not an integer multiple of the OFDM symbol length Ls for the specified field, the remaining mod(NS,Ls) symbols are ignored.

Data Types: 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.

  • 'HE-SIG-A': Demodulate the HE signal A (HE-SIG-A) field.

  • 'HE-SIG-B': Demodulate the HE signal B (HE-SIG-B) field.

  • 'HE-LTF': Demodulate the HE long training field (HE-LTF).

  • 'HE-Data': Demodulate the HE-Data field.

Data Types: char | string

Physical layer (PHY) format configuration, specified as a wlanHESUConfig object or a wlanHEMUConfig object.

Number of the RU of interest, specified as a positive integer. The RU number specifies the location of the RU within the channel. For example, consider an 80-MHz transmission with two 242-tone RUs and one 484-tone RU, in order of absolute frequency. For this allocation, RU number 1 corresponds to the 242-tone RU in the 20-MHz subchannel at the lowest absolute frequency (size 242, index 1). RU number 2 corresponds to the 242-tone RU in the 20-MHz subchannel at the next lowest absolute frequency (size 242, index 2). RU number 3 corresponds to the 484-tone RU in the 40-MHz subchannel at the highest absolute frequency (size 484, index 2).

Data Types: double

Channel bandwidth, specified as one of these values.

  • 'CBW20': Indicates a channel bandwidth of 20 MHz.

  • 'CBW40': Indicates a channel bandwidth of 40 MHz.

  • 'CBW80': Indicates a channel bandwidth of 80 MHz.

  • 'CBW160': Indicates a channel bandwidth of 160 MHz.

Data Types: char | string

Guard interval duration, in microseconds, specified as 0.8, 1.6, or 3.2.

Data Types: double

HE-LTF type, specified as 1, 2, or 4.

Data Types: double

RU size and index, specified as a 1-by-2 vector with positive real entries. Specify ru in the form [size,index], where size must be 26, 52, 106, 242, 484, 996, or 1992 in accordance with the specified channel bandwidth. For example, in an 80-MHz transmission, there are four possible 242-tone RUs (one for each 20-MHz subchannel). RU number 242-1 (size = 242, index = 1) is the lowest absolute frequency within the 80-MHz channel; RU number 242-4 is the highest absolute frequency.

Data Types: double

OFDM symbol sampling offset, specified as a nonnegative scalar in the interval [0, 1]. To specify a sampling offset as a fraction of the cyclic prefix length, specify this argument.

Example: 'OFDMSymbolOffset',0.45

Data Types: double

Output Arguments

collapse all

Demodulated frequency-domain signal, returned as an array with complex entries. The size of sym is Nsubcarriers-by-Nsym-by-Nr, where Nsubcarriers is the number of active occupied subcarriers in the field and Nsym is the number of OFDM symbols.

Extended Capabilities

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

Introduced in R2019a