Этот пример показывает, как измерить вероятность неправильного обнаружения информации о состоянии обратной связи при передаче нулевого пакета данных обратной связи (NDP) от множества станций восходящей линии связи (STA) на основе триггера (TB) восходящей линии связи.
NDP обратной связи 802.11ax [1] HE TB является вариантом блока данных протокола физического уровня HE TB (PPDU). Передача NDP обратной связи HE TB полностью управляется точкой доступа (AP). Все параметры, необходимые для передачи, предоставляются в триггерном кадре типа опроса отчета обратной связи NDP (NFRP), посылаемого всем STA, участвующим в передаче обратной связи HE TB. После передачи кадра триггера NFRP от AP множество STA могут одновременно передавать NDP обратной связи HE TB, который несет информацию запроса ресурсов (состояние обратной связи), как показано на этой диаграмме. Дополнительные сведения о процедуре отчета об обратной связи NDP см. в разделе Процедура отчета об обратной связи NDP документа wlanHETBConfig справочная страница.

В этом примере измеряется вероятность неправильного обнаружения информации о состоянии обратной связи для NDP обратной связи HE TB путем сравнения переданных и принятых состояний обратной связи. Ошибочное обнаружение регистрируется, когда восстановленное состояние обратной связи является неправильным или неопределенным. В примере выполняется это измерение для передачи между четырьмя STA и AP с использованием сквозного моделирования. STA выводит параметры передачи из поля User Info запрашивающего триггерного кадра NFRP. В каждой точке отношения сигнал/шум (SNR) STA передает множество пакетов без нарушений, кроме многолучевого замирания и шума. STA демодулирует пакет и восстанавливает состояние обратной связи. Точка доступа определяет вероятность неправильного определения состояния обратной связи путем сравнения состояния восстановленной и переданной обратной связи.
Каждый STA передает сигнал, выполняя эти этапы обработки.
Определите, планируется ли STA передавать NDP обратной связи HE TB.
Определите индекс набора тональных сигналов RU и номер начального временного потока пространства для всех передающих STA.
Создайте NDP обратной связи HE TB для STA.
Передача сигнала для каждого STA через внутренний канал с помощью wlanTGaxChannel Sобъект системы (TM). Моделирование различных реализаций канала для каждого пользователя и каждого пакета путем случайного изменения свойства UserIndex wlanTGaxChannel. Этот процесс приводит к одинаковым свойствам пространственной корреляции для всех STA.
Объединение сигналов всех STA.
Добавление аддитивного белого гауссова шума (AWGN) к принятой форме сигнала. AWGN создает требуемое среднее SNR на поднесущую после демодуляции с ортогональным мультиплексированием с частотным разделением каналов (OFDM) для каждого STA.
Приемник (АР) выполняет эти этапы обработки принятого сигнала.
Используйте идеальную оценку задержки канала для синхронизации.
Извлеките HE-LTF из синхронизированной формы сигнала и демодулируйте HE-LTF.
Восстановление информации о состоянии обратной связи из демодулированных символов HE-LTF [2].
На этом рисунке показана обработка для каждого канала между STA и AP.

