Main Content

wlanHETBNDPFeedbackStatus

Recover feedback status from HE TB feedback NDP

Since R2021a

Description

example

status = wlanHETBNDPFeedbackStatus(rxSym,cfg) recovers the feedback status of an HE trigger-based (HE TB) feedback null data packet (NDP) transmission parameterized by cfg. The function recovers the feedback status by using rxSym, the demodulated high-efficiency long training field (HE-LTF) of the transmission. The function estimates the feedback status by using the algorithm defined in [1].

The recovered feedback status indicates the value of the bit used for tone modulation in each tone set specified by the RUToneSetIndex property of the cfg input.

For more information about the HE TB feedback NDP, see section 27.3.18 of [2].

Examples

collapse all

Configure an uplink HE TB feedback NDP transmission with four stations (STAs), a channel bandwidth of 20 MHz, and a signal-to-noise ratio (SNR) of 20 dB.

numSTA = 4;
cbw = 'CBW20';
snr = 20;
cfgSTA = cell(1,numSTA);

Specify the resource unit (RU) tone set index, starting space-time stream, and feedback status for all STAs.

ruToneSetIndex = repmat([1 2],1,round(numSTA/2));
startingSTS = repmat([1 2],1,round(numSTA/2));
feedbackStatus = repmat([1 0],1,round(numSTA/2));

Create a valid HE TB feedback NDP configuration.

cfg = wlanHETBConfig;
cfg = getNDPFeedbackConfiguration(cfg);

Configure the channel for transmission, assuming no variation across STAs.

tgax = wlanTGaxChannel('ChannelBandwidth',cbw, ...
    'TransmissionDirection','Uplink', ...
    'SampleRate',wlanSampleRate(cfg));
chanInfo = info(tgax);
awgn = comm.AWGNChannel('NoiseMethod','Signal to noise ratio (SNR)', ...
    'SignalPower',1/tgax.NumReceiveAntennas);

Configure STAs and generate an HE TB feedback NDP waveform.

rx = 0;
for idx = 1:numSTA
    
    % Configure STAs
    
    cfg.RUToneSetIndex = ruToneSetIndex(idx);
    cfg.StartingSpaceTimeStream = startingSTS(idx);
    cfg.FeedbackStatus = feedbackStatus(idx);
    cfgSTA{idx} = cfg;
    
    % Generate transmit waveform
    
    waveform = wlanWaveformGenerator([],cfg);
    
    % Pass waveform through TGax channel
    
    rx = rx + tgax([waveform; zeros(15,size(waveform,2))]);
end

Pass the waveform through the AWGN channel, accounting for the noise energy in nulls to ensure the SNR is defined per active and complementary subcarrier.

field = 'HE-LTF';
ofdmInfo = wlanHEOFDMInfo(field,cbw,cfg.GuardInterval);
awgn.SNR = snr - 10*log10(ofdmInfo.FFTLength/12);
rx = awgn(rx);

Get the field indices and extract the HE-LTF.

ind = wlanFieldIndices(cfgSTA{1});
offset = chanInfo.ChannelFilterDelay;
heltf = rx(offset+(ind.HELTF(1):ind.HELTF(2)),:);

Demodulate the HE-LTF.

rxSym = wlanHEDemodulate(heltf,field,cbw,cfg.GuardInterval,cfg.HELTFType);

Recover the feedback status for the STAs.

status = zeros(1,numSTA);
for n = 1:numSTA
    status(n) = wlanHETBNDPFeedbackStatus(rxSym,cfgSTA{n});
end

Compare the transmitted and received feedback status for the STAs.

disp(isequal(feedbackStatus(1:numSTA),status))
   1

Input Arguments

collapse all

Demodulated HE-LTF of the received HE TB feedback NDP, specified as a complex-valued array of size Nst-by-2-by-Nr.

  • Nst is the number of subcarriers.

    • For transmissions that include active and complementary subcarriers, Nst must be 12.

    • For all other transmissions, Nst must be 242, 484, 996, or 1992.

  • Nr is the number of receive antennas.

Data Types: double
Complex Number Support: Yes

HE TB feedback NDP transmission configuration, specified as a wlanHETBConfig object.

Output Arguments

collapse all

Feedback status, returned as one of these values.

  • 1 — Transmission detected on the first tone set

  • 0 — Transmission detected on the second tone set

  • -1 — Transmission not detected on either tone set

This output indicates the value of the bit used for tone modulation in each tone set specified by the RUToneSetIndex property of the cfg input. The feedback status and RU tone set index determine the HE-LTF subcarrier mapping in accordance with Table 27-32 of [2].

Data Types: double

References

[1] Montreuil, Leo et al. NDP Short Feedback Design. IEEE® 802.11™-17/0044r4 (May 2017).

[2] IEEE Std 802.11ax™-2021 (Amendment to IEEE Std 802.11-2020). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 1: Enhancements for High Efficiency WLAN.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems. Local and Metropolitan Area Networks — Specific Requirements.

Extended Capabilities

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

Version History

Introduced in R2021a