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

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

Введение

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

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

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

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

  • PSS и SSS

  • RS CSI

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

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

Этот раздел устанавливает SCS определенная пропускная способность поставщика услуг в блоках ресурса, ячейке ID и длине сгенерированной формы волны в подкадрах. Можно визуализировать сгенерированные сетки ресурса путем установки DisplayGrids поле к 1. Пропускная способность канала и параметры частотного диапазона используются, чтобы отобразить связанные минимальные защитные полосы на принципиальной схеме выравнивания поставщика услуг SCS.

waveconfig = [];
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)
waveconfig.DisplayGrids = 1;       % Display the resource grids after signal generation

% 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
carriers(1).SubcarrierSpacing = 15;
carriers(1).NRB = 216;
carriers(1).RBStart = 0;

carriers(2).SubcarrierSpacing = 30;
carriers(2).NRB = 106;
carriers(2).RBStart = 1;

Пакет SS

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

% SS burst configuration
ssburst = [];
ssburst.Enable = 1;                     % Enable SS Burst
ssburst.BlockPattern = 'Case B';        % Case B (30kHz) subcarrier spacing
ssburst.SSBTransmitted = [1 1 1 1];     % Bitmap indicating blocks transmitted in a 5ms half-frame burst
ssburst.SSBPeriodicity = 20;            % SS burst set periodicity in ms (5, 10, 20, 40, 80, 160)
ssburst.FrequencySSB = 0*5000;          % Frequency offset of SS burst (Hz), relative to waveform center (multiples of 5kHz)
ssburst.Power = 0;                      % Power scaling in dB

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

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

% Bandwidth parts configurations
bwp = [];

bwp(1).SubcarrierSpacing = 15;          % BWP Subcarrier Spacing
bwp(1).CyclicPrefix = 'Normal';         % BWP Cyclic prefix for 15 kHz
bwp(1).NRB = 25;                        % Size of BWP
bwp(1).RBOffset = 12;                   % Position of BWP in SCS carrier

bwp(2).SubcarrierSpacing = 30;          % BWP Subcarrier Spacing
bwp(2).CyclicPrefix = 'Normal';         % BWP Cyclic prefix for 30 kHz
bwp(2).NRB = 50;                        % Size of BWP
bwp(2).RBOffset = 50;                   % Position of BWP in SCS carrier

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

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

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

  • Выделенные пазы в период

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

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

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

Обратите внимание на то, что этот пример только поддерживает сопоставленный CORESETs нечередующегося CCE-to-REG.

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

% CORESET/search space configurations
coreset = [];
coreset(1).AllocatedSymbols = [0,7];    % First symbol of each CORESET monitoring opportunity in a slot
coreset(1).AllocatedSlots = [0,1];      % Allocated slots within a period
coreset(1).AllocatedPeriod = 5;         % Allocated slot period (empty implies no repetition)
coreset(1).Duration = 3;                % CORESET symbol duration (1,2,3)
coreset(1).AllocatedPRB = 6*[0,1,3];    % PRB indices, relative to BWP, which select the blocks of 6 RB (RRC - frequencyDomainResources)

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

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

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

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

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

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

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

  • CORESET, который несет экземпляр PDCCH

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

  • Количество элементов канала управления (CCEs) в этом PDCCH

  • NumCCE и StartCCE укажите элементы, используемые в передаче этого PDCCH

  • RNTI

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

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

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

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

pdcch = [];
pdcch(1).Enable = 1;                    % Enable PDCCH sequence
pdcch(1).BWP = 1;                       % Bandwidth part
pdcch(1).Power = 1.1;                   % Power scaling in dB
pdcch(1).EnableCoding = 1;              % Enable DCI coding
pdcch(1).CORESET = 1;                   % Control resource set ID which carries this PDCCH
pdcch(1).AllocatedSearchSpaces = [0,3]; % Index of allocated search spaces in the CORESET monitoring sequence
pdcch(1).AllocatedPeriod = 4;           % Allocation slot period (empty implies no repetition)
pdcch(1).NumCCE = 8;                    % Number of CCE used by PDCCH
pdcch(1).StartCCE = 0;                  % Starting CCE of PDCCH
pdcch(1).RNTI = 0;                      % RNTI
pdcch(1).NID = 1;                       % PDCCH and DM-RS scrambling NID
pdcch(1).PowerDMRS = 0;                 % Additional power boosting in dB
pdcch(1).DataBlkSize = 20;              % DCI payload size
pdcch(1).DataSource = 'PN9';            % DCI data source

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

Этот раздел задает набор экземпляров PDSCH в форме волны. Каждый элемент в массиве структур задает экземпляр последовательности 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 = [];
pdsch(1).Enable = 1;                    % Enable PDSCH sequence
pdsch(1).BWP = 1;                       % Bandwidth part
pdsch(1).Power = 0;                     % Power scaling in dB
pdsch(1).EnableCoding = 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).Xoh_PDSCH = 0;                 % Rate matching overhead
pdsch(1).Modulation = 'QPSK';           % 'QPSK', '16QAM', '64QAM', '256QAM'
pdsch(1).NLayers = 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).AllocatedSymbols = 2:10;      % Range of symbols in a slot
pdsch(1).AllocatedSlots = [0:9];       % Allocated slot indices for PDSCH sequence
pdsch(1).AllocatedPeriod = 15;         % Allocation period in slots (empty implies no repetition)
pdsch(1).AllocatedPRB = [0:5, 10:20];  % PRB allocation
pdsch(1).RNTI = 0;                     % RNTI
pdsch(1).NID = 1;                      % Scrambling for data part

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

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

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

