5G восходящий канал NR с векторной генерацией сигналов PUCCH

В этом примере показано, как сконфигурировать и сгенерировать 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;

BWPs

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 и должен быть одним из упомянутых выше объектов. Этот пример задает три последовательности 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

Задайте набор экземпляров PUSCH в форме волны при помощи массива ячеек. Каждый элемент в массиве ячеек nrWavegenPUSCHConfig объекты задают последовательность экземпляров PUSCH. Отключите последовательность PUSCH в первом BWP.

pusch = {nrWavegenPUSCHConfig};
pusch{1}.Enable = 0;
pusch{1}.Label = 'PUSCH @ 15 kHz';
pusch{1}.BandwidthPartID = 1;

Настройка экземпляров SRS

Задайте 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

Смотрите также

Функции

Похожие темы