wlanS1GDemodulate

Demodulate fields of S1G waveform

Description

example

sym = wlanS1GDemodulate(rx,field,cfg) returns demodulated frequency-domain signal sym by performing orthogonal frequency-division multiplexing (OFDM) demodulation on received time-domain signal rx. The function performs demodulation for sub-1-GHz (S1G) configuration object cfg and uses parameters appropriate for the signal field specified in field.

example

sym = wlanS1GDemodulate(___,'OFDMSymbolOffset',symOffset) returns the frequency-domain signal for OFDM symbol sampling offset symOffset, specified 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. The size of this input must be 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,then the function ignores the remaining mod(NS,LS) symbols.

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.

Example: 'OFDMSymbolOffset',0.45

Data Types: double

Output Arguments

collapse all

Demodulated frequency-domain signal, returned as a complex-valued array of size sym is NSC-by-Nsym-by-NR, where:

  • 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.

Extended Capabilities

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

Introduced in R2019a