В этом примере показано, как генерировать однопользовательский сигнал IEEE ® 802.11be™ с квадратурной амплитудной модуляцией 4096 точек (4096-QAM) и полосой пропускания канала 320 МГц. Пример демонстрирует, как измерить точность модуляции передатчика, спектральную маску и спектральную плоскостность.
В этом примере показано, как параметризовать и генерировать однопользовательский сигнал IEEE 802.11be с чрезвычайно высокой пропускной способностью (EHT), указанный в P802.11be Черновик 0.1 [1]. В этом примере выполняются измерения точности модуляции передатчика, требуемой спектральной маски и требуемой спектральной плоскостности по форме сигнала для конфигурации, указанной в разделе 36.3.18 из [1].
Пример генерирует 20 однопользовательских пакетов EHT с полосой пропускания канала 320 МГц и промежутками между пакетами 10 микросекунд. Каждый пакет содержит случайные данные и использует 4096-QAM. В примере избыточная выборка формы сигнала с использованием большего IFFT, чем требуется для номинальной скорости основной полосы частот, и не выполняется спектральная фильтрация. В примере используется модель усилителя высокой мощности (HPA), которая вводит внутриполосные искажения и повторный рост спектра. В примере после моделирования усилителя высокой мощности выполняется измерение маски спектрального излучения по сигналу с повышенной дискретизацией. Пример декодирует поле данных EHT и измеряет величину вектора ошибок (EVM) для определения точности модуляции после понижающей дискретизации формы сигнала до частоты дискретизации основной полосы частот. Кроме того, в примере измеряют спектральную плоскостность восстановленного сигнала. На этой схеме показан рабочий процесс, содержащийся в примере.

