В этом примере показано, как сгенерировать пакетные формы волны радио пробуждения (WUR) IEEE® 802.11ba™. Пример также демонстрирует, как измерить маску спектра передачи и спектральную плоскость.
802.11ba проектируют стандарт [1], называемый радио пробуждения (WUR), задает механизм, чтобы позволить станциям IEEE 802.11 (STAs) действовать в чрезвычайно низком энергопотреблении и реагировать на входящий трафик с низкой задержкой через сигнал пробуждения. Этот стандарт задает два типа формата WUR PPDU.
WUR Основной PPDU с полосой пропускания канала на 20 МГц (один подканал)
WUR FDMA PPDU с 40 МГц (два подканала) или 80 МГц (четыре подканала) непрерывные полосы пропускания канала
Каждый подканал на 20 МГц может передать данные для отдельного пользователя. Для каждого подканала на 20 МГц физический уровень WUR (PHY) оказывает поддержку для скоростей передачи данных 62,5 Кбит/с и 250 Кбит/с, обозначенных как низкая скорость передачи данных (LDR) и высокая скорость передачи данных (HDR), соответственно. Кроме того, AC Приложения [1] обеспечивает три примера последовательностей символа и длительности циклического сдвига (CSDS) на заданных скоростях передачи данных.
Этот пример генерирует 5 пакетов WUR с полосой пропускания канала на 20 МГц и разрывами с 10 микросекундами между каждым из пакетов. Пример сверхдискретизировал форму волны с помощью большей длины обратного быстрого преобразования Фурье (ОБПФ), чем необходимый для номинального основополосного уровня и не выполняет спектральную фильтрацию. Пример затем демонстрирует эффекты мощного усилителя (HPA), который вводит внутриполосное искажение и спектральный перерост. После моделирования HPA пример извлекает non-WUR фрагмент преамбулы WUR PHY, включая L-STF, L-LTF, L-SIG, BPSK-Mark1, и поля BPSK-Mark2 и фрагмент WUR, включая WUR-синхронизирующие и WUR-поля-данных, от сгенерированной формы волны. Пример затем выполняет два измерения маски спектра передачи для non-WUR фрагмента преамбулы WUR PHY и фрагмента WUR, соответственно, и измеряет спектральную плоскость для фрагмента WUR. Этот рисунок показывает рабочий процесс, содержавшийся в этом примере.
Сконфигурируйте пример, чтобы сгенерировать 5 пакетов WUR с периодом неактивности с 10 микросекундами между каждым пакетом.
numPackets = 5;
idleTime = 10; % In microseconds
Создайте объект настройки WUR для передачи на 20 МГц.
numSubchannels = 1; % Number of subchannels cfgWUR = wlanWURConfig(numSubchannels); % Create WUR packet configuration cfgWUR.NumTransmitAntennas = 1; % Number of transmit antennas fs = wlanSampleRate(cfgWUR); % Get the nominal baseband sample rate osf = 2; % Oversampling factor
Параметрируйте передачу свойствами объектов настройки установки WUR для каждого пользователя. Функция генератора формы волны использует только первый cfgWUR.NumUsers
элементы cfgWUR
массив ячеек, чтобы сгенерировать соответствующие пакеты WUR.
psdu = cell(1,cfgWUR.NumUsers); psduLength = [5,10,15,20]; % Bytes, 1 to 22 inclusive for each 20 MHz subchannel dataRate = {'LDR','HDR','LDR','HDR'}; symDesign = {'Example1','Example2','Example1','Example2'}; rng(0); % Set random state for i = 1:cfgWUR.NumUsers cfgWUR.Subchannel{i}.PSDULength = psduLength(i); psdu{i} = randi([0 1],psduLength(i)*8,1,'int8'); cfgWUR.Subchannel{i}.DataRate = dataRate{i}; cfgWUR.Subchannel{i}.SymbolDesign = symDesign{i}; end
Сгенерируйте форму волны WUR для заданных битов и настройки при помощи wlanWaveformGenerator
функция, определяя номер пакетов, время простоя между каждым пакетом, и сверхдискретизировав фактор.
txWaveform = wlanWaveformGenerator(psdu,cfgWUR,'NumPackets',numPackets,'IdleTime',idleTime*1e-6,'OversamplingFactor',osf);
HPA вводит нелинейное поведение в форме внутриполосного искажения и спектрального перероста. Этот пример симулирует усилители мощности при помощи модели Rapp, которая вводит искажение AM [2]. Смоделируйте усилитель при помощи comm.MemorylessNonlinearity
объект, и конфигурирует уменьшаемое искажение путем определения возврата, hpaBackoff
, таким образом, что усилитель действует ниже его точки насыщения.
pSaturation = 25; % Saturation power of a power amplifier in dBm hpaBackoff = 15; % Power amplifier backoff in dB nonLinearity = comm.MemorylessNonlinearity; nonLinearity.Method = 'Rapp model'; nonLinearity.Smoothness = 3; % p parameter nonLinearity.LinearGain = -hpaBackoff; nonLinearity.OutputSaturationLevel = db2mag(pSaturation-30);
Примените модель HPA к форме волны.
txWaveform = nonLinearity(txWaveform);
Добавьте тепловой шум в каждую передающую антенну при помощи comm.ThermalNoise
объект с шумовой фигурой 6 дБ [3].
thNoise = comm.ThermalNoise('NoiseMethod','Noise Figure','SampleRate',fs*osf,'NoiseFigure',6); for i = 1:cfgWUR.NumTransmitAntennas txWaveform(:,i) = thNoise(txWaveform(:,i)); end
Получите индексы для доступа к полям WUR в пакете временного интервала.
ind = wlanFieldIndices(cfgWUR,'OversamplingFactor',osf); % Get the number of samples in the idle time. numIdle = osf*fs*idleTime*1e-6; % Define the length of a WUR packet, in samples. pktLength = double(max(ind.WURData(:,2)))+numIdle; % Define the length of non-WUR portion of the WUR PHY preamble, composed of the % L-STF, L-LTF, L-SIG, BPSK-Mark1 and BPSK-Mark2 fields, in samples. idxPreamble = zeros(ind.BPSKMark2(2),numPackets,'uint32'); % Define the length of the WUR-Sync and WUR-Data fields, in samples. idxWUR = zeros(max(ind.WURData(:,2))-ind.WURSync(1,1)+1,numPackets,'uint32');
Извлеките non-WUR фрагмент преамбулы WUR PHY и фрагмент WUR каждого пакета в форме волны.
pktOffset = 0; % Start at first sample (no offset) for i = 1:numPackets % Indices of WUR preamble fields idxPreamble(:,i) = pktOffset+(1:ind.BPSKMark2(2)); % Indices of WUR-Sync and WUR-Data fields idxWUR(:,i) = pktOffset+(ind.WURSync(1,1):max(ind.WURData(:,2))); % Packet offset to generate the end index of each packet pktOffset = i*pktLength; end preamFields = txWaveform(idxPreamble(:),:); wurFields = txWaveform(idxWUR(:),:);
Измерьте маску спектра передачи non-WUR фрагмента преамбулы WUR PHY, как задано в Разделе 30.3.12.1 из [1].
if numPackets>0 helperSpectralMaskTest(preamFields,fs,osf); end
Spectrum mask passed
На основе значений пределов (в dBr) относительно максимальной спектральной плотности и соответствующих смещений частоты сигнала (в МГц) обеспеченный в Разделе 30.3.12.1 из [1], задайте маски спектра передачи WUR-синхронизирующих и WUR-полей-данных для основного WUR, и FDMA PPDUs.
switch numSubchannels case 1 % WUR Basic PPDU dBrLimits = [-40 -40 -28 -20 -15 0 ... 0 -15 -20 -28 -40 -40]; fLimits = [-Inf -30 -20 -11 -3.5 -2.25 ... 2.25 3.5 11 20 30 Inf]; case 2 % 40 MHz WUR FDMA PPDU dBrLimits = [-40 -40 -28 -20 -15 0 0 -15 -20 ... -20 -15 0 0 -15 -20 -28 -40 -40]; fLimits = [-Inf -60 -40 -21 -13.5 -12.25 -7.75 -6.5 -1 ... 1 6.5 7.75 12.25 13.5 21 40 60 Inf]; otherwise % 80 MHz WUR FDMA PPDU dBrLimits = [-40 -40 -28 -20 -15 0 0 -15 -20 -20 -15 0 0 -15 -20 ... -20 -15 0 0 -15 -20 -20 -15 0 0 -15 -20 -28 -40 -40]; fLimits = [-Inf -120 -80 -41 -33.5 -32.25 -27.75 -26.5 -21 -19 -13.5 -12.25 -7.75 -6.5 -1 ... 1 6.5 7.75 12.25 13.5 19 21 26.5 27.75 32.25 33.5 41 80 120 Inf]; end
Измерьте маску спектра передачи и спектральную плоскость WUR-синхронизирующих и WUR-полей-данных, как задано в Разделе 30.3.12.1 и Разделе 30.3.12.2 из [1]. wurTxSpectralFlatnessMeasurement
функционируйте измеряет спектральную плоскость путем сравнения степени в любом непрерывном сегменте на 1 МГц в центре 4 МГц каждого канала на 20 МГц к общей переданной степени в центре 4 МГц и измеряет переданную степень, таким образом описанную в Разделе 5.4.3.2.1 из [4] для оборудования с непрерывными и ненепрерывными передачами.
if numPackets>0 helperSpectralMaskTest(wurFields,fs,osf,dBrLimits,fLimits); isPassed = wurTxSpectralFlatnessMeasurement(wurFields,fs,osf); if isPassed fprintf(' Spectral flatness passed\n'); else fprintf(' Spectral flatness failed\n'); end end
Spectrum mask passed Spectral flatness passed
В этом примере показано, как сгенерировать формы волны WUR, как задано в IEEE 802.11ba, проектируют стандарт и измеряют эти количества.
Маска спектра передатчика
Спектральная плоскость
Модель HPA вводит значительное внутриполосное искажение и спектральный перерост, который отображается в спектральном графике маски. Попытайтесь увеличить значение возврата HPA и наблюдайте более низкую внеполосную эмиссию. Различные шаблоны пульсации и пределов отклонения в спектральном измерении плоскости происходят из-за различной Мультинесущей Релейное Манипулирование (MC-OOK) На проектах символа, таких как MC-OOK На последовательностях символа и примененных значениях CSD. Спектральный тест плоскости перестанет работать для подканала на 20 МГц, если подканал в сгенерированной форме волны будет сконфигурирован с проектом символа и набором скорости передачи данных к 'Example3'
и 'HDR'
, соответственно. Попытайтесь использовать различный MC-OOK На символе, проектируют и наблюдают удар на спектральную плоскость.
Черновой Стандарт IEEE P802.11ba™/D8.0 для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Поправка 3: Операция Радио пробуждения.
Р. Порэт, и др. Методология Оценки TGax, IEEE 11/14-0571r12. 2016-01-21.
Perahia, E. и Р. Стейси. Беспроводная LAN Следующего поколения: 802.11n и 802.11ac. 2-й Выпуск. Соединенное Королевство: Издательство Кембриджского университета, 2013. Archambault, Джерри и Шрэвэн Суринени. "IEEE 802.11 спектральные измерения с помощью вектора сигнализирует об анализаторах". Проект 27.6 (2004) RF: 38-49.
ETSI EN 300 328 V2.1.1. Широкополосные системы передачи; оборудование Передачи данных, действующее в 2,4 полосах GHz ISM и использующее широкие методы модуляции полосы; Согласованный Стандарт, касающийся основы статьи 3.2 Директивы 2014/53EU. 2016-11.
Copyright 2021 The MathWorks, Inc.