Этот пример показов, как измерить вероятность неправильного определения информации о состоянии обратной связи при передаче null data packet (NDP) на основе триггера восходящей линии связи (HE) эффективности (TB) от нескольких станций восходящей линии связи (STA).
NDP обратной связи HE TB 802.11ax [1] является вариантом модуля данных протокола 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. В каждой точке отношения сигнал/шум (ОСШ) STA передает несколько пакетов без нарушений, кроме многолучевого замирания и шума. STA демодулирует пакет и восстанавливает состояние обратной связи. AP определяет вероятность неправильного определения статуса обратной связи путем сравнения восстановленного и переданного статуса обратной связи.
Каждый STA передает форму волны путем выполнения этих этапов обработки.
Определите, планируется ли STA передать NDP обратной связи HE TB.
Определите индекс набора тональных сигналов RU и номер начального временного потока для всех передающих STA.
Сгенерируйте NDP обратной связи HE TB для STA.
Передайте форму волны для каждого STA через внутренний канал при помощи wlanTGaxChannel
S
объект ystem (TM). Моделируйте различные реализации канала для каждого пользователя и каждого пакета путем случайного изменения свойства UserIndex wlanTGaxChannel
. Этот процесс приводит к тем же пространственным свойствам корреляции для всех STA.
Объедините формы сигналов от всех STA.
Добавьте добавку белого Гауссова шума (AWGN) к полученной форме волны. AWGN создает желаемое среднее ОСШ на поднесущую после демодуляции ортогонального частотного разнесения (OFDM) для каждого STA.
Приемник (AP) выполняет эти шаги обработки на принятой форме волны.
Используйте идеальную оценку задержки канала для синхронизации.
Извлеките HE-LTF из синхронизированной формы волны и демодулируйте HE-LTF.
Восстановите информацию о состоянии обратной связи из демодулированных символов HE-LTF [2].
Этот рисунок показывает обработку для каждой ссылки между STA и AP.
В этом разделе описывается сквозной сценарий восходящей линии связи для нескольких STA и точек ОСШ. Укажите количество STA и область значений ОСШ. В этом разделе оценивается вероятность неправильного определения статуса обратной связи для всех 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 без линии видимости (NLOS) с профилем задержки Model-D. Модель-D рассматривается как NLOS, когда расстояние между передатчиком и приемником больше или равно десяти метрам. Для получения дополнительной информации смотрите wlanTGaxChannel
. Этот пример принимает, что все STA находятся на одинаковом расстоянии от AP.
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
. The 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
В этом разделе проверяется количество пакетов в каждой точке ОСШ и вычисляется вероятность неправильного определения состояния восстановленной обратной связи.
Для параллелизации обработки точек ОСШ можно использовать цикл 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;
Количество пакетов, протестированных в каждой точке ОСШ, зависит от numPackets
. Для значимых результатов увеличьте значение numPackets
. Этот рисунок была создаваем путем выполнения более длительной симуляции с numPackets
: 1e4 и snrRange
:-2:2:6.
IEEE P802.11ax™/D7.0 Проект стандарта на информационные технологии - Телекоммуникации и обмен информацией между системами - Локальные и столичные сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной LAN (MAC) и физического Слоя (PHY) - Поправка 1: Усовершенствования для высокой Эффективности WLAN.
Montreuil, L. et al. Проект короткой обратной связи NDP. IEEE 802.11-17/0044r4, май 2017.