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

В этом примере показано, как использовать 5G, NR передает в нисходящем направлении генератор формы волны поставщика услуг, чтобы создать основополосную форму волны поставщика услуг компонента.

Введение

В этом примере показано, как параметрировать и сгенерировать форму волны нисходящего канала Нового радио (NR) 5G с помощью nrWaveformGenerator. Следующие каналы и сигналы могут быть сгенерированы:

  • PDSCH и его связанный DM-RS и PT-RS

  • PDCCH и его связанный DM-RS

  • PBCH и его связанный DM-RS

  • PSS и SSS

  • RS CSI

Этот пример поддерживает параметризацию и генерацию нескольких SCS определенные поставщики услуг и несколько частей пропускной способности (BWP). Несколько экземпляров PDSCH и каналов PDCCH могут быть сгенерированы по различному BWPs. Наборы CORESETs и контрольных возможностей пространства поиска могут быть сконфигурированы для отображения PDCCHs. Обратите внимание на то, что никакое предварительное кодирование не применяется к физическим каналам и сигналам в этом примере.

Форма волны и настройка поставщика услуг

Основополосная форма волны параметрируется nrDLCarrierConfig возразите и набор дополнительных объектов, сопоставленных с его каналами и сигналами. Этот раздел устанавливает SCS определенная пропускная способность поставщика услуг в блоках ресурса, ячейке ID и длине сгенерированной формы волны в подкадрах. Можно управлять пропускной способностью поставщика услуг SCS и защитными полосами с помощью NStartGrid и NSizeGrid параметры.

waveconfig = nrDLCarrierConfig();  % Create an instance of the waveform's parameter object
waveconfig.NCellID = 0;            % Cell identity
waveconfig.ChannelBandwidth = 40;  % Channel bandwidth (MHz)
waveconfig.FrequencyRange = 'FR1'; % 'FR1' or 'FR2'
waveconfig.NumSubframes = 10;      % Number of 1ms subframes in generated waveform (1,2,4,8 slots per 1ms subframe, depending on SCS)

% 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;

Пакет SS

В этом разделе можно установить параметры для пакета SS. Нумерология пакета SS может отличаться от других частей формы волны. Это задано через параметр состава блока, как задано в Разделе TS 38.213 4.1. Битовый массив используется, чтобы задать, какие блоки передаются в пакете полусистемы координат на 5 мс. Периодичность в миллисекундах и степени пакета может также быть установлена здесь. Другие SS разрываются, параметры, не показанные здесь, могут также быть установлены. Поскольку полный список видит справку для nrWavegenSSBurstConfig.

% SS burst configuration
ssburst = nrWavegenSSBurstConfig();
ssburst.Enable = 1;                     % Enable SS Burst
ssburst.Power = 0;                      % Power scaling in dB
ssburst.BlockPattern = 'Case B';        % Case B (30kHz) subcarrier spacing
ssburst.TransmittedBlocks = [1 1 1 1];  % Bitmap indicating blocks transmitted in a 5ms half-frame burst
ssburst.Period = 20;                    % SS burst set periodicity in ms (5, 10, 20, 40, 80, 160)
ssburst.NCRBSSB = [];                   % Frequency offset of SS burst (CRB), use [] for the waveform center

Части пропускной способности

BWP формируется набором непрерывных ресурсов, совместно использующих нумерологию на данном поставщике услуг. Этот пример поддерживает использование нескольких BWPs использование массива ячеек. Каждая запись в массиве представляет BWP. Для каждого BWP можно задать разрядку поднесущей (SCS), длина циклического префикса (CP) и пропускная способность. SubcarrierSpacing параметр сопоставляет BWP с одним из SCS определенные поставщики услуг, заданные ранее. NStartBWP параметр управляет местоположением BWP в поставщике услуг относительно точки A. Это описывается в терминах нумерологии BWP. Различный BWPs может перекрыться друг с другом.

% Bandwidth parts configurations
bwp = {nrWavegenBWPConfig(),nrWavegenBWPConfig()};
bwp{1}.BandwidthPartID = 1;        % Bandwidth part ID
bwp{1}.SubcarrierSpacing = 15;     % BWP subcarrier spacing
bwp{1}.CyclicPrefix = 'Normal';    % BWP cyclic prefix for 15 kHz
bwp{1}.NSizeBWP = 25;              % Size of BWP
bwp{1}.NStartBWP = 12;             % Position of BWP, relative to point A (i.e. CRB)

