В этом примере показано, как измерить вероятность misdetecting информации о статусе обратной связи в восходящей высокоэффективной (HE) передаче пустого пакета данных (NDP) обратной связи основанного на триггере (TB) от нескольких восходящих станций (STAs).
802.11ax [1] обратная связь Тбайта HE NDP является вариантом модуля данных о протоколе физического уровня Тбайта HE (PPDU). Обратной связью Тбайта HE передача NDP управляет полностью точка доступа (AP). Все параметры, требуемые для передачи, обеспечиваются в триггерной системе координат Обратной связи NDP сообщает об опросе (NFRP) типа, отправленной в весь STAs, участвующий в передаче обратной связи Тбайта HE. После передачи триггерной системы координат NFRP от AP несколько STAs могут одновременно передать обратную связь Тбайта HE NDP, который несет ресурс, запрашивают информацию (состояние обратной связи) как показано в этой схеме. Для получения дополнительной информации о процедуре отчета обратной связи NDP смотрите раздел NDP Feedback Report Procedure wlanHETBConfig
страница с описанием.
Этот пример измеряет вероятность misdetecting информации о статусе обратной связи для обратной связи Тбайта HE NDP путем сравнения переданных и полученных состояний обратной связи. misdetection зарегистрирован, когда восстановленное состояние обратной связи неправильное или неопределенным. Пример выполняет это измерение для передачи между четырьмя STAs и AP при помощи сквозной симуляции. STA выводит параметры передачи из поля User Info требования триггерная система координат NFRP. В каждой точке отношения сигнал-шум (SNR) STA передает несколько пакетов без нарушений кроме многопутевого исчезновения и шума. STA демодулирует пакет и восстанавливает состояние обратной связи. AP определяет вероятность misdetecting состояния обратной связи путем сравнения восстановленного и переданного состояния обратной связи.
Каждый STA передает форму волны путем выполнения этих шагов обработки.
Определите, как ли STA, планируют, передаст обратную связь Тбайта HE NDP.
Определите тональный индекс набора RU и стартовый потоковый номер времени пробела для всей передачи STAs.
Сгенерируйте обратную связь Тбайта HE NDP для STAs.
Передайте форму волны для каждого STA через внутренний канал при помощи wlanTGaxChannel
S
объект ystem (TM). Различная реализация канала модели для каждого пользователя и каждого пакета случайным образом различным свойство UserIndex wlanTGaxChannel
. Этот процесс приводит к тем же пространственным свойствам корреляции для всего STAs.
Объедините формы волны от всего STAs.
Добавьте аддитивный белый Гауссов шум (AWGN) в полученную форму волны. AWGN создает желаемый средний ОСШ на поднесущую после демодуляции ортогонального мультиплексирования деления частоты (OFDM) для каждого STA.
Приемник (AP) выполняет эти шаги обработки на полученной форме волны.
Используйте совершенную оценку задержки канала, чтобы синхронизироваться.
Извлеките HE-LTF из синхронизируемой формы волны и демодулируйте HE-LTF.
Восстановите информацию о статусе обратной связи с демодулируемых символов HE-LTF [2].
Этот рисунок показывает обработку для каждой ссылки между STA и AP.
Этот раздел симулирует сквозной восходящий сценарий для нескольких STAs и точек ОСШ. Задайте количество STAs и области значений ОСШ. Этот раздел оценивает вероятность misdetecting состояния обратной связи для всего STAs. Состояние обратной связи представляет ресурс, запрашивают информацию у STA, и задан в Таблице 26-3 [1].
% Set transmission parameters numSTAs = 4; % Number of uplink STAs УРАВНОВЕШЕННЫЙ = [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.
Вычислите стартовый потоковый номер времени пробела для всего STAs от STAID, startingAID,
and chanBW.
Сгенерируйте объект настройки для всего STAs.
% 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
Этот пример использует не угол обзора (NLOS) TGax внутренняя модель канала с Моделью-D профиля задержки. Модель-D рассматривается NLOS, когда расстояние между передатчиком и приемником больше или равно десяти метрам. Для получения дополнительной информации смотрите wlanTGaxChannel
. Этот пример принимает, что все STAs на том же расстоянии от 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 = ложь; tgaxBase.PathGainsOutputPort = верный;
Создайте отдельный канал для каждого 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
Этот раздел тестирует много пакетов в каждой точке ОСШ и вычисляет, вероятность misdetecting восстановила состояние обратной связи.
Чтобы параллелизировать обработку точек ОСШ, можно использовать цикл parfor. Чтобы включить использование параллельных вычислений для увеличенной скорости комментируют 'для' оператора и не комментируют '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: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования - Поправка 1: Улучшения для Высокой эффективности WLAN.
Монтре, L. и др. NDP Короткий Проект Обратной связи. IEEE 802.11-17/0044r4, май 2017.