Main Content

wlanS1GDemodulate

Demodulate fields of S1G waveform

Since R2019a

Description

example

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(___,'OFDMSymbolOffset',symOffset) specifies the OFDM symbol sampling offset as a fraction of the cyclic prefix length.

Examples

collapse all

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

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,:,:);

Perform OFDM demodulation on the S1G-Data field for an OFDM symbol offset, specified as a fraction of the cyclic prefix length.

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.

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.

Different values of OFDM symbol sampling offset

Example: 0.45

Data Types: double

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

Extended Capabilities

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

Version History

Introduced in R2019a