Сконфигурируйте пример для generate 20 однопользовательских пакетов EHT с периодом простоя 10 микросекунд между каждым пакетом.
numPackets =20; idleTime =
10; % In microseconds
Физический уровень 802.11be, определенный в P802.11be Черновик 0.1 [1], основан на 802.11ax [2] с этими дополнительными возможностями и модификациями.
Увеличение максимальной пропускной способности канала до 320 МГц
4096-QAM в вариантах индекса MCS 12 и 13
Назначение нескольких блоков ресурсов (MRU) одной станции (STA) с опциональным прокалыванием однопользовательских пакетов
Увеличение максимального количества пространственных потоков для восходящей линии связи MU-MIMO (16 пространственных потоков для 8 пользователей)
Модифицированный план тональных сигналов для полосы пропускания 80 и 160 МГц
Более крупный полином генератора для скремблера поля данных и дескремблера
В этом примере моделируются эти ключевые функции 802.11be.
Полоса пропускания канала 320 МГц
4096-QAM модуляция
Модифицированный план тональных сигналов для полосы пропускания 80 и 160 МГц
Более крупный полином генератора для скремблера поля данных и дескремблера
Проект стандарта определяет многопользовательский формат EHT (EHT MU) для передачи как однопользовательских, так и многопользовательских пакетов. В этом примере поддерживается только генерация однопользовательских пакетов. Используйте объект конфигурации EHT MU, ehtMUConfig, для конфигурирования свойств передачи пакета EHT MU. В этом примере используются случайные биты для генерации полей сигнализации U-SIG и EHT-SIG. Можно указать случайные начальные значения или битовые значения поля, изменив соответствующие свойства ehtMUConfig объект. Значение битов U-SIG и EHT-SIG влияет на отношение пиковой мощности к средней мощности (PAPR) пакета. Поскольку этот пример не использует пространственно-временное блочное кодирование, он может измерять точность модуляции для каждого пространственного потока.
chanBW ='CBW320'; % Channel bandwidth mcs =
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';
Для моделирования влияния усилителя высокой мощности на форму сигнала и просмотра внеполосных спектральных излучений, форма сигнала должна быть избыточно дискретизирована. Этот пример генерирует сигнал, используя больший IFFT, чем требуется для номинальной скорости основной полосы частот, что приводит к избыточной дискретизации сигнала. В примере не выполняется спектральная фильтрация.
osf =4; % Oversampling factor
Создание случайных битов для всех пакетов.
psduLength = cfgEHT.getPSDULength*8; % PSDU length in bits per packet
data = randi([0 1],psduLength*numPackets,1);Создайте форму сигнала EHT MU для указанных битов и конфигурации с помощью ehtWaveformGenerator функция, определяющая требуемый коэффициент избыточной дискретизации, количество пакетов и время простоя между каждым пакетом.
txWaveform = ehtWaveformGenerator(data,cfgEHT,'NumPackets',numPackets,'IdleTime',idleTime*1e-6,'OversamplingFactor',osf);
Получение частоты дискретизации сигнала в основной полосе частот
fs = ehtSampleRate(cfgEHT); disp(['Baseband sampling rate: ' num2str(fs/1e6) ' Msps']);
Baseband sampling rate: 320 Msps
Добавьте нули к форме сигнала, чтобы обеспечить раннюю синхронизацию синхронизации.
txWaveform = [zeros(round(idleTime*1e-6*fs),numTx); txWaveform];
Усилитель высокой мощности вводит нелинейное поведение в виде внутриполосных искажений и спектрального нарастания. Этот пример моделирует усилители мощности с помощью модели Rapp [3], которая вводит искажение AM/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);
Добавьте модель к каждой передающей антенне.
for i=1:cfgEHT.NumTransmitAntennas txWaveform(:,i) = nonLinearity(txWaveform(:,i)); end
Добавьте тепловой шум к форме сигнала, указав 6 дБ шума приемника [4].
NF = 6; % Noise figure (dB) BW = fs*osf; % Bandwidth (Hz) k = 1.3806e-23; % Boltzman constant (J/K) T = 290; % Ambient temperature (K) noisePower = 10*log10(k*T*BW)+NF; awgnChannel = comm.AWGNChannel('NoiseMethod','Variance','Variance',10^(noisePower/10)); txWaveform = awgnChannel(txWaveform);
Повторная выборка избыточно дискретизированного сигнала до основной полосы частот для обработки на физическом уровне и измерений четкости EVM и спектра, применяя фильтр сглаживания нижних частот перед понижающей дискретизацией. Воздействие фильтра нижних частот видно при измерении спектральной плоскостности. Фильтр сглаживания выполнен таким образом, что все активные поднесущие находятся в пределах полосы пропускания фильтра.
Проектирование фильтра повторной выборки.
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)
Выполнение точной оценки синхронизации символов с использованием устаревших полей с поправкой на частоту
Извлечение пакета из формы сигнала с использованием точного временного сдвига символа
Исправьте извлеченный пакет с помощью грубой оценки финансового директора
Извлеките L-LTF, затем оцените и исправьте мелкого финансового директора
Извлеките EHT-LTF и выполните оценку канала для каждого из потоков передачи
Измерение спектральной плоскостности с помощью оценки канала
Извлечение и демодуляция OFDM поля данных EHT
Выполнение оценки шума с использованием пилот-сигналов демодулированного поля данных и оценки однопоточного канала на пилотных поднесущих
Коррекция фазы и выравнивание поля данных EHT с использованием оценок канала и шума
Для каждой несущей данные поднесущей в каждом пространственном потоке найдите ближайшую точку созвездия и измерьте EVM.
Восстановление PSDU путем декодирования выровненных символов
На этой схеме показана цепочка обработки.