В этом разделе моделируется сценарий сквозного восходящего канала для нескольких STA и точек SNR. Укажите количество STA и диапазон SNR. В этом разделе оценивается вероятность неправильного определения состояния обратной связи для всех STA. Состояние обратной связи представляет информацию запроса ресурсов от STA и определено в таблице 26-3 из [1].
% Set transmission parameters numSTAs =4; % Number of uplink STAs STAID =
[1 19 2 4]; % STA association ID, assigned to each associated STA with an AP multiplexingFlag =
[0 1 0 0]; % Signaled in the trigger frame of type NFRP for each STA feedbackStatus =
[1 0 1 0]; % Resource request information signaled by each STA startingAID =
0; % Signaled in the trigger frame of type NFRP % Set simulation parameters numPackets =
50; % Number of packets to simulate snrRange =
-2:2:6; % SNR points (dB) chanBW =
'CBW20'; % Channel bandwidth numTx =
1; % Assume same number of transmit antennas for all STAs numRx =
4; % Number of receive (AP) antennas
Сконфигурируйте генератор сигналов для каждого STA. STA выполняет эти шаги.
Проверьте, запланирована ли передача STA.
Вычислите RUToneSetIndex для каждого STA из STAID, startingAID, и chanBW.
Вычислить номер потока времени начального пространства для всех STA из STAID, startingAID, и chanBW.
Создание объекта конфигурации для всех STA.
% Return the index of the transmitting STAs. Calculate RUToneSetIndex and starting space time stream for all STAs. [txSTAIndex,ruToneSetIndexPerSTA,startingSTSNumPerSTA] = heTBNDPMappingParams(chanBW,numSTAs,multiplexingFlag,startingAID,STAID); numTxSTAs = numel(txSTAIndex); % STAs scheduled to transmit cfgSTA = cell(1,numTxSTAs); % Generate the configuration object and set the feedback status property for all STAs cfgBase = wlanHETBConfig('ChannelBandwidth',chanBW,'NumTransmitAntennas',numTx,'SpatialMapping','Fourier'); cfgNDP = getNDPFeedbackConfiguration(cfgBase); if numSTAs~=numel(feedbackStatus) error('The number of elements in FeedbackStatus must be equal to the number of STAs'); end for u=1:numTxSTAs cfgNDP.RUToneSetIndex = ruToneSetIndexPerSTA(u); cfgNDP.StartingSpaceTimeStream = startingSTSNumPerSTA(u); cfgNDP.FeedbackStatus = feedbackStatus(txSTAIndex(u)); cfgSTA{u} = cfgNDP; end
В этом примере используется модель канала TGax non-line-of-sight (NLOS) с профилем задержки Model-D. Модель-D считается NLOS, когда расстояние между передатчиком и приемником больше или равно десяти метрам. Дополнительные сведения см. в разделе wlanTGaxChannel. В этом примере предполагается, что все STA находятся на одинаковом расстоянии от точки доступа.
delayProfile ='Model-D'; % TGax channel multipath delay profile tgaxBase = wlanTGaxChannel; tgaxBase.DelayProfile = delayProfile; tgaxBase.SampleRate = wlanSampleRate(cfgSTA{1}); tgaxBase.TransmissionDirection = 'Uplink'; tgaxBase.TransmitReceiveDistance = 10; tgaxBase.ChannelBandwidth = chanBW; tgaxBase.NumReceiveAntennas = numRx; tgaxBase.NormalizeChannelOutputs = false; tgaxBase.PathGainsOutputPort = true;
Создайте отдельный канал для каждого STA. Каждый канал является клоном tgaxBase, но с другим UserIndex свойство и хранится в массиве ячеек tgax. UserIndex свойство каждого отдельного канала создает уникальный канал для каждого пользователя. В этом примере используется реализация случайного канала для каждого пакета путем случайного изменения UserIndex свойство каждого передаваемого пакета.
% A cell array stores the channel objects, one per STA. tgax = cell(1,numTxSTAs); for u=1:numTxSTAs tgax{u} = clone(tgaxBase); tgax{u}.NumTransmitAntennas = numTx; tgax{u}.UserIndex = u; end chInfo = info(tgaxBase); chFilterCoefficients = chInfo.ChannelFilterCoefficients; % Channel filter coefficients
В этом разделе проверяется количество пакетов в каждой точке SNR и вычисляется вероятность неправильного определения состояния восстановленной обратной связи.
Для параллельной обработки точек SNR можно использовать цикл parfor. Чтобы разрешить использование параллельных вычислений для увеличения скорости комментировать оператор «for» и раскомментировать оператор «parfor» ниже.
% Processing SNR Points ofdmInfo = wlanHEOFDMInfo('HE-LTF',cfgNDP); numSNR = numel(snrRange); % Number of SNR points misdetectionProbability = zeros(numTxSTAs,numSNR); ind = wlanFieldIndices(cfgNDP); % Same for all STAs %parfor isnr=1:numSNR % Use 'parfor' to speed up the simulation for isnr=1:numSNR % Set random substream index per iteration to ensure that each % iteration uses a repeatable set of random numbers stream = RandStream('combRecursive','Seed',0); stream.Substream = isnr; RandStream.setGlobalStream(stream); rxFeedbackStatus = zeros(numPackets,numTxSTAs); chDelay = zeros(1,numTxSTAs); for pktIdx=1:numPackets rxWaveform = 0; % Generate random channel realization for each packet by varying % the UserIndex property of the channel. This assumes all STAs % have the same number of transmit antennas. chPermutations = randperm(numTxSTAs); for u=1:numTxSTAs % Generate HE TB feedback NDP waveform for each STA txSTA = wlanWaveformGenerator([],cfgSTA{u}); % Pass waveform through a random TGax Channel channelIdx = chPermutations(u); reset(tgax{channelIdx}); % New channel realization [rxSTA,h] = tgax{channelIdx}([txSTA; zeros(50,size(txSTA,2))]); % Perform perfect channel delay estimate to find the start of % the packet chDelay(u) = channelDelay(h,chFilterCoefficients); % Combine uplink waveform from all STAs into one waveform rxWaveform = rxWaveform+rxSTA; end % Synchronize later in time by using the maximum channel delay % between all channels as the start of the packet pktOffset = max(chDelay(u)); % Packet start index % Pass the waveform through AWGN channel. Account for noise % energy in unused subcarriers. snrVal = snrRange(isnr)-10*log10(ofdmInfo.FFTLength/ofdmInfo.NumTones); rxWaveform = awgn(rxWaveform,snrVal); % Uplink processing (at the AP) rxHELTF = rxWaveform(pktOffset+(ind.HELTF(1):ind.HELTF(2)),:); heltfDemod = wlanHEDemodulate(rxHELTF,'HE-LTF',chanBW,cfgNDP.GuardInterval,cfgNDP.HELTFType); % Recover feedback status for all STAs for u=1:numTxSTAs rxFeedbackStatus(pktIdx,u) = wlanHETBNDPFeedbackStatus(heltfDemod,cfgSTA{u}); end end % Probability of misdetection per STA misdetectionProbability(:,isnr) = 1-sum(rxFeedbackStatus==feedbackStatus(txSTAIndex))/numPackets; disp(['SNR ' num2str(snrRange(isnr)) ' completed']); end
SNR -2 completed SNR 0 completed SNR 2 completed SNR 4 completed SNR 6 completed
markers = 'ox*sd^v><ph+'; numMarkers = numel(markers); for u=1:numTxSTAs semilogy(snrRange,misdetectionProbability(u,:),['-' markers(mod(u-1,numMarkers)+1)]); hold on; end xlabel('SNR(dB)'); ylabel('Probability of misdetection'); dataStr = arrayfun(@(x)sprintf('STAID %d',x),STAID(txSTAIndex),'UniformOutput',false); title(sprintf('%s, Channel %s, %d-by-%d',chanBW,delayProfile,numTx,numRx)); legend(dataStr); grid on;

Количество пакетов, протестированных в каждой точке SNR, зависит от numPackets. Для получения значимых результатов увеличьте значение numPackets. Этот рисунок был создан путем выполнения более длительного моделирования с помощью numPackets: 1e4 иsnrRange:-2:2:6.

IEEE P802.11ax™/D7.0 Проект стандарта для информационных технологий - Телекоммуникации и обмен информацией между системами - Локальные и городские сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY) - Поправка 1: Усовершенствования для высокой эффективности WLAN.
Montreuil, L. et al. Проектирование коротких отзывов о NDP. IEEE 802.11-17/0044r4, май 2017 г.