Main Content

wlanS1GDemodulate

Demodulate fields of S1G waveform

Description

sym = wlanS1GDemodulate(rx,field,cfg) recovers a demodulated frequency-domain signal by orthogonal frequency-division multiplexing (OFDM) demodulating received time-domain signal rx. The function demodulates rx by using S1G transmission parameters cfg and signal field value field.

example

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

example

Examples

collapse all

Generate a WLAN waveform for an S1G transmission.

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

Obtain the field indices and extract the S1G-SIG field.

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

Perform OFDM demodulation on the S1G-SIG field.

sym = wlanS1GDemodulate(rx,'S1G-SIG',cfg);

Get the OFDM information, then extract the data and pilot subcarriers.

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

Generate a WLAN waveform for an S1G transmission with the specified modulation and coding scheme (MCS).

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

Obtain the field indices and extract the S1G-Data field.

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

Perform OFDM demodulation on the S1G-Data field, specifying an OFDM symbol offset of 0.

field = 'S1G-Data';
sym = wlanS1GDemodulate(rx,field,cfg,OFDMSymbolOffset=0);

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: double
Complex Number Support: Yes

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

  • 'S1G-LTF1' — Demodulate the first S1G long training field (S1G-LTF1).

  • 'S1G-SIG' — Demodulate the S1G signaling (S1G-SIG) field.

  • 'S1G-LTF2N' — Demodulate the subsequent S1G long training fields (S1G-LTF2N).

  • 'S1G-SIG-A' — Demodulate the S1G signal A (S1G-SIG-A) field.

  • 'S1G-SIG-B' — Demodulate the S1G signal B (S1G-SIG-B) field.

  • 'S1G-Data' — Demodulate the S1G-Data field.

Data Types: char | string

Physical layer (PHY) format configuration, specified as a wlanS1GConfig object.

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: symOffset=0.5

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

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

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.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Extended Capabilities

expand all

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

Version History

Introduced in R2019a

expand all