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

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

Введение

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

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

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

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

  • PSS и SSS

Этот пример поддерживает параметризацию и генерацию нескольких 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 = 10;                   % 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 выделения. Обратите внимание на то, что выделение находится в блоках 6 PRBs.

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

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

% CORESET/search 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];    % 6 REG sized indices, relative to BWP (RRC - frequencyDomainResources)

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

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

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

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

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

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

  • Выделенные места поиска: индексы в соответствующем CORESET, где сопоставить PDCCH

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

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

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

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

  • RNTI

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

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

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

  • DCI передают источник данных. Можно использовать одну из следующих стандартных последовательностей PN: '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).AllocatedSearchSpaces = [0,3]; % Index within the CORESET
pdcch(1).CORESET = 1;                   % Control resource set ID which carries this PDCCH
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

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

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

  • Позвольте/запретите транспортное кодирование канала DL-SCH

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

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

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

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

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

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

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.

Можно установить следующие параметры, чтобы управлять выделением 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

Второй экземпляр последовательности 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

Генерация формы волны

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

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

% 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: [1×14 double]
          SymbolLengths: [1×14 double]
           NSubcarriers: 2592
      SubcarrierSpacing: 15
         SymbolsPerSlot: 14
       SlotsPerSubframe: 1
     SymbolsPerSubframe: 14
     SamplesPerSubframe: 61440
         SubframePeriod: 1.0000e-03
              Midpoints: [1×141 double]
          WindowOverlap: [10 10 10 10 10 10 10 10 10 10 10 10 10 10]
                     k0: 0

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

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

Функции

Похожие темы