pdsch(1).RateMatch(1).CORESET = [1];                  % Rate matching pattern, defined by CORESET IDs
pdsch(1).RateMatch(1).Pattern.AllocatedPRB = [];      % Rate matching pattern, defined by set of 'bitmaps'
pdsch(1).RateMatch(1).Pattern.AllocatedSymbols = [];
pdsch(1).RateMatch(1).Pattern.AllocatedSlots = [];
pdsch(1).RateMatch(1).Pattern.AllocatedPeriod = [];

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

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

% Antenna port and DM-RS configuration (TS 38.211 section 7.4.1.1)
pdsch(1).PortSet = 0:pdsch(1).NLayers-1; % DM-RS antenna ports used
pdsch(1).PDSCHMappingType = 'A';         % PDSCH mapping type ('A'(slot-wise),'B'(non slot-wise))
pdsch(1).DMRSTypeAPosition = 2;          % Mapping type A only. First DM-RS symbol position (2,3)
pdsch(1).DMRSLength = 1;                 % Number of front-loaded DM-RS symbols (1(single symbol),2(double symbol))
pdsch(1).DMRSAdditionalPosition = 0;     % Additional DM-RS symbol positions (max range 0...3)
pdsch(1).DMRSConfigurationType = 2;      % DM-RS configuration type (1,2)
pdsch(1).NumCDMGroupsWithoutData = 0;    % CDM groups without data (max range 0...3)
pdsch(1).NIDNSCID = 1;                   % Scrambling identity (0...65535)
pdsch(1).NSCID = 0;                      % Scrambling initialization (0,1)
pdsch(1).PowerDMRS = 0;                  % Additional power boosting in dB

Настройка 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).PTRSTimeDensity = 1;       % Time density (L_PT-RS) of PT-RS (1,2,4)
pdsch(1).PTRSFrequencyDensity = 2;  % Frequency density (K_PT-RS) of PT-RS (2,4)
pdsch(1).PTRSREOffset = '00';       % PT-RS resource element offset ('00','01','10','11')
pdsch(1).PTRSPortSet = 0;           % PT-RS antenna ports must be a subset of DM-RS ports
pdsch(1).PowerPTRS = 0;             % Additional PT-RS power boosting in dB

% 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).BWP = 2;                           % PDSCH mapped to 2nd BWP
pdsch(2).AllocatedSymbols = 0:11;
pdsch(2).AllocatedSlots = [2:4,6:20];
pdsch(2).AllocatedPRB = [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(1).Enable = 0;
csirs(1).BWP = 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... 2169)

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

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

  • Периодичность выделения ресурса (ресурсов) 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).AllocatedSlots = {[0 2],[2 3]};
csirs(1).AllocatedPeriod = {[],5};
csirs(1).NID = 5;

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

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

csirs(2).Enable = 0;
csirs(2).BWP = 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).AllocatedSlots = {[0,1],[0,1]};
csirs(2).AllocatedPeriod = {10,10};
csirs(2).NID = 0;

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

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

% Collect together channel oriented parameter sets into a single
% configuration
waveconfig.SSBurst = ssburst;
waveconfig.Carriers = carriers;
waveconfig.BWP = bwp;
waveconfig.CORESET = coreset;
waveconfig.PDCCH = pdcch;
waveconfig.PDSCH = pdsch;
waveconfig.CSIRS = csirs;

% Generate complex baseband waveform
[waveform,bwpset] = hNRDownlinkWaveformGenerator(waveconfig);

Генератор формы волны также строит сетки ресурса для частей пропускной способности (этим управляет поле DisplayGrids в настройке поставщика услуг). Следующие графики сгенерированы:

  • SCS определенные сетки ресурса поставщика услуг, наряду с минимальными защитными полосами, выровненными относительно полной пропускной способности канала.

  • Сетки ресурса, показывающие местоположение компонентов (PDCCH, PDSCH и CORESET) в каждом BWP. Это не строит степень сигналов, только их местоположение в сетке.

  • Сгенерированная форма волны в частотном диапазоне для каждого BWP. Это включает PDCCH и экземпляры PDSCH.

Обратите внимание на то, что ни одна из этих сеток ресурса не включает пакет SS, который независим от BWPs.

Функция генератора формы волны возвращает форму волны области времени и массив структур bwpset, который содержит следующие поля:

  • Сетка ресурса, соответствующая этому BWP

  • Сетка ресурса полной пропускной способности, содержащей каналы и сигналы в этом BWP

  • Информационная структура с информацией, соответствующей BWP. Содержимое этой информационной структуры для первого BWP показывают ниже.

disp('Information associated to BWP 1:')
disp(bwpset(1).Info)
Information associated to BWP 1:
           SamplingRate: 61440000
                   Nfft: 4096
              Windowing: 10
    CyclicPrefixLengths: [1x14 double]
          SymbolLengths: [1x14 double]
           NSubcarriers: 2592
      SubcarrierSpacing: 15
         SymbolsPerSlot: 14
       SlotsPerSubframe: 1
     SymbolsPerSubframe: 14
     SamplesPerSubframe: 61440
         SubframePeriod: 1.0000e-03
              Midpoints: [1x141 double]
          WindowOverlap: [10 10 10 10 10 10 10 10 10 10 10 10 10 10]
                     k0: 0

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

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

Функции

Похожие темы