Main Content

wlanS1GDemodulate

Demodulate fields of S1G waveform

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(___,Name=Value) specifies additional options using one or more name-value arguments in combination with the previous syntax.

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

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.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

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.

Different values of OFDM symbol sampling offset

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

FFT-Based Oversampling

An oversampled signal is a signal sampled at a frequency that is higher than the Nyquist rate. WLAN signals maximize occupied bandwidth by using small guardbands, which can pose problems for anti-imaging and anti-aliasing filters. Oversampling increases the guardband width relative to the total signal bandwidth, thereby increasing the number of samples in the signal.

This function performs oversampling by using a larger IFFT and zero pad when generating an OFDM waveform. This diagram shows the oversampling process for an OFDM waveform with NFFT subcarriers comprising Ng guardband subcarriers on either side of Nst occupied bandwidth subcarriers.

FFT-based oversampling

Extended Capabilities

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

Version History

Introduced in R2019a

expand all