Этот пример реализует 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 может отличаться от других частей формы волны. Это задано через параметр состава блока, как задано в Разделе 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) и настройку пространства поиска 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
Задайте 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
Задайте 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 матрицей, где различные плоскости представляют порты антенны. Для различных физических каналов и сигналов самый низкий порт сопоставлен с первой плоскостью сетки.