В этом примере выполняется два различных измерения EVM.
RMS EVM на пакет, который содержит усреднение EVM по поднесущим, символам OFDM и пространственным потокам.
RMS EVM на поднесущую на пространственный поток для пакета. Поскольку эта конфигурация отображает пространственные потоки непосредственно на антенны, это измерение может помочь обнаружить частотно-зависимые нарушения, которые могут по-разному влиять на отдельные радиочастотные цепи. Это измерение усредняет EVM только по символам OFDM.
Настройка измерений 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 = ehtPacketDetect(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 = ehtCoarseCFOEstimate(nonht,cfgEHT.ChannelBandwidth); nonht = helperFrequencyOffset(nonht,fs,-coarsefreqOff); % Extract the legacy fields and determine fine packet offset lltfOffset = ehtSymbolTimingEstimate(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 = ehtFineCFOEstimate(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
Packet 1 at index: 992
Spectral flatness passed
RMS EVM: 0.41%, -47.69dB
Decode success
Packet 2 at index: 32352
Spectral flatness passed
RMS EVM: 0.43%, -47.33dB
Decode success
Packet 3 at index: 63712
Spectral flatness passed
RMS EVM: 0.43%, -47.26dB
Decode success
Packet 4 at index: 95072
Spectral flatness passed
RMS EVM: 0.47%, -46.62dB
Decode success
Packet 5 at index: 126432
Spectral flatness passed
RMS EVM: 0.46%, -46.79dB
Decode success
Packet 6 at index: 157792
Spectral flatness passed
RMS EVM: 0.45%, -46.91dB
Decode success
Packet 7 at index: 189152
Spectral flatness passed
RMS EVM: 0.43%, -47.27dB
Decode success
Packet 8 at index: 220512
Spectral flatness passed
RMS EVM: 0.37%, -48.68dB
Decode success
Packet 9 at index: 251872
Spectral flatness passed
RMS EVM: 0.48%, -46.45dB
Decode success
Packet 10 at index: 283232
Spectral flatness passed
RMS EVM: 0.42%, -47.49dB
Decode success
Packet 11 at index: 314592
Spectral flatness passed
RMS EVM: 0.37%, -48.69dB
Decode success
Packet 12 at index: 345952
Spectral flatness passed
RMS EVM: 0.42%, -47.53dB
Decode success
Packet 13 at index: 377312
Spectral flatness passed
RMS EVM: 0.43%, -47.27dB
Decode success
Packet 14 at index: 408672
Spectral flatness passed
RMS EVM: 0.45%, -46.90dB
Decode success
Packet 15 at index: 440032
Spectral flatness passed
RMS EVM: 0.47%, -46.58dB
Decode success
Packet 16 at index: 471392
Spectral flatness passed
RMS EVM: 0.45%, -46.99dB
Decode success
Packet 17 at index: 502752
Spectral flatness passed
RMS EVM: 0.41%, -47.84dB
Decode success
Packet 18 at index: 534112
Spectral flatness passed
RMS EVM: 0.41%, -47.69dB
Decode success
Packet 19 at index: 565472
Spectral flatness passed
RMS EVM: 0.54%, -45.29dB
Decode success
Packet 20 at index: 596832

Spectral flatness passed
RMS EVM: 0.41%, -47.66dB


Decode success
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
Average EVM for 20 packets: 0.44%, -47.21dB
В этом разделе измеряется спектральная маска отфильтрованного и поврежденного сигнала после моделирования усилителя высокой мощности. Тест [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
Spectral mask passed

В этом примере измерения и графики:
Спектральная плоскостность
RMS EVM на поднесущую
Уравненное созвездие
Спектральная маска
Модель усилителя высокой мощности вносит значительные внутриполосные искажения и спектральный рост, который виден в результатах EVM, шумовых созвездиях и внеполосных излучениях на графике спектральной маски. Попробуйте увеличить откат усилителя высокой мощности и наблюдать улучшение EVM, созвездия и снижение внеполосных излучений. Этап понижающей дискретизации (для доведения формы сигнала до основной полосы частот для обработки) включает в себя фильтрацию. Отклик фильтра влияет на измерение спектральной плоскостности. Пульсация в измерении спектральной плоскостности обусловлена понижением дискретизации до основной полосы. Попробуйте использовать другой фильтр или изменить затухание стоп-диапазона и наблюдать влияние на спектральную плоскостность.
IEEE P802.11be™/D0.1 Проект стандарта для информационных технологий - Телекоммуникации и обмен информацией между системами Локальные и городские сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY) - Поправка 8: Усовершенствования для чрезвычайно высокой пропускной способности (EHT).
IEEE P802.11ax™/D7.0 Проект стандарта для информационных технологий - Телекоммуникации и обмен информацией между системами - Локальные и городские сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY) - Поправка 1: Усовершенствования для высокой эффективности WLAN.
Лок и Чхон. IEEE P802.11 беспроводные локальные сети. Функциональные требования TGac и методология оценки, Ред. 16. 2011-01-19.
Перахия, Э. и Р. Стейси. Беспроводные локальные сети следующего поколения: 802.11n и 802.11ac. 2-е издание. Великобритания: Cambridge University Press, 2013. Аршамбо, Джерри и Шраван Суринени. «Спектральные измерения IEEE 802.11 с использованием анализаторов векторных сигналов». Проект РФ 27.6 (2004): 38-49.
Аршамбо, Джерри и Шраван Суринени. «Спектральные измерения IEEE 802.11 с использованием анализаторов векторных сигналов». Проект РФ 27.6 (2004): 38-49.