802.11ax состояние обратной связи симуляция Misdetection для восходящей основанной на триггере обратной связи NDP

В этом примере показано, как измерить вероятность 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 передает форму волны путем выполнения этих шагов обработки.

  1. Определите, как ли STA, планируют, передаст обратную связь Тбайта HE NDP.

  2. Определите тональный индекс набора RU и стартовый потоковый номер времени пробела для всей передачи STAs.

  3. Сгенерируйте обратную связь Тбайта HE NDP для STAs.

  4. Передайте форму волны для каждого STA через внутренний канал при помощи wlanTGaxChannel Sобъект ystem (TM). Различная реализация канала модели для каждого пользователя и каждого пакета случайным образом различным свойство UserIndex wlanTGaxChannel. Этот процесс приводит к тем же пространственным свойствам корреляции для всего STAs.

  5. Объедините формы волны от всего STAs.

  6. Добавьте аддитивный белый Гауссов шум (AWGN) в принятую форму волны. AWGN создает желаемый средний ОСШ на поднесущую после демодуляции ортогонального мультиплексирования деления частоты (OFDM) для каждого STA.

Приемник (AP) выполняет эти шаги обработки на принятой форме волны.

  1. Используйте совершенную оценку задержки канала, чтобы синхронизироваться.

  2. Извлеките HE-LTF из синхронизируемой формы волны и демодулируйте HE-LTF.

  3. Восстановите информацию о статусе обратной связи с демодулируемых символов 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

Обратная связь Тбайта HE настройка формы волны NDP

Сконфигурируйте генератор формы волны для каждого 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

Постройте вероятность Misdetection против ОСШ

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;

Figure contains an axes object. The axes object with title CBW20, Channel Model-D, 1-by-4 contains 4 objects of type line. These objects represent STAID 1, STAID 19, STAID 2, STAID 4.

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

Выбранная библиография

  1. Черновой Стандарт IEEE P802.11ax™/D7.0 для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования - Поправка 1: Улучшения для Высокой эффективности WLAN.

  2. Монтре, L. и др. NDP Короткий Проект Обратной связи. IEEE 802.11-17/0044r4, май 2017.