Этот пример реализует 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 может отличаться от других частей формы волны. Это задано через параметр состава блока, как задано в Разделе 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) и настройку пространства поиска PDCCH. CORESET задает возможные местоположения (вовремя и частота) канала управления для данной нумерологии. Этот пример поддерживает несколько CORESETs. Следующие параметры могут быть заданы:
Выделенные символы OFDM, которые задают первый символ каждого CORESET контролирующая возможность в пазе
Выделенные пазы в период
Периодичность выделения. Если это собирается опустеть, это не указывает ни на какое повторение
Длительность CORESET в символах, или 1, 2 или 3
Выделенные индексы физического блока ресурса (PRB) CORESET. Обратите внимание на то, что выделение частоты CORESET задано в блоках 6 PRBs, выровненных в нумерации общего блока ресурса (CRB), т.е. относительно точки A. Каждый выделил вход индекса PRB, выбирает все 6 PRBs в CRB выровненный блок, который содержит его.
Отображение CCE-to-REG, которое может быть 'чередовано' или 'нечередующееся'
Размер пакета группы элемента ресурса (REG) (L), или (2,6) или (3,6), на основе длительности CORESET
Размер Interleaver, или 2, 3, или 6
Переключите индекс, скалярное значение в области значений 0... 274
Фигура ниже показов значение некоторых параметров 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]; % 6 RB sized indices, relative to BWP (RRC - frequencyDomainResources) coreset(1).CCEREGMapping = 'noninterleaved'; % Mapping: 'interleaved' or 'noninterleaved' coreset(1).REGBundleSize = 3; % L (2,6) or (3,6) coreset(1).InterleaverSize = 2; % R (2,3,6) coreset(1).ShiftIndex = waveconfig.NCellID; % default to NCellID, else 0...274
Этот раздел задает параметры для набора экземпляров 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
Задайте 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
Этот раздел конфигурирует сигналы ссылки информации о состоянии канала (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 матрицей, где различные плоскости представляют порты антенны. Для различных физических каналов и сигналов самый низкий порт сопоставлен с первой плоскостью сетки.