В этом примере показано, как сконфигурировать и сгенерировать 5G восходящий канал NR векторная форма волны с физическим восходящим каналом управления (PUCCH) для основополосной несущей компонента при помощи nrWaveformGenerator
функция.
В этом примере показано, как параметрировать и сгенерировать форму волны нового радио (NR) 5G для многопользовательского оборудования (UE) передачи восходящего управления при помощи nrWaveformGenerator
функция. Основополосная форма волны несущей компонента в этом примере характеризуется несколькими расстоянием между поднесущими (SCS) несущие и части полосы пропускания (BWP) и несколько последовательностей экземпляров передачи PUCCH и их опорных сигналов демодуляции (DM-RS) по различному BWPs. Каждая последовательность моделей a PUCCH разделяет передачу UE. Для примера о том, как сгенерировать форму волны восходящего канала 5G с физическим восходящим каналом, совместно использованный канал (PUSCH) и звучание опорным сигналом (SRS), включая Релиз 16 CG-UCI и SRS для расположения, видят 5G Восходящий канал NR Векторная Генерация сигналов.
Пример конфигурирует несколько последовательностей PUCCH для нескольких форматов. Этот рисунок показывает характеристики каждого формата PUCCH, как задано в Разделе TS 38.211 6.3.2.
Используйте nrULCarrierConfig
объект параметрировать основополосную генерацию сигналов. Этот объект содержит набор дополнительных объектов, сопоставленных с каналами формы волны, и сигнализирует и позволяет вам установить эти восходящие параметры конфигурации несущей.
Пометьте для этой настройки несущей UL
Полоса пропускания несущей SCS в блоках ресурса
ID ячейки Carrier
Длина сгенерированной формы волны в подкадрах
Работа с окнами
Частота дискретизации OFDM-модулируемой формы волны
Несущая частота для компенсации фазы символа
Можно управлять полосами пропускания несущей SCS и защитными полосами с помощью NStartGrid
и NSizeGrid
свойства nrSCSCarrierConfig
объект.
waveconfig = nrULCarrierConfig; % Create an uplink carrier configuration object waveconfig.Label = 'UL carrier 1'; % Label for this uplink waveform configuration waveconfig.NCellID = 0; % Cell identity waveconfig.ChannelBandwidth = 40; % Channel bandwidth (MHz) waveconfig.FrequencyRange = 'FR1'; % 'FR1' or 'FR2' waveconfig.NumSubframes = 10; % Number of 1 ms subframes in generated waveform (1, 2, 4, 8 slots per 1 ms subframe, depending on SCS) waveconfig.WindowingPercent = 0; % Percentage of windowing relative to FFT length waveconfig.SampleRate = []; % Sample rate of the OFDM-modulated waveform waveconfig.CarrierFrequency = 0; % Carrier frequency in Hz. This property is used for symbol phase % compensation before OFDM modulation % Define a set of SCS specific carriers, using the maximum sizes for a % 40 MHz NR channel. See TS 38.101-1 for more information on defined % bandwidths and guardband requirements. scscarriers = {nrSCSCarrierConfig,nrSCSCarrierConfig}; scscarriers{1}.SubcarrierSpacing = 15; scscarriers{1}.NSizeGrid = 216; scscarriers{1}.NStartGrid = 0; scscarriers{2}.SubcarrierSpacing = 30; scscarriers{2}.NSizeGrid = 106; scscarriers{2}.NStartGrid = 1;
BWP формируется набором непрерывных ресурсов, совместно использующих нумерологию на данной несущей SCS. Можно задать несколько BWPs использование массива ячеек. Каждый элемент в массиве ячеек nrWavegenBWPConfig
объекты задают BWP. Для каждого BWP можно задать SCS, длину циклического префикса (CP) и полосу пропускания. SubcarrierSpacing
свойство соединяет BWP с одной из специфичных для SCS несущих, заданных ранее. NStartBWP
свойство управляет местоположением BWP в несущей относительно точки A. NStartBWP
описывается в общих блоках ресурса (CRB) в терминах нумерологии BWP. Различный BWPs может перекрыться друг с другом.
% BWP configurations bwp = {nrWavegenBWPConfig,nrWavegenBWPConfig}; bwp{1}.BandwidthPartID = 1; % BWP ID bwp{1}.Label = 'BWP 1 @ 15 kHz'; % Label for this BWP bwp{1}.SubcarrierSpacing = 15; % BWP subcarrier spacing bwp{1}.CyclicPrefix = 'Normal'; % BWP cyclic prefix for 15 kHz bwp{1}.NSizeBWP = 25; % Size of BWP in PRBs bwp{1}.NStartBWP = 10; % Position of BWP, relative to point A, in CRBs bwp{2}.BandwidthPartID = 2; % BWP ID bwp{2}.Label = 'BWP 2 @ 30 kHz'; % Label for this BWP bwp{2}.SubcarrierSpacing = 30; % BWP subcarrier spacing bwp{2}.CyclicPrefix = 'Normal'; % BWP cyclic prefix for 30 kHz bwp{2}.NSizeBWP = 51; % Size of BWP in PRBs bwp{2}.NStartBWP = 40; % Position of BWP, relative to point A, in CRBs
Существует пять различных форматов PUCCH, каждого в различных целях управления. Используйте эти, специфичная для формата настройка возражает, чтобы задать последовательность экземпляров PUCCH.
Этот раздел задает набор экземпляров передачи PUCCH в форме волны при помощи массива ячеек. Каждый элемент в массиве ячеек задает последовательность экземпляров передачи PUCCH и должен быть одним из упомянутых выше объектов. Этот пример задает три последовательности PUCCH что модель три передачи UE: формат 3 PUCCH, формат 2 PUCCH и формат 0 PUCCH. Некоторые свойства, присвоенные в этом разделе только, применяются к определенным форматам PUCCH. Для списка всех свойств для определенного формата см. документацию объекта настройки PUCCH для того формата.
Общие параметры
Установите эти параметры, характерные для всех форматов, для каждой последовательности PUCCH.
Включите или отключите эту последовательность PUCCH
Задайте метку для этой последовательности PUCCH
Задайте BWP перенос PUCCH. PUCCH использует SCS, заданный для этого BWP
Степень, масштабирующаяся в дБ
pucch = {nrWavegenPUCCH3Config}; % Create a PUCCH format 3 configuration object for the first UE pucch{1}.Enable = 1; % Enable PUCCH sequence pucch{1}.Label = 'UE 1 - PUCCH Format 3 @ 15 kHz'; % Label for this PUCCH sequence pucch{1}.BandwidthPartID = 1; % BWP of PUCCH transmission pucch{1}.Power = 0; % Power scaling in dB
Установите эти специфичные для формата параметры для каждой последовательности PUCCH.
Схема Modulation.
Настройка скачкообразного движения частоты.
Блок ресурса возмещен для второго транзитного участка.
Группа, скачкообразно перемещающая настройку.
PUCCH скачкообразно двигающаяся идентичность. Значение используется в генерации последовательности для формата 0, и последовательность и генерация DM-RS для формата 1, и только для генерации DM-RS для форматов 3 и 4.
RNTI.
NID для скремблирования битов восходящей управляющей информации (UCI).
pucch{1}.Modulation = 'QPSK'; % 'pi/2-BPSK','QPSK' pucch{1}.FrequencyHopping = 'intraSlot'; % Frequency hopping configuration pucch{1}.SecondHopStartPRB = 10; % Resource block offset for second hop pucch{1}.GroupHopping = 'enable'; % Group hopping configuration pucch{1}.HoppingID = 1; % Hopping identity pucch{1}.RNTI = 11; % RNTI for the first UE pucch{1}.NID = 0; % Scrambling identity
Выделение
Этот рисунок показывает параметры, используемые в выделении PUCCH.
Можно установить эти параметры, чтобы управлять выделением PUCCH. Эти параметры относительно BWP.
Символы в пазе, выделенном каждому экземпляру PUCCH. Для форматов 0 и 2 PUCCH можно только выделить 1 или 2 символа. Для форматов 1, 3 PUCCH, и 4, необходимо выделить по крайней мере 4 символа в пазе.
Пазы в системе координат используются для последовательности PUCCH.
Период выделения в пазах. Пустой период не указывает ни на какое повторение шаблона паза.
Выделенный PRBs относительно BWP. Для форматов 0, 1, и 4, можно только выделить один PRB.
pucch{1}.SymbolAllocation = [3 11]; % First symbol and length pucch{1}.SlotAllocation = [3 4]; % Allocated slots indices for PUCCH sequence pucch{1}.Period = 6; % Allocation period in slots pucch{1}.PRBSet = 0:9; % PRB allocation
Настройка PUCCH RS DM
Можно установить эти параметры, чтобы управлять PUCCH DM-RS для каждой последовательности PUCCH.
Присутствие дополнительного DM-RS
Дополнительное повышение степени для DM-RS
pucch{1}.AdditionalDMRS = 1; % Additional DM-RS pucch{1}.DMRSPower = 1; % Additional power boosting for DM-RS in dB
Настройка полезной нагрузки UCI
Установите эти параметры для настройки полезной нагрузки UCI.
Включите или отключите кодирование UCI.
Целевая скорость кода раньше вычисляла транспортные размеры блока, когда и часть 1 UCI и часть 2 UCI присутствуют.
Количество UCI (HARQ-ACK, SR и часть 1 CSI) биты.
Количество части 2 UCI (часть 2 CSI) биты.
Источник данных для UCI и части 2 UCI. Можно использовать массив битов или одну из этих стандартных псевдошумовых последовательностей: 'PN9-ITU', 'PN9', 'PN11', 'PN15', 'PN23'. Можно задать seed для генератора как массив ячеек в форме {'PN9', seed}. Если вы не задаете seed, генератор инициализируется всеми единицами.
pucch{1}.Coding = 1; pucch{1}.TargetCodeRate = 0.15; pucch{1}.NumUCIBits = 20; pucch{1}.NumUCI2Bits = 10; pucch{1}.DataSourceUCI = 'PN9'; pucch{1}.DataSourceUCI2 = 'PN9';
Определение нескольких экземпляров PUCCH
Задайте две дополнительных последовательности PUCCH для второго BWP. Первый является форматом 2 PUCCH, который выделяется в более низком уровне второго BWP без скачкообразного движения и никакого повторения. Вторая последовательность является форматом 0 PUCCH, который выделен в части верхней части второго BWP и охарактеризован скачкообразным движением межпаза, 2 бита UCI, содержащие HARQ-ACK и один бит планирования ресурса (SR).
pucch{2} = nrWavegenPUCCH2Config; % Create a PUCCH format 2 configuration object for the second UE pucch{2}.Label = 'UE 2 - PUCCH Format 2 @ 30 kHz'; % Label for this PUCCH sequence pucch{2}.BandwidthPartID = 2; % PUCCH mapped to 2nd BWP pucch{2}.SymbolAllocation = [10 2]; % Symbol allocation pucch{2}.SlotAllocation = 0:2; % Slot allocation pucch{2}.Period = []; % Specify no repetitions of the slot pattern for this PUCCH pucch{2}.RNTI = 12; % RNTI for the second UE pucch{2}.NID0 = 0; % DM-RS scrambling identity pucch{3} = nrWavegenPUCCH0Config; % Create a PUCCH format 0 configuration object for the third UE pucch{3}.Label = 'UE 3 - PUCCH Format 0 @ 30 kHz'; % Label for this PUCCH sequence pucch{3}.BandwidthPartID = 2; % PUCCH mapped to 2nd BWP pucch{3}.SymbolAllocation = [1 2]; % Symbol allocation pucch{3}.PRBSet = 40; % PRB allocation pucch{3}.FrequencyHopping = 'interSlot'; % Frequency hopping pucch{3}.SecondHopStartPRB = 30; % Resource block offset for second hop pucch{3}.InitialCyclicShift = 3; % Initial cyclic shift pucch{3}.NumUCIBits = 2; % Number of UCI bits containing HARQ-ACK pucch{3}.DataSourceSR = 1; % SR data source
Задайте набор экземпляров PUSCH в форме волны при помощи массива ячеек. Каждый элемент в массиве ячеек nrWavegenPUSCHConfig
объекты задают последовательность экземпляров PUSCH. Отключите последовательность PUSCH в первом BWP.
pusch = {nrWavegenPUSCHConfig};
pusch{1}.Enable = 0;
pusch{1}.Label = 'PUSCH @ 15 kHz';
pusch{1}.BandwidthPartID = 1;
Задайте SRS в форме волны. Каждый элемент в массиве ячеек nrWavegenSRSConfig
объекты задают последовательность экземпляров SRS, сопоставленных с BWP. Отключите последовательность SRS в первом BWP.
srs = {nrWavegenSRSConfig};
srs{1}.Enable = 0;
srs{1}.Label = 'SRS @ 15 kHz';
srs{1}.BandwidthPartID = 1;
Присвойте весь канал и параметры сигнала к основному объекту nrULCarrierConfig
настройки несущей, затем сгенерируйте и постройте форму волны.
waveconfig.SCSCarriers = scscarriers;
waveconfig.BandwidthParts = bwp;
waveconfig.PUCCH = pucch;
waveconfig.PUSCH = pusch;
waveconfig.SRS = srs;
% Generate complex baseband waveform
[waveform,info] = nrWaveformGenerator(waveconfig);
Постройте величину основополосной формы волны.
figure; plot(abs(waveform)); title('Magnitude of 5G Uplink Baseband Waveform'); xlabel('Sample Index'); ylabel('Magnitude');
Постройте spectogram основополосной формы волны. График показывает распределение ресурсов трех последовательностей PUCCH.
Формат 3 PUCCH, в первом BWP, находится в более низкой части спектрограммы. График показывает скачкообразное движение частоты внутрипаза этого PUCCH.
Формат 2 PUCCH, во втором BWP, составляет приблизительно-10 МГц.
Формат 0 PUCCH, во втором BWP, является центральной частью спектрограммы. График показывает скачкообразное движение частоты межпаза этого PUCCH.
samplerate = info.ResourceGrids(1).Info.SampleRate; nfft = info.ResourceGrids(1).Info.Nfft; figure; spectrogram(waveform(:,1),ones(nfft,1),0,nfft,'centered',samplerate,'yaxis','MinThreshold',-130); title('Spectrogram of 5G Uplink Baseband Waveform');
Функция генератора формы волны возвращает форму волны временного интервала и структуру info
. info
структура содержит базовую сетку элемента ресурса и отказ ресурсов, которые весь PUCCH, PUSCH и экземпляры SRS используют в форме волны.
Например, отобразите высокоуровневую информацию первого PUCCH.
disp('Information associated with the first PUCCH:')
disp(info.WaveformResources.PUCCH(1))
Information associated with the first PUCCH: Name: 'UE 1 - PUCCH Format 3 @ 15 kHz' Format: 3 CDMLengths: [1 1] Resources: [1x3 struct]
ResourceGrids
поле является массивом структур, который содержит эти поля.
Сетка ресурса, соответствующая каждому BWP.
Сетка ресурса полной полосы пропускания, содержащей каналы и сигналы в каждом BWP.
Информационная структура с информацией, соответствующей каждому BWP. Например, отобразите информацию для первого BWP.
disp('Modulation information associated with BWP 1:')
disp(info.ResourceGrids(1).Info)
Modulation information associated with BWP 1: Nfft: 4096 SampleRate: 61440000 CyclicPrefixLengths: [320 288 288 288 288 288 288 320 288 288 288 ... ] SymbolLengths: [4416 4384 4384 4384 4384 4384 4384 4416 4384 ... ] Windowing: 0 SymbolPhases: [0 0 0 0 0 0 0 0 0 0 0 0 0 0] SymbolsPerSlot: 14 SlotsPerSubframe: 1 SlotsPerFrame: 10 k0: 0