Main Content

wlanReferenceSymbols

Reference symbols of constellation diagram

Description

refSym = wlanReferenceSymbols(mod) returns the reference symbols of the constellation diagram for the specified modulation scheme.

example

refSym = wlanReferenceSymbols(mod,phase) returns reference symbols with counterclockwise rotation for the specified modulation scheme.

example

refSym = wlanReferenceSymbols(cfg) returns the reference symbols used in the data field of a single-user (SU) transmission or a recovered high-efficiency (HE) transmission parameterized by the configuration object cfg.

refSym = wlanReferenceSymbols(cfg,userNumber) returns the reference symbols used in the data field for the user specified by userNumber in a multiuser (MU) transmission specified by MU configuration object cfg.

example

Examples

collapse all

Fine reference symbols for a quadrature phase-shift keying (QPSK) modulation scheme and plot the resulting constellation.

Generate noisy QPSK symbols.

sym =  awgn(qammod(randi([0 3],100,1),4)/sqrt(2),20);

Find the reference symbols.

refSym =  wlanReferenceSymbols('QPSK');

Plot the constellation diagram.

figure;
plot(sym,'b.');
hold on;
plot(refSym,'ro');
title('Noisy QPSK Constellation with Reference Symbols');
legend('Noisy symbols','Reference symbols','Location','South');

Figure contains an axes object. The axes object with title Noisy QPSK Constellation with Reference Symbols contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Noisy symbols, Reference symbols.

Find reference symbols for a chosen modulation scheme and counterclockwise rotation.

Reference Symbols for π2-BPSK

Specify a π2-BPSK modulation scheme and a counterclockwise rotation of π6.

mod = 'pi/2-BPSK';
phase =  pi/6;

Find the reference symbols for the chosen modulation and rotation.

refSym = wlanReferenceSymbols(mod,phase);

Display the reference symbols on a constellation diagram.

figure;
plot(refSym,'b*');
hold on;
title('Reference Symbols for $\frac{\pi}{2}$-BPSK','Interpreter','latex');
legend('Reference symbols');

Figure contains an axes object. The axes object with title Reference Symbols for StartFraction pi over 2 EndFraction - BPSK contains a line object which displays its values using only markers. This object represents Reference symbols.

Reference Symbols for π2-16-QAM

Specify a π2-16-QAM modulation scheme and a counterclockwise rotation of π3.

mod = 'pi/2-16QAM';
phase =  pi/3;

Find the reference symbols for the chosen modulation and rotation.

refSym = wlanReferenceSymbols(mod,phase);

Display the reference symbols on a constellation diagram.

figure;
plot(refSym,'b*');
hold on;
title('Reference Symbols for $\frac{\pi}{2}$-16-QAM','Interpreter','latex');
legend('Reference symbols');

Figure contains an axes object. The axes object with title Reference Symbols for StartFraction pi over 2 EndFraction - 16 - QAM contains a line object which displays its values using only markers. This object represents Reference symbols.

Plot the reference constellation for a user in a very-high-throughput (VHT) multiuser configuration.

Create a VHT-format configuration object, setting channel bandwidth, number of users, group identifier, number of transmit antennas, number of space-time streams, and modulation and coding schemes.

cfg = wlanVHTConfig('ChannelBandwidth','CBW20','NumUsers',2,'GroupID',2, ...
    'NumTransmitAntennas',2,'NumSpaceTimeStreams',[1 1],'MCS',[8 4]);

Find the reference symbols for both users and plot the constellations.

refSym1 = wlanReferenceSymbols(cfg,1);
refSym2 = wlanReferenceSymbols(cfg,2);
figure;
plot(refSym1,'b*'); hold on
plot(refSym2,'ro');
title('Reference Constellations for Both Users')
legend('User 1','User 2','Location','bestoutside');

Figure contains an axes object. The axes object with title Reference Constellations for Both Users contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent User 1, User 2.

Input Arguments

collapse all

Modulation scheme, specified as one of these values.

  • 'BPSK' — Binary phase-shift keying (BPSK)

  • 'pi/2-BPSK' — π/2-BPSK

  • 'QPSK' — Quadrature phase-shift keying (QPSK)

  • 'pi/2-QPSK' — π/2-QPSK

  • '16QAM' — 16-point quadrature amplitude modulation (16-QAM)

  • 'pi/2-16QAM' — π/2-16-QAM

  • '64QAM' — 64-QAM

  • 'pi/2-64QAM' — π/2-64-QAM

  • '256QAM' — 256-QAM

  • '1024QAM' — 1024-QAM

  • '4096QAM' — 4096-QAM

Data Types: char | string

Counterclockwise rotation in radians, specified as a real-valued scalar or real-valued row vector. To return reference symbols for different phases, specify phase as a row vector. Each vector element represents a chosen phase.

Data Types: double

Number assigned to user of interest, specified as a positive integer in the interval [1, Nu], where Nu is the number of users in the transmission.

This argument is required when you specify the cfg input as an object of type wlanHEMUConfig, wlanS1GConfig, or wlanVHTConfig.

When you specify cfg as a wlanEHTMUConfig object,

  • this argument is required if the PPDU type is OFDMA, or non-OFDMA with multiple users.

  • this argument is not required for a non-OFDMA PPDU with a single user.

If cfg is a wlanHEMUConfig or wlanEHTMUConfig object, Nu is equal to the number of elements in the value of its User property. If cfg is a wlanS1GConfig or wlanVHTConfig object, Nu is equal to the value of its NumUsers property.

Dependencies

This argument applies only when the cfg input is an object of type wlanEHTMUConfig, wlanHEMUConfig, wlanS1GConfig, or wlanVHTConfig.

Data Types: double

Output Arguments

collapse all

Reference symbols of constellation diagram, returned as a complex-valued column vector.

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

expand all

See Also

Functions

Objects