В этом примере показано, как сгенерировать IEEE® 802.11be™ однопользовательская форма волны с квадратурной амплитудной (4096-QAM) модуляцией с 4096 точками и полоса пропускания канала 320 МГц. Пример демонстрирует, как измерить точность модуляции передатчика, спектральную маску и спектральную плоскость.
В этом примере показано, как параметрировать и сгенерировать чрезвычайно высокую пропускную способность (EHT) IEEE 802.11be однопользовательская форма волны, заданная в Проекте 1.0 [1] P802.11be. Этот пример выполняет точность модуляции передатчика, необходимую спектральную маску, и потребовал спектральных измерений плоскости на форме волны для настройки, заданной в Разделе 36.3.19 из [1].
Пример генерирует 20 однопользовательских пакетов EHT с полосой пропускания канала на 320 МГц и разрывы с 10 микросекундами между пакетами. Каждый пакет содержит случайные данные и использует 4096-QAM. Пример сверхдискретизировал форму волны с помощью большего ОБПФ, чем необходимый для номинального основополосного уровня и не выполняет спектральную фильтрацию. Пример использует модель мощного усилителя (HPA), которая вводит внутриполосное искажение и спектральный перерост. Пример выполняет спектральное измерение маски эмиссии на сверхдискретизированной форме волны после моделирования HPA. Пример декодирует поле данных EHT и измеряет величину вектора ошибок (EVM), чтобы определить точность модуляции после субдискретизации формы волны к основополосной частоте дискретизации. Кроме того, пример измеряет спектральную плоскость восстановленной формы волны. Эта схема показывает рабочий процесс, содержавшийся в примере.
Сконфигурируйте пример к generate
20 однопользовательских пакетов EHT с периодом неактивности с 10 микросекундами между каждым пакетом.
numPackets = 20; idleTime = 10; % In microseconds
Физический уровень 802.11be, заданный в Проекте 1.0 [1] P802.11be, полагается 802.11ax [2] с этими добавленными возможностями и модификациями.
Увеличенная максимальная полоса пропускания канала 320 МГц
4096-QAM в MCS индексируют опции 12 и 13
Присвоение нескольких снабжают модуль (MRU) к отдельной станции (STA), с дополнительным прокалыванием однопользовательских пакетов
Увеличенное максимальное число пространственных потоков для восходящего MU-MIMO (16 пространственных потоков максимум через 8 пользователей)
Модифицированный тональный план относительно полос пропускания на 80 и 160 МГц
Больший порождающий полином для скремблера Поля данных и дескремблера
Этот пример демонстрирует эти ключевые 802.11be функции.
Полоса пропускания канала на 320 МГц
4096-QAM модуляция
Модифицированный тональный план относительно полос пропускания на 80 и 160 МГц
Больший порождающий полином для скремблера Поля данных и дескремблера
Черновой стандарт задает ЭХТ, многопользовательского (ЭХТ МУ) формат для передачи и однопользовательских и многопользовательских пакетов. Этот пример только поддерживает генерацию однопользовательских пакетов. Используйте объект настройки ЭХТ МУ, ehtMUConfig
, сконфигурировать свойства передачи пакета ЭХТ МУ. Этот пример использует случайные биты, чтобы сгенерировать U-SIG и EHT-SIG сигнальные поля. Можно задать случайный seed или полевые значения бита путем изменения соответствующих свойств ehtMUConfig
объект. Значение битов U-SIG и EHT-SIG влияет на пик к среднему отношению степени (PAPR) пакета. Поскольку этот пример не использует пространственно-временное блочное кодирование, он может измерить точность модуляции на пространственный поток.
chanBW = 'CBW320'; % Channel bandwidth мГц = 12; % Modulation and coding scheme numTx = 1; % Number of transmit antennas apepLength = 8000; % A-MPDU length pre-EOF padding in bytes savedState = rng (0); % Set random state cfgEHT = ehtMUConfig (chanBW); % EHT MU configuration object
cfgEHT.NumTransmitAntennas = numTx;
cfgEHT.User{1}.MCS = mcs;
cfgEHT.User{1}.NumSpaceTimeStreams = numTx;
cfgEHT.User{1}.APEPLength = apepLength;
cfgEHT.RU{1}.SpatialMapping = 'Direct';
Чтобы смоделировать эффект HPA на форме волны и просмотреть внеполосную спектральную эмиссию, форма волны должна быть сверхдискретизирована. Этот пример генерирует форму волны с помощью большего ОБПФ, чем необходимый для номинального основополосного уровня, приводя к сверхдискретизированной форме волны. Пример не выполняет спектральную фильтрацию.
osf = 4; % Oversampling factor
Создайте случайные биты для всех пакетов.
psduLength = cfgEHT.getPSDULength*8; % PSDU length in bits per packet
data = randi([0 1],psduLength*numPackets,1);
Сгенерируйте форму волны ЭХТ МУ для заданных битов и настройки при помощи ehtWaveformGenerator
функция, задавая желаемый фактор сверхдискретизации, количество пакетов, и время простоя между каждым пакетом.
txWaveform = ehtWaveformGenerator(data,cfgEHT,'NumPackets',numPackets,'IdleTime',idleTime*1e-6,'OversamplingFactor',osf);
Получите основополосную частоту дискретизации формы волны
fs = wlanSampleRate(chanBW); disp(['Baseband sampling rate: ' num2str(fs/1e6) ' Msps']);
Предварительно ожидайте нули к форме волны, чтобы допускать раннюю временную синхронизацию.
txWaveform = [zeros(round(idleTime*1e-6*fs),numTx); txWaveform];
HPA вводит нелинейное поведение в форме внутриполосного искажения и спектрального перероста. Этот пример симулирует усилители мощности при помощи модели [3] Rapp, которая вводит искажение AM.
Смоделируйте усилитель при помощи dsp.FIRInterpolator
объект, и конфигурирует уменьшаемое искажение путем определения возврата, hpaBackoff
, таким образом, что усилитель действует ниже его точки насыщения. Можно увеличить возврат, чтобы уменьшать EVM для более высоких значений MCS.
pSaturation = 25; % Saturation power of a power amplifier in dBm hpaBackoff = 16; % 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); txWaveform = nonLinearity(txWaveform);
Добавьте тепловой шум в каждую передающую антенну при помощи comm.ThermalNoise
объект с шумовой фигурой 6 дБ [4].
thNoise = comm.ThermalNoise('NoiseMethod','Noise Figure','SampleRate',fs*osf,'NoiseFigure',6); for i = 1:cfgEHT.NumTransmitAntennas txWaveform(:,i) = thNoise(txWaveform(:,i)); end
Передискретизируйте сверхдискретизированную форму волны вниз к основной полосе для обработки физического уровня и EVM и спектральных измерений плоскости, применяя фильтр сглаживания lowpass перед субдискретизацией. Удар фильтра lowpass отображается в спектральном измерении плоскости. Фильтр сглаживания спроектирован так, чтобы все активные поднесущие были в полосе пропускания фильтра.
Спроектируйте фильтр передискретизации.
aStop = 40; % Stopband attenuation ofdmInfo = ehtOFDMInfo('EHT-Data',cfgEHT); % OFDM parameters SCS = fs/ofdmInfo.FFTLength; % Subcarrier spacing txbw = max(abs(ofdmInfo.ActiveFrequencyIndices))*2*SCS; % Occupied bandwidth [L,M] = rat(osf); maxLM = max([L M]); R = (fs-txbw)/fs; TW = 2*R/maxLM; % Transition width b = designMultirateFIR(L,M,TW,aStop);
Передискретизируйте форму волны к основной полосе.
firinterp = dsp.FIRRateConverter(M,L,b); rxWaveform = firinterp(txWaveform);
Этот раздел обнаруживает, синхронизирует и извлекает каждый пакет в rxWaveform
, затем измеряет EVM и спектральную плоскость. Для каждого пакета пример выполняет эти шаги.
Обнаружьте запуск пакета
Извлеките устаревшие поля
Оцените и откорректируйте крупную несущую частоту возмещена (CFO)
Выполните прекрасную оценку символьной синхронизации при помощи откорректированных частотой устаревших полей
Извлеките пакет из формы волны при помощи прекрасного смещения символьной синхронизации
Откорректируйте извлеченный пакет крупной оценкой CFO
Извлеките L-LTF, затем оцените и откорректируйте прекрасный CFO
Извлеките EHT-LTF и выполните оценку канала для каждого из потоков передачи
Измерьте спектральную плоскость при помощи оценки канала
Извлеките и OFDM демодулируют Поле данных EHT
Выполните шумовую оценку при помощи демодулируемых пилотов поля данных и оценки канала единого потока в пилотных поднесущих
Правильный фазой и компенсируют Поле данных EHT при помощи канала и шумовых оценок
Для каждой несущей данные поднесущей в каждом пространственном потоке найдите, что самое близкое созвездие указывает и измеряет EVM
Восстановите PSDU путем декодирования компенсируемых символов
Эта схема показывает цепь обработки.
Этот пример делает два различных измерения EVM.
EVM RMS на пакет, который включает усреднение EVM по поднесущим, символам OFDM и пространственным потокам.
RMS EVM на поднесущую на пространственный поток для пакета. Поскольку эта настройка сопоставляет пространственные потоки непосредственно с антеннами, это измерение может помочь обнаружить зависимые частотой ухудшения, которые могут влиять на отдельные цепи RF по-другому. Это измерение составляет в среднем EVM по символам OFDM только.
Setup измерения EVM.
[EVMPerPkt,EVMPerSC] = evmSetup(cfgEHT);
Получите индексы для доступа к каждому полю в пакете временного интервала.
ind = ehtFieldIndices(cfgEHT);
Задайте минимальную обнаруживаемую длину данных в выборках.
minPktLen = double(ind.LSTF(2)-ind.LSTF(1))+1;
Обнаружьте и пакеты процесса в принятой форме волны при помощи while
цикл, который выполняет эти шаги.
Обнаружьте пакет путем индексации в rxWaveform
с демонстрационным смещением, searchOffset
Обнаружьте и обработайте первый пакет в rxWaveform
Обнаружьте и обработайте следующий пакет путем постепенного увеличения демонстрационного смещения индекса
Повторитесь, пока никакие дальнейшие пакеты не будут обнаружены
rxWaveformLength = size(rxWaveform,1); pktLength = double(ind.EHTData(2)); rmsEVM = zeros(numPackets,1); pktOffsetStore = zeros(numPackets,1); rng(savedState); % Restore random state pktNum = 0; searchOffset = 0; % Start at first sample (no offset) while (searchOffset+minPktLen)<=rxWaveformLength % Detect packet and determine coarse packet offset pktOffset = wlanPacketDetect(rxWaveform,cfgEHT.ChannelBandwidth,searchOffset); % Packet offset from start of the waveform pktOffset = searchOffset+pktOffset; % Skip packet if L-STF is empty if isempty(pktOffset) || (pktOffset<0) || ... ((pktOffset+ind.LSIG(2))>rxWaveformLength) break; end % Extract L-STF and perform coarse frequency offset correction nonht = rxWaveform(pktOffset+(ind.LSTF(1):ind.LSIG(2)),:); coarsefreqOff = wlanCoarseCFOEstimate(nonht,cfgEHT.ChannelBandwidth); nonht = helperFrequencyOffset(nonht,fs,-coarsefreqOff); % Extract the legacy fields and determine fine packet offset lltfOffset = wlanSymbolTimingEstimate(nonht,cfgEHT.ChannelBandwidth); pktOffset = pktOffset+lltfOffset; % Determine packet offset % If offset is outwith bounds of the waveform, then skip samples and % continue searching within remainder of the waveform if (pktOffset<0) || ((pktOffset+pktLength)>rxWaveformLength) searchOffset = pktOffset+double(ind.LSTF(2))+1; continue; end % Timing synchronization complete; extract the detected packet rxPacket = rxWaveform(pktOffset+(1:pktLength),:); pktNum = pktNum+1; disp([' Packet ' num2str(pktNum) ' at index: ' num2str(pktOffset+1)]); % Apply coarse frequency correction to the extracted packet rxPacket = helperFrequencyOffset(rxPacket,fs,-coarsefreqOff); % Perform fine frequency offset correction on the extracted packet lltf = rxPacket(ind.LLTF(1):ind.LLTF(2),:); % Extract L-LTF fineFreqOff = wlanFineCFOEstimate(lltf,cfgEHT.ChannelBandwidth); rxPacket = helperFrequencyOffset(rxPacket,fs,-fineFreqOff); % Extract EHT-LTF samples, demodulate, and perform channel estimation ehtLTF = rxPacket(ind.EHTLTF(1):ind.EHTLTF(2),:); ehtLTFDemod = ehtDemodulate(ehtLTF,'EHT-LTF',cfgEHT); % Channel estimate [chanEst,pilotEst] = ehtLTFChannelEstimate(ehtLTFDemod,cfgEHT); % Spectral flatness measurement ehtTxSpectralFlatnessMeasurement(chanEst,cfgEHT,pktNum); % Data demodulate rxData = rxPacket(ind.EHTData(1):ind.EHTData(2),:); demodSym = ehtDemodulate(rxData,'EHT-Data',cfgEHT); % Pilot phase tracking demodSym = ehtCommonPhaseErrorTracking(demodSym,chanEst,cfgEHT); % Estimate noise power in EHT fields nVarEst = ehtNoiseEstimate(demodSym(ofdmInfo.PilotIndices,:,:),pilotEst,cfgEHT); % Extract data subcarriers from demodulated symbols and channel % estimate demodDataSym = demodSym(ofdmInfo.DataIndices,:,:); chanEstData = chanEst(ofdmInfo.DataIndices,:,:); % Equalization and STBC combining [eqSym,csi] = ehtEqualizeCombine(demodDataSym,chanEstData,nVarEst,cfgEHT); % Compute RMS EVM over all spatial streams for a packet rmsEVM(pktNum) = EVMPerPkt(eqSym); fprintf(' RMS EVM: %2.2f%%, %2.2fdB\n',rmsEVM(pktNum),20*log10(rmsEVM(pktNum)/100)); % Compute RMS EVM per subcarrier and spatial stream for the packet evmPerSC = EVMPerSC(eqSym); % Nst-by-1-by-Nss % Plot RMS EVM per subcarrier and equalized constellation ehtTxEVMConstellationPlots(eqSym,evmPerSC,cfgEHT,pktNum); % Recover data field bits rxPSDU = ehtDataBitRecover(eqSym,nVarEst,csi,cfgEHT); if isequal(rxPSDU,data((1:psduLength)+(pktNum-1)*psduLength)) fprintf(' Decode success\n'); else fprintf(' Decode failure\n'); end % Store the offset of each packet within the waveform pktOffsetStore(pktNum) = pktOffset; % Increment waveform offset and search remaining waveform for a packet searchOffset = pktOffset+pktLength+minPktLen; end if pktNum>0 fprintf('Average EVM for %d packets: %2.2f%%, %2.2fdB\n', ... pktNum,mean(rmsEVM(1:pktNum)),20*log10(mean(rmsEVM(1:pktNum))/100)); else disp('No complete packet detected'); end
Этот раздел измеряет спектральную маску отфильтрованной и формы волны, которой повреждают, после моделирования HPA. Передатчик спектральный тест маски [5] использование пропущенное временем спектральное измерение Поля данных EHT. Пример извлекает Поле данных EHT каждого пакета от сверхдискретизированной формы волны при помощи индексов запуска каждого пакета в основополосной форме волны. Любая задержка, введенная в основополосной цепи обработки, используемой, чтобы определить пакетные индексы, должна составляться при пропускании поля данных EHT в txWaveform
. Конкатенация извлеченных Полей данных EHT при подготовке к измерению.
startIdx = osf*(ind.EHTData(1)-1)+1; % Upsampled start of EHT Data endIdx = osf*ind.EHTData(2); % Upsampled end of EHT Data delay = grpdelay(firinterp,1); % Group delay of downsampling filter idx = zeros(endIdx-startIdx+1,pktNum); for i = 1:pktNum % Start of packet in txWaveform pktOffset = round(osf*pktOffsetStore(i))-delay; % Indices of EHT-Data in txWaveform idx(:,i) = (pktOffset+(startIdx:endIdx)); end gatedEHTTData = txWaveform(idx(:),:);
802.11be стандарт задает спектральную маску относительно пиковой мощности спектральная плотность. Этот сгенерированный график накладывает необходимую маску с измеренным PSD.
if pktNum>0 ehtSpectralMaskTest(gatedEHTTData,fs,osf); end
Этот пример меры и графики:
Спектральная плоскость
RMS EVM на поднесущую
Компенсируемое созвездие
Спектральная маска
Модель HPA вводит значительное внутриполосное искажение и спектральный перерост, который отображается в результатах EVM, шумном созвездии и внеполосной эмиссии в спектральном графике маски. Попытайтесь увеличить возврат HPA и наблюдайте улучшенный EVM, созвездие, и понизьте внеполосную эмиссию. Субдискретизация (чтобы принести форму волны к основной полосе для обработки) этап включает фильтрацию. Ответ фильтра влияет на спектральное измерение плоскости. Пульсация в спектральном измерении плоскости происходит из-за субдискретизации к основной полосе. Попытайтесь использовать различный фильтр или изменить затухание в полосе задерживания и наблюдайте удар на спектральную плоскость.
Черновой Стандарт IEEE P802.11be™/D1.0 для Информационных технологий — Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями — Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования - Поправка 8: Улучшения для чрезвычайно высокой пропускной способности (EHT).
Черновой Стандарт IEEE P802.11ax™/D4.1 для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования - Поправка 1: Улучшения для Высокой эффективности WLAN.
Loc и Cheong. IEEE P802.11 Беспроводная LAN. Функциональные требования TGac и версия методологии оценки. 16. 2011-01-19.
Perahia, E. и Р. Стейси. Беспроводная LAN следующего поколения: 802.11n и 802.11ac. 2-й выпуск. Соединенное Королевство: Издательство Кембриджского университета, 2013.
Archambault, Джерри и Шрэвэн Суринени. "IEEE 802.11 спектральные измерения с помощью вектора сигнализирует об анализаторах". Проект 27.6 (2004) RF: 38-49.