Main Content

wlanVHTTrackPilotError

Track errors using pilot subcarriers of VHT waveform

Since R2025a

Description

[trackedSym,cpe,ae] = wlanVHTTrackPilotError(sym,chEst,cfg,field) tracks errors using the pilot subcarriers of a very high-throughput (VHT) waveform. The function tracks errors using OFDM symbols sym of the field specified in field and channel estimate chEst. The function returns the pilot-error-tracked symbols trackedSym, common phase error cpe, and amplitude error ae.

example

[trackedSym,cpe,ae] = wlanVHTTrackPilotError(___,Name=Value) specifies additional options using one or more name-value arguments in combination with the previous syntax.

example

Examples

collapse all

Create a VHT configuration object with default parameters. Generate time-domain waveforms for the legacy long training field (L-LTF) and legacy signal (L-SIG) field.

cfg = wlanVHTConfig;
txLLTF = wlanLLTF(cfg);
txLSIG = wlanLSIG(cfg);

Demodulate the L-LTF and use the demodulated symbols to estimate the channel.

demodLLTF = wlanVHTDemodulate(txLLTF,"L-LTF",cfg);
chEst = wlanLLTFChannelEstimate(demodLLTF,cfg);

Demodulate the L-SIG field. Introduce phase and amplitude errors of 25 degrees and 3 dB, respectively.

demodLSIG = wlanVHTDemodulate(txLSIG,"L-SIG",cfg);
phaseError = 25;
ampError = 3;
sym = demodLSIG*exp(1i*deg2rad(phaseError))*db2mag(ampError);

Pilot-error-track the symbols, returning the phase and amplitude errors.

[trackedSym,cpe,ae] = wlanVHTTrackPilotError(sym,chEst,cfg,"L-SIG",TrackAmplitude=true);

Compare the errors with the values that the function returned.

phaseErrorDiff = rad2deg(cpe) - phaseError
phaseErrorDiff = 
3.5527e-15
ampErrorDiff = ae - ampError
ampErrorDiff = 
4.4409e-16

Input Arguments

collapse all

Received OFDM symbols, specified as a complex-valued 3-D array. The array has size NSC-by-NSYM-by-NR.

  • NSC is the number of active subcarriers, which comprises data and pilot subcarriers. The number depends on the channel bandwidth.

  • NSYM is the number of OFDM symbols.

  • NR is the number of receive antennas.

Data Types: double | single
Complex Number Support: Yes

Channel estimate, specified as a complex-valued 3-D array. The channel estimate can be from the data and pilot subcarriers, or from the pilot subcarriers only. The size of the array depends on the value you specify for field and is equal to NSC-by-NSTS-by-NR where:

  • NSC is either the total number of data and pilot subcarriers, or the number of pilot subcarriers.

  • NSTS is equal to:

    • 1 when field is "L-SIG" or "VHT-SIG-A".

    • The total number of space-time streams when field is "VHT-LTF", "VHT-SIG-B", or "VHT-Data".

  • NR is the number of receive antennas.

Data Types: double | single
Complex Number Support: Yes

Format configuration, specified as a wlanVHTConfig object.

Field of received OFDM symbols, specified as one of these values:

  • "L-SIG" — Legacy signal (L-SIG) field

  • "VHT-SIG-A" — VHT signal A (VHT-SIG-A) field

  • "VHT-LTF" — VHT long training field (VHT-LTF)

  • "VHT-SIG-B" — VHT signal B (VHT-SIG-B) field

  • "VHT-Data"VHT-Data field

Data Types: char | string

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: TrackAmplitude=true enables pilot amplitude tracking.

Enable pilot phase tracking, specified as a numeric or logical 1 (true) or 0 (false). To estimate and correct a common phase offset across all subcarriers and receive antennas, set this property to 1 (true). Otherwise, set this property to 0 (false).

Enable pilot amplitude tracking, specified as a numeric or logical 1 (true) or 0 (false). To estimate and correct an average amplitude error across all subcarriers for each OFDM symbol and receive antenna, set this property to 1 (true). Otherwise, set this property to 0 (false).

Note

Due to the limitations of the pilot amplitude tracking algorithm, when filtering a waveform through a MIMO fading channel, disable the TrackAmplitude option.

Output Arguments

collapse all

Pilot-error-tracked OFDM symbols, returned as a complex-valued array of size NSC-by-NSYM-by-NR. The size is equal to the size of the sym input.

If you specify either sym or chEst as single, then trackedSym is single. Otherwise, it is double.

Data Types: double | single
Complex Number Support: Yes

Common phase error, in radians, averaged over all receive antennas, returned as a real-valued row vector with length equal to NSYM. Each entry of this vector contains the common phase error for the corresponding OFDM symbol.

If you specify either sym or chEst as single, then cpe is single. Otherwise, it is double.

Data Types: double | single

Average amplitude error, in dB, returned as a real-valued matrix of size NSYM-by-NR. Each element of the matrix contains the amplitude error for all subcarriers with respect to the estimated received pilots for the corresponding OFDM symbol and receive antenna.

If you specify either sym or chEst as single, then ae is single. Otherwise, it is double.

Data Types: double | single

More About

collapse all

References

[1] IEEE Std 802.11-2020 (Revision of IEEE Std 802.11-2016). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems — Local and Metropolitan Area Networks — Specific Requirements.

Extended Capabilities

expand all

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

Version History

Introduced in R2025a