bwp{2}.BandwidthPartID = 2;        % Bandwidth part ID
bwp{2}.SubcarrierSpacing = 30;     % BWP subcarrier spacing
bwp{2}.CyclicPrefix = 'Normal';    % BWP cyclic prefix for 30 kHz
bwp{2}.NSizeBWP = 50;              % Size of BWP
bwp{2}.NStartBWP = 51;             % Position of BWP, relative to point A (i.e. CRB)

CORESET и настройка пространства поиска

Параметры в этом разделе задают набор ресурсов управления (CORESET) и настройку пространства поиска PDCCH. CORESET и пространства поиска задают возможные местоположения (вовремя и частота) передач канала управления для данной нумерологии. Генератор поддерживает несколько CORESETs и пространства поиска. Следующие параметры могут быть заданы:

  • Символы OFDM, которые задают первый символ каждого CORESET контролирующая возможность в пазе

  • Длительность блока выделенных пазов в период

  • Периодичность шаблона выделения

  • Длительность CORESET в символах, или 1, 2 или 3

  • Битовый массив, задающий выделенные физические блоки ресурса (PRB) CORESET. Обратите внимание на то, что выделение частоты CORESET задано в блоках 6 PRBs, выровненных в нумерации общего блока ресурса (CRB), i.e. относительно точки A. Каждый бит в битовом массиве выбирает все 6 PRBs в CRB выровненный блок, который содержит его.

  • Отображение CCE-to-REG, которое может быть 'чередовано' или 'нечередующееся'

  • Размер пакета группы элемента ресурса (REG) (L), или (2,6) или (3,6), на основе длительности CORESET

  • Размер Interleaver, или 2, 3, или 6

  • Переключите индекс, скалярное значение в области значений 0... 274

Фигура ниже показов значение некоторых параметров CORESET.

% CORESET and search space configurations
coresets = {nrCORESETConfig()};
coresets{1}.CORESETID = 1;                      % CORESET ID
coresets{1}.Duration = 3;                       % CORESET symbol duration (1,2,3)
coresets{1}.FrequencyResources = [1 1 0 1];     % Bitmap indicating blocks of 6 PRB for CORESET (RRC - frequencyDomainResources)
coresets{1}.CCEREGMapping = 'noninterleaved';   % Mapping: 'interleaved' or 'noninterleaved'
coresets{1}.REGBundleSize = 3;                  % L (2,6) or (3,6)
coresets{1}.InterleaverSize = 2;                % R (2,3,6)
coresets{1}.ShiftIndex = waveconfig.NCellID;    % Set to NCellID

searchspaces = {nrSearchSpaceConfig()};
searchspaces{1}.SearchSpaceID = 1;              % Search space ID
searchspaces{1}.CORESETID = 1;                  % CORESET associated with this search space
searchspaces{1}.SearchSpaceType = 'ue';         % Search space type, 'ue' or 'common'
searchspaces{1}.SlotPeriodAndOffset = [5,0];    % Allocated slot period and slot offset of search space pattern
searchspaces{1}.Duration = 2;                   % Number of slots in the block of slots in pattern period
searchspaces{1}.StartSymbolWithinSlot = 0;      % First symbol of each CORESET monitoring opportunity in a slot
searchspaces{1}.NumCandidates = [8 8 4 2 0];    % Number of candidates at each AL (set to 0 if the AL doesn't fit in CORESET)

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

Этот раздел задает параметры для набора экземпляров PDCCH в форме волны. Каждый элемент в массиве структур задает экземпляр последовательности PDCCH. Следующие параметры могут быть установлены:

  • Позвольте/запретите последовательность PDCCH

  • Задайте BWP перенос PDCCH

  • Степень экземпляра PDCCH в дБ

  • Позвольте/запретите кодирование канала DCI

  • Выделенные места поиска в CORESET контролирующая последовательность случая

  • Пространство поиска (и CORESET), который несет экземпляры PDCCH

  • Периодичность выделения. Если это собирается опустеть, это не указывает ни на какое повторение

  • Уровень агрегации (AL) PDCCH (количество элементов канала управления (CCEs))

  • Выделенный кандидат, который задает CCE, используемый для передачи PDCCH

  • RNTI

  • Скремблирование NID для этого PDCCH и его связанного DM-RS

  • Повышение степени DM-RS

  • DCI передают размер полезной нагрузки

  • DCI передают источник данных. Можно использовать массив битов или одну из следующих стандартных псевдошумовых последовательностей: 'PN9-ITU', 'PN9', 'PN11', 'PN15', 'PN23'. Seed для генератора может быть задан с помощью массива ячеек в форме {'PN9',seed}. Если никакой seed не задан, генератор инициализируется всеми единицами

pdcch = {nrWavegenPDCCHConfig()};
pdcch{1}.Enable = 1 ;                  % Enable PDCCH sequence
pdcch{1}.Power = 1.1;                  % Power scaling in dB
pdcch{1}.Coding = 1;                   % Enable DCI coding
pdcch{1}.BandwidthPartID = 1;          % Bandwidth part
pdcch{1}.SearchSpaceID = 1;            % Search space
pdcch{1}.SlotAllocation = 0;           % Slots used with period
pdcch{1}.Period = 5;                   % Period of transmission pattern
pdcch{1}.AggregationLevel = 8;         % Aggregation level (1,2,4,8,16 CCEs)
pdcch{1}.AllocatedCandidate = 1;       % PDCCH candidate in search space (1 based)
pdcch{1}.RNTI = 0;                     % RNTI
pdcch{1}.DMRSScramblingID = 1;         % PDCCH and DM-RS scrambling NID
pdcch{1}.DMRSPower = 0;                % Additional power boosting in dB
pdcch{1}.DataBlockSize = 20;           % DCI payload size
pdcch{1}.DataSource = 'PN9';           % DCI data source

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

Этот раздел задает набор экземпляров PDSCH в форме волны. Каждый элемент в массиве ячеек nrWavegenPDSCHConfig задает экземпляр последовательности PDSCH. Этот пример задает два экземпляра последовательности PDSCH.

Общие параметры

Установите эти параметры для каждого экземпляра последовательности PDSCH:

  • Включите или отключите эту последовательность PDSCH

  • Задайте BWP перенос PDSCH. PDSCH будет использовать SCS, заданный для этого BWP

  • Степень, масштабирующаяся в дБ

  • Включите или отключите транспортное кодирование канала DL-SCH

  • Транспортный источник данных блока. Можно использовать массив битов или одну из следующих стандартных псевдошумовых последовательностей: 'PN9-ITU', 'PN9', 'PN11', 'PN15', 'PN23'. Seed для генератора может быть задан с помощью массива ячеек в форме {'PN9', seed}. Если никакой seed не задан, генератор инициализируется всеми единицами

  • Целевой уровень кода раньше вычислял транспортные размеры блока

  • Служебный параметр

  • Модуляция символа

  • Количество слоев

  • Последовательность версии сокращения (RV)

  • Включите или отключите перемежение виртуального к физическому отображению блока ресурса. Если этот параметр не задан, прямое, нечередующееся отображение рассматривается

  • Свяжите размер для чередованной карты, заданной более высоким параметром слоя vrb-ToPRB-Interleaver. Если этот параметр не задан, размер пакета установлен в 2

pdsch = {nrWavegenPDSCHConfig()};
pdsch{1}.Enable = 1;                    % Enable PDSCH sequence
pdsch{1}.BandwidthPartID = 1;           % Bandwidth part of PDSCH transmission
pdsch{1}.Power  = 0;                    % Power scaling in dB
pdsch{1}.Coding = 1;                    % Enable DL-SCH transport channel coding
pdsch{1}.DataSource = 'PN9';            % Channel data source
pdsch{1}.TargetCodeRate = 0.4785;       % Code rate used to calculate transport block sizes
pdsch{1}.XOverhead = 0;                 % Rate matching overhead
pdsch{1}.Modulation = 'QPSK';           % 'QPSK', '16QAM', '64QAM', '256QAM'
pdsch{1}.NumLayers = 2;                 % Number of PDSCH layers
pdsch{1}.RVSequence = [0,2,3,1];        % RV sequence to be applied cyclically across the PDSCH allocation sequence
pdsch{1}.VRBToPRBInterleaving = 0;      % Disable interleaved resource mapping
pdsch{1}.VRBBundleSize = 2;             % vrb-ToPRB-Interleaver parameter

Выделение

Следующая схема представляет некоторые параметры, используемые в выделении PDSCH.

Можно установить следующие параметры, чтобы управлять выделением PDSCH. Обратите внимание на то, что эти параметры относительно BWP. Заданное выделение PDSCH избежит местоположений, используемых для пакета SS.

  • Символы в пазе, выделенном каждому экземпляру PDSCH

  • Пазы в системе координат используются для последовательности PDSCH

  • Период выделения в пазах. Если это пусто, это не указывает ни на какое повторение

  • Выделенные PRBs относительно BWP

  • RNTI. Это значение используется, чтобы соединить PDSCH с экземпляром PDCCH

  • NID для скремблирования битов PDSCH

pdsch{1}.SymbolAllocation = [2,9];    % First symbol and length
pdsch{1}.SlotAllocation = 0:9;        % Allocated slot indices for PDSCH sequence
pdsch{1}.Period = 15;                 % Allocation period in slots
pdsch{1}.PRBSet = [0:5, 10:20];       % PRB allocation
pdsch{1}.RNTI = 0;                    % RNTI
pdsch{1}.NID = 1;                     % Scrambling for data part

CORESETs и наборы PRB могут быть заданы для уровня, соответствующего вокруг при необходимости

  • PDSCH может быть уровнем, соответствующим вокруг одного или нескольких CORESETs

  • PDSCH может быть уровнем, соответствующим вокруг других выделений ресурса

pdsch{1}.ReservedCORESET = 1;           % Rate matching pattern, defined by CORESET IDs
pdsch{1}.ReservedPRB{1}.PRBSet = [];    % Rate matching pattern, defined by set of PRB (RRC 'bitmaps')
pdsch{1}.ReservedPRB{1}.SymbolSet = [];
pdsch{1}.ReservedPRB{1}.Period = [];

Настройка PDSCH RS DM

Установите параметры DM-RS

% Antenna port and DM-RS configuration (TS 38.211 section 7.4.1.1)
pdsch{1}.MappingType = 'A';                % PDSCH mapping type ('A'(slot-wise),'B'(non slot-wise))
pdsch{1}.DMRSPower = 0;                    % Additional power boosting in dB

pdsch{1}.DMRS.DMRSPortSet = [] ;           % DM-RS antenna ports used ([] gives port numbers 0:NumLayers-1)
pdsch{1}.DMRS.DMRSTypeAPosition = 2;       % Mapping type A only. First DM-RS symbol position (2,3)
pdsch{1}.DMRS.DMRSLength = 1;              % Number of front-loaded DM-RS symbols (1(single symbol),2(double symbol))
pdsch{1}.DMRS.DMRSAdditionalPosition = 0;  % Additional DM-RS symbol positions (max range 0...3)
pdsch{1}.DMRS.DMRSConfigurationType = 2;   % DM-RS configuration type (1,2)
pdsch{1}.DMRS.NumCDMGroupsWithoutData = 1; % CDM groups without data (max range 1...3)
pdsch{1}.DMRS.NIDNSCID = 1;                % Scrambling identity (0...65535)
pdsch{1}.DMRS.NSCID = 0;                   % Scrambling initialization (0,1)

Настройка PDSCH PT-RS

Установите параметры PT-RS

% PT-RS configuration (TS 38.211 section 7.4.1.2)
pdsch{1}.EnablePTRS = 0;             % Enable or disable the PT-RS (1 or 0)
pdsch{1}.PTRSPower = 0;              % Additional PT-RS power boosting in dB

pdsch{1}.PTRS.TimeDensity = 1;       % Time density (L_PT-RS) of PT-RS (1,2,4)
pdsch{1}.PTRS.FrequencyDensity = 2;  % Frequency density (K_PT-RS) of PT-RS (2,4)
pdsch{1}.PTRS.REOffset = '00';       % PT-RS resource element offset ('00','01','10','11')
pdsch{1}.PTRS.PTRSPortSet = 0;       % PT-RS antenna ports must be a subset of DM-RS ports

% When PT-RS is enabled, the DM-RS ports must be in range 0 to 3 for DM-RS
% configuration type 1 and in range 0 to 5 for DM-RS configuration type 2.
% Nominally the antenna port of PT-RS is the lowest DM-RS port number.

Определение нескольких экземпляров PDSCH

Второй экземпляр последовательности PDSCH задан затем с помощью второго BWP.

pdsch{2} = pdsch{1};
pdsch{2}.Enable = 1;
pdsch{2}.BandwidthPartID = 2;          % PDSCH mapped to 2nd BWP
pdsch{2}.SymbolAllocation = [0,12];
pdsch{2}.SlotAllocation = [2:4,6:20];
pdsch{2}.PRBSet  = [25:30, 35:38];     % PRB allocation, relative to BWP

RS CSI

Этот раздел конфигурирует опорные сигналы информации о состоянии канала (CSI-RS) в форме волны. Каждый элемент в массиве ячеек представляет набор ресурсов CSI-RS, сопоставленных с BWP.

Общие параметры

Установите эти параметры для набора ресурсов CSI-RS:

  • Включите или отключите этот набор ресурсов CSI-RS

  • Задайте BWP, несущий этот набор ресурсов CSI-RS. Настройка ресурса (ресурсов) CSI-RS будет использовать SCS, заданный для этого BWP

  • Задайте степень, масштабирующуюся в дБ. Обеспечение скаляра задает степень, масштабирующуюся для одного ресурса CSI-RS, или все сконфигурировали ресурсы CSI-RS. Обеспечение вектора задает отдельный уровень мощности для каждого из ресурсов CSI-RS.

csirs = {nrWavegenCSIRSConfig()};
csirs{1}.Enable = 0;
csirs{1}.BandwidthPartID = 1;
csirs{1}.Power = 3;    % in dB

Настройка CSI-RS

Можно сконфигурировать следующие параметры для одного или нескольких нулевая степень (ZP) или "не обнуляют степень" (NZP) настройки ресурса CSI-RS.

  • Тип ресурса (ресурсов) CSI-RS ('nzp', 'zp')

  • Номер строки соответствует ресурсу (ресурсам) CSI-RS, как задано в таблице 7.4.1.5.3-1 TS 38.211 (1... 18)

  • Плотность частоты ресурса (ресурсов) CSI-RS ('один', 'три', 'dot5even', 'dot5odd')

  • Местоположения поднесущей ресурса (ресурсов) CSI-RS в блоке ресурса (RB)

  • Количество RBS выделило ресурсу (ресурсам) CSI-RS (1... 275)

  • Запуск индекса RB выделения ресурса (ресурсов) CSI-RS относительно сетки ресурса поставщика услуг (0... 274)

  • Местоположения символа OFDM ресурса (ресурсов) CSI-RS в пазе

  • Период и смещение пазов (на основе 0) из ресурса (ресурсов) CSI-RS. Этот параметр может быть вектором или массивом ячеек векторов. В последнем случае каждая ячейка соответствует отдельному ресурсу CSI-RS. В случае вектора тот же набор пазов используется для всех ресурсов CSI-RS

  • Скремблирование идентичности соответствует ресурсу (ресурсам) CSI-RS для псевдослучайной генерации последовательности (0... 1023)

csirs{1}.CSIRSType = {'nzp','zp'};
csirs{1}.RowNumber = [3 5];
csirs{1}.Density = {'one','one'};
csirs{1}.SubcarrierLocations = {6,4};
csirs{1}.NumRB = 25;
csirs{1}.RBOffset = 12;
csirs{1}.SymbolLocations = {13,9};
csirs{1}.CSIRSPeriod = {[5 0],[5 0]};
csirs{1}.NID = 5;

Определение нескольких экземпляров CSI-RS

Набор ресурсов CSI-RS сопоставлен со вторым BWP.

csirs{2} = nrWavegenCSIRSConfig();
csirs{2}.Enable = 0;
csirs{2}.BandwidthPartID = 2;
csirs{2}.Power = 3; % in dB
csirs{2}.CSIRSType = {'nzp','nzp'};
csirs{2}.RowNumber = [1 1];
csirs{2}.Density = {'three','three'};
csirs{2}.SubcarrierLocations = {0,0};
csirs{2}.NumRB = 50;
csirs{2}.RBOffset = 50;
csirs{2}.SymbolLocations = {6,10};
csirs{2}.CSIRSPeriod = {[10,1],[10,1]};
csirs{2}.NID = 0;

Генерация сигналов

Этот раздел присваивает весь канал и параметры сигнала в основной объект nrDLCarrierConfig настройки поставщика услуг, затем генерирует и строит форму волны.

waveconfig.SSBurst = ssburst;
waveconfig.SCSCarriers = scscarriers;
waveconfig.BandwidthParts = bwp;
waveconfig.CORESET = coresets;
waveconfig.SearchSpaces = searchspaces;
waveconfig.PDCCH = pdcch;
waveconfig.PDSCH = pdsch;
waveconfig.CSIRS = csirs;

[waveform,info] = nrWaveformGenerator(waveconfig);

% Plot the magnitude of the baseband waveform for the set of antenna ports defined
figure;
plot(abs(waveform));
title('Magnitude of 5G Downlink Baseband Waveform');
xlabel('Sample Index');
ylabel('Magnitude');

% Plot spectogram of waveform for first antenna port
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 Downlink Baseband Waveform');

Функция генератора формы волны возвращает форму волны области времени и структуру info который содержит базовую сетку элемента ресурса и отказ ресурсов, используемых всем PDSCH и экземплярами PDCCH в форме волны.

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: [1x14 double]
          SymbolLengths: [1x14 double]
              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

Обратите внимание на то, что сгенерированная сетка ресурса является 3D матрицей, где различные плоскости представляют порты антенны. Для различных физических каналов и сигналов самый низкий порт сопоставлен с первой плоскостью сетки.

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

Функции

Похожие темы