В этом примере показано, как сконфигурировать 5G физический канал произвольного доступа (PRACH) New Radio (NR), как определено в разделах 5.3.2 и 6.3.3 TS 38.211 [1]. Вы можете узнать о временных ресурсах PRACH, их связи с преамбулами PRACH и узнать, как сгенерировать преамбулы PRACH без необходимости поиска таблиц строения. Этот пример также показывает, как сопоставить символы PRACH с ресурсной сеткой и как сгенерировать форму волны во временной области для одной преамбулы PRACH.
В таблице 6.3.3.2-1 в TS 38.211 перечислены поддерживаемые комбинации интервалов между поднесущими для PRACH и физического восходящего общего канала (PUSCH) во время начального доступа. Получить доступ к этой таблице можно непосредственно из объекта строения PRACH.
disp(nrPRACHConfig.Tables.SupportedSCSCombinations)
LRA PRACHSubcarrierSpacing PUSCHSubcarrierSpacing NRBAllocation kbar ___ ______________________ ______________________ _____________ ____ 839 1.25 15 6 7 839 1.25 30 3 1 839 1.25 60 2 133 839 5 15 24 12 839 5 30 12 10 839 5 60 6 7 139 15 15 12 2 139 15 30 6 2 139 15 60 3 2 139 30 15 24 2 139 30 30 12 2 139 30 60 6 2 139 60 60 12 2 139 60 120 6 2 139 120 60 24 2 139 120 120 12 2
Блок 1 (SIB1) системной информации содержит информационный элемент управления радиоресурсами (RRC) UplinkConfigCommonSIB (TS 38.331, раздел 6.3.2 [2]), который определяет интервал между поднесущими для PUSCH. Пользовательское оборудование (UE) нуждается в этой информации, чтобы передать преамбулу PRACH во время процедуры произвольного доступа.
Поскольку PUSCH не определен в передаче преамбулы PRACH, чтобы сконфигурировать интервалы между поднесущими PUSCH и размерности частотного диапазона ресурсной сетки, используйте nrCarrierConfig
объект.
carrier = nrCarrierConfig;
carrier.SubcarrierSpacing = 15; % Subcarrier spacing in kHz (15, 30, 60, 120)
Поскольку преамбула PRACH модулируется относительно несущей, изменение интервала между несущими приводит к другой форме волны PRACH. Чтобы увидеть, как другая несущая влияет на сгенерированную форму волны, проверьте Information associated with PRACH OFDM modulation
выход для нескольких несущих в разделе Generate Waveform for Single PRACH Preamble,.
Можно сконфигурировать параметры PRACH, задав значения свойств nrPRACHConfig
объект. Согласно TS 38.211, не все комбинации параметров PRACH действительны. Для получения дополнительной информации о том, как свойства nrPRACHConfig
отражают эти ограничения, см. nrPRACHConfig
.
prach = nrPRACHConfig; prach.FrequencyRange = 'FR1'; % Frequency range ('FR1', 'FR2') prach.DuplexMode = 'FDD'; % Duplex mode ('FDD', 'TDD', 'SUL') prach.ConfigurationIndex = 27; % Configuration index (0...255). This value is automatically updated in the next section. prach.SubcarrierSpacing = 15; % Subcarrier spacing in kHz (1.25, 5, 15, 30, 60, 120) prach.SequenceIndex = 0; % Logical root sequence index (0...837) prach.PreambleIndex = 0; % Scalar preamble index within the cell (0...63) prach.RestrictedSet = 'UnrestrictedSet'; % Type of restricted set ('UnrestrictedSet','RestrictedSetTypeA','RestrictedSetTypeB') prach.ZeroCorrelationZone = 0; % Cyclic shift configuration index (0...15) prach.RBOffset = 0; % Starting resource block index of the initial uplink bandwidth part (BWP) relative to carrier resource grid (0...274) prach.FrequencyStart = 0; % Frequency offset of lowest PRACH transmission occasion in frequency domain with respect to physical resource block 0 of the initial uplink BWP (0...274) prach.FrequencyIndex = 0; % Index of the PRACH transmission occasions in frequency domain (0...7) prach.TimeIndex = 0; % Index of the PRACH transmission occasions in time domain (0...6) % For formats B2 and B3, this value is automatically updated in the next section. prach.ActivePRACHSlot = 0; % Active PRACH slot number within a subframe or a 60 kHz slot (0,1) prach.NPRACHSlot = 0; % PRACH slot number
The ConfigurationIndex
и TimeIndex
свойства зависят от формата PRACH. The SubcarrierSpacing
, ActivePRACHSlot
, и NPRACHSlot
свойства определяют, является ли преамбула PRACH активной. В следующих двух разделах обсуждается, как задать эти свойства.
ConfigurationIndex
На основе предпочтительного форматаТаблицы 6.3.3.2-2 - 6.3.3.2-4 в ТУ 38.211 определяют все возможные строения PRACH во временном интервале. Комбинация частотной области значений и дуплексного режима определяет, какую таблицу строения использовать. Допустимые комбинации:
FR1 и FDD (парный спектр): Таблица 6.3.3.2-2
FR1 и SUL (дополнительный восходящий канал): таблица 6.3.3.2-2
FR1 и TDD (непарный спектр): таблица 6.3.3.2-3
FR2 и TDD (непарный спектр): Таблица 6.3.3.2-4
Для получения дополнительной информации о том, как парные и непарные спектры относятся к дуплексному режиму, см. поле FDD-OrSUL информационного элемента RRC FrequencyInfoUL в TS 38.331 Раздел 6.3.2.
Доступ к этим таблицам строения можно получить через Tables
свойство nrPRACHConfig
объект. Для примера:
nrPRACHConfig.Tables.ConfigurationsFR1PairedSUL % TS 38.211 Table 6.3.3.2-2 nrPRACHConfig.Tables.ConfigurationsFR1Unpaired % TS 38.211 Table 6.3.3.2-3 nrPRACHConfig.Tables.ConfigurationsFR2 % TS 38.211 Table 6.3.3.2-4
TS 38.211 задает 13 форматов PRACH и классифицирует их как длинные или короткие преамбулы. Длинные преамбулы имеют последовательность длин , в то время как короткие преамбулы имеют последовательность длин . Форматы, сопоставленные с длинными преамбулами: 0, 1, 2, 3. Форматы, связанные с короткими преамбулами: A1, A2, A3, B1, B2, B3, B4, C0, C2, включая смешанные форматы A1/B1, A2/B2 и A3/B3.
Индексы строения в таблицах 6.3.3.2-2 - 6.3.3.2-4 определяют временные ресурсы, в которых может передаваться каждый формат преамбулы. Каждый формат преамбулы связан с несколькими индексами строения. Формат PRACH можно выбрать без необходимости поиска таблиц строения путем установки значения ConfigurationIndex
на основе предпочтительного формата. Это значение соответствует наибольшей области значений временных ресурсов, в котором вы можете передать предпочтительный формат преамбулы.
format = 'B2'; % PRACH preamble format ('0','1','2','3','A1','A2','A3','B1','B2','B3','B4','C0','C2')
Выберите таблицу строения на основе FrequencyRange
и DuplexMode
.
if strcmpi(prach.FrequencyRange,'FR1') if strcmpi(prach.DuplexMode,'TDD') % TS 38.211 Table 6.3.3.2-3 configTable = nrPRACHConfig.Tables.ConfigurationsFR1Unpaired; else % TS 38.211 Table 6.3.3.2-2 configTable = nrPRACHConfig.Tables.ConfigurationsFR1PairedSUL; end else % TS 38.211 Table 6.3.3.2-4 configTable = nrPRACHConfig.Tables.ConfigurationsFR2; end
Среди всех строений, соответствующих одному и тому же короткому формату преамбулы в таблице 6.3.3.2-2, вторые и последние строения имеют наибольшее количество временных ресурсов для передачи преамбулы PRACH. Во всех остальных случаях, включая смешанные форматы в таблице 6.3.3.2-2, последнее строение имеет наибольшее количество временных ресурсов для передачи преамбулы PRACH. Этот пример использует эту информацию, чтобы задать значение ConfigurationIndex
свойство. Если вы выбираете формат B2 или B3, этот пример устанавливает максимальное значение TimeIndex
.
if strcmpi(prach.FrequencyRange,'FR1') && strcmpi(prach.DuplexMode,'FDD') && ... any(strcmpi(format,{'A1','A2','A3','B1','B4','C0','C2'})) prach.ConfigurationIndex = find(strcmpi(configTable.PreambleFormat,format),1,'last') - 2; else if ~any(strcmpi(format,{'B2','B3'})) prach.ConfigurationIndex = find(strcmpi(configTable.PreambleFormat,format),1,'last') - 1; else % Format B2 and B3 only appear in mixed formats, so select an % appropriate mixed format and set the maximum value of TimeIndex prach.ConfigurationIndex = find(endsWith(configTable.PreambleFormat,format),1,'last') - 1; prach.TimeIndex = prach.NumTimeOccasions - 1; end end
SubcarrierSpacing
, ActivePRACHSlot
, и NPRACHSlot
Чтобы сгенерировать активную преамбулу PRACHВ таблицах 6.3.3.2-2 - 6.3.3.2-4 в TS 38.211 описывается, какой паз PRACH соответствует активной преамбуле PRACH. Третий и четвертый столбцы этих таблиц представляют номера системных систем координат, которые соответствуют активной преамбуле PRACH. В зависимости от выбранной частотной области значений, FR1 или FR2, пятый столбец представляет номера пазов для 15 кГц или 60 кГц, соответственно, соответствующих активной преамбуле PRACH. Если преамбула PRACH не активна в текущих временных ресурсах, то передача времени невозможна.
Для примера выбранное строение PRACH активно в любой системной системе координат и подрамнике, если интервал между поднесущими PRACH установлен на 15 кГц, как показано в таблице 6.3.3.2-2.
disp(configTable(prach.ConfigurationIndex+1,:))
ConfigurationIndex PreambleFormat x y SubframeNumber StartingSymbol PRACHSlotsPerSubframe NumTimeOccasions PRACHDuration __________________ ______________ _ _____ _______________________ ______________ _____________________ ________________ _____________ 146 {'A2/B2'} 1 {[0]} {[0 1 2 3 4 5 6 7 8 9]} 0 2 3 4
Чтобы убедиться, что преамбула PRACH активна в текущем пазе, проверьте prachSymbols
выход nrPRACH
функция. Этот выход пуст, если преамбула PRACH не активна в текущем пазе. Чтобы сгенерировать активную преамбулу PRACH, закольцовывайте значения NPRACHSlot
свойство до prachSymbols
становится непустым.
Случаи, представленные в этом разделе, показывают, как проверить, является ли текущая короткая преамбула PRACH активной. В обоих случаях рассматривается краткий формат преамбулы PRACH B2. Если вы измените формат, преамбула PRACH может быть активной для значений NPRACHSlot
и ActivePRACHSlot
свойства, отличные от показанных в этом примере.
Случай 1: Типичное строение интервалов между поднесущими PRACH
Установите преамбулу PRACH для выбранного формата с типичным строением интервалов между поднесущими. Этот пример рассматривает интервал между поднесущими 15 кГц, который является типичным значением для коротких преамбул в FR1. Если вы измените значение интервала между поднесущими или формат, вам, возможно, потребуется изменить значения ActivePRACHSlot
и NPRACHSlot
для получения активного паза PRACH.
% Store the user-defined configuration subcarrierSpacing = prach.SubcarrierSpacing; activePRACHSlot = prach.ActivePRACHSlot; nPRACHSlot = prach.NPRACHSlot; % Set values of SubcarrierSpacing, ActivePRACHSlot, and NPRACHSlot for this % case if any(strcmpi(format,{'0','1','2'})) prach.SubcarrierSpacing = 1.25; elseif strcmpi(format,'3') prach.SubcarrierSpacing = 5; else % Short preambles if strcmpi(prach.FrequencyRange,'FR1') prach.SubcarrierSpacing = 15; % Valid values are (15, 30) else % FR2 prach.SubcarrierSpacing = 60; % Valid values are (60, 120) end end prach.ActivePRACHSlot = 0; prach.NPRACHSlot = 0;
Согласно таблице 6.3.3.2-2 в TS 38.211, UE может передавать PRACH в любом пазе.
prachSymbols = nrPRACH(carrier,prach);
active = ~isempty(prachSymbols);
disp(['active: ' num2str(active)])
active: 1
Случай 2: Альтернативное строение интервалов между поднесущими PRACH
Интервал между поднесущими PRACH устанавливается на 30 кГц, в то время как интервал между поднесущими устанавливается на значение по умолчанию 15 кГц. Это означает, что каждый паз несущей содержит два пазов PRACH. Этот случай не рассматривает длинные преамбулы PRACH и частотные области значений FR2, потому что они не совместимы с интервалом между поднесущими 30 кГц.
В случае интервала между поднесущими PRACH 30 кГц может быть активен только один из двух пазов PRACH в пределах интервала между поднесущими 15 кГц. Согласно таблице 6.3.3.2-2 в TS 38.211, первый или второй пазы PRACH могут быть активными для B2 формата преамбулы PRACH. Значение prach.ActivePRACHSlot
свойство определяет, какой паз PRACH является активным в текущем подкадре поставщика услуг. Это свойство является параметр, определенный в ТС 38.211 раздел 5.3.2.
В этом случае показаны четыре комбинации NPRACHSlot
и ActivePRACHSlot
значения свойств и проверяет, является ли преамбула PRACH активной. В этом случае отображается график структуры временной области преамбулы PRACH для обеих комбинаций. График показывает, что активная преамбула PRACH занимает первую половину паза несущей при ActivePRACHSlot
является 0
и занимает вторую половину паза несущей, когда ActivePRACHSlot
является 1
. Для получения дополнительной информации об этом графике смотрите Plot Time-Domain Structure of Selected PRACH Preamble.
if ~any(strcmpi(format,{'0','1','2','3'})) && strcmpi(prach.FrequencyRange,'FR1') % Short preamble formats and FR1 only % Set subcarrier spacing to 30 kHz for this case prach.SubcarrierSpacing = 30; % Define all combinations of NPRACHSlot and ActivePRACHSlot to check nPRACHSlotCase2 = [0, 1, 2]; activePRACHSlotCase2 = [0, 1]; [NPRACHSlotCase2, ActivePRACHSlotCase2] = meshgrid(nPRACHSlotCase2,activePRACHSlotCase2); prachActivityTable = table(NPRACHSlotCase2(:),ActivePRACHSlotCase2(:),false*ones(numel(NPRACHSlotCase2),1), ... 'VariableNames',{'NPRACHSlot','ActivePRACHSlot','active'}); % Loop over all combinations for i = 1:numel(NPRACHSlotCase2) prach.NPRACHSlot = NPRACHSlotCase2(i); prach.ActivePRACHSlot = ActivePRACHSlotCase2(i); prachSymbols = nrPRACH(carrier,prach); active = ~isempty(prachSymbols); % Check if the PRACH preamble is active in the current slot prachActivityTable.active(i) = active; if active && prach.NPRACHSlot < 2 % Plot the time-domain structure of the PRACH preamble for % active PRACH preambles in the first two slots hPRACHPreamblePlot(carrier,prach); end end else % Display a message for the filtered cases if any(strcmpi(format,{'0','1','2','3'})) disp(['PRACH long preamble format ' format ' is not compatible with 30 kHz subcarrier spacing.']) else % FR2 disp('Frequency range FR2 is not compatible with 30 kHz subcarrier spacing.') end end
Для кратких форматов преамбулы с интервалом поднесущих 30 кГц в этой таблице показано, является ли преамбула PRACH активной для каждой комбинации выбранных значений NPRACHSlot
и ActivePRACHSlot
свойства.
if ~any(strcmpi(format,{'0','1','2','3'})) && strcmpi(prach.FrequencyRange,'FR1') % Short preamble formats and FR1 only disp(prachActivityTable) end
NPRACHSlot ActivePRACHSlot active __________ _______________ ______ 0 0 1 0 1 0 1 0 0 1 1 1 2 0 1 2 1 0
Верните объект строения PRACH в пользовательское строение
prach.SubcarrierSpacing = subcarrierSpacing; prach.ActivePRACHSlot = activePRACHSlot; prach.NPRACHSlot = nPRACHSlot;
Объект строения PRACH также имеет свойства только для чтения, которые предоставляют дополнительную информацию о текущем строении:
Формат преамбулы: Format
Длина последовательности преамбулы Задоффа-Чу: LRA
Максимальное количество допустимых случаев PRACH: NumTimeOccasions
Количество символов OFDM в паз PRACH, соответствующих одному случаю передачи: PRACHDuration
Расположение первого символа OFDM текущего случая PRACH: SymbolLocation
disp(prach)
nrPRACHConfig with properties: FrequencyRange: 'FR1' DuplexMode: 'FDD' ConfigurationIndex: 146 SubcarrierSpacing: 15 SequenceIndex: 0 PreambleIndex: 0 RestrictedSet: 'UnrestrictedSet' ZeroCorrelationZone: 0 RBOffset: 0 FrequencyStart: 0 FrequencyIndex: 0 TimeIndex: 2 ActivePRACHSlot: 0 NPRACHSlot: 0 Read-only properties: Format: 'B2' LRA: 139 NumTimeOccasions: 3 PRACHDuration: 4 SymbolLocation: 8 SubframesPerPRACHSlot: 1 PRACHSlotsPerPeriod: 10 Constant properties: Tables: [1x1 struct]
Этот график показывает все возможные случаи PRACH (в текущем пазе оператора связи) в светлых цветах и текущий случай PRACH (соответствующий выбранному TimeIndex
) в темных цветах. Этот график содержит циклический префикс (CP), периоды активной последовательности PRACH и конечный защитный период (GP) в красном, синем и зеленом цветах, соответственно. Если преамбула PRACH не активна в текущем пазе, график пуст. График показывает связанные со временем свойства выбранного строения PRACH и положения PRACH в пазе несущей. Если интервал между поднесущими PRACH меньше, чем интервал между поднесущими, график показывает минимальное количество пазов несущей, необходимых для передачи преамбулы PRACH. Последний случай PRACH во времени не всегда соответствует концу паза несущей. График пуст для тех значений времени, в которых передача PRACH не разрешена для текущего строения PRACH.
hPRACHPreamblePlot(carrier,prach);
Ресурсная сетка PRACH показывает местоположение преамбулы PRACH как во временной, так и в частотной областях. Используя эту ресурсную сетку, можно:
Просмотрите преамбулу PRACH визуально как во временной, так и в частотной областях
Сгенерируйте сигнал PRACH, который получается путем модулирования ресурсной сетки
Генерация сетки ресурсов PRACH состоит из следующих шагов:
Сгенерируйте пустую сетку
Сгенерируйте символы, которые будут переданы в форме волны PRACH
Сгенерируйте частотные индексы и временные индексы, в которых расположены символы PRACH
Сопоставьте символы PRACH с ресурсной сеткой PRACH
Сгенерируйте пустую ресурсную сетку PRACH.
prachGrid = nrPRACHGrid(carrier,prach); size(prachGrid)
ans = 1×2
624 14
Сгенерируйте символы PRACH. Количество символов зависит от строения PRACH. The prachSymbols
выход пуст, если преамбула PRACH не активна в текущем пазе.
prachSymbols = nrPRACH(carrier,prach);
Сгенерируйте индексы PRACH. Значение в каждом элементе prachIndices
- линейный индекс местоположения каждого элемента prachSymbols
в ресурсной сетке PRACH.
prachIndices = nrPRACHIndices(carrier,prach);
Сопоставьте символы PRACH с ресурсной сеткой PRACH с помощью индексов. Представлять в TS 38.211, раздел 6.3.3.2, отображение применяет масштабный коэффициент 1 к символам PRACH.
prachGrid(prachIndices) = 1 * prachSymbols;
The hPRACHResourceGridPlot
Графики функций ресурсной сетки PRACH, чтобы показать местоположение активного PRACH. График показывает все случаи, в которых PRACH может быть передан. На график показаны все возможные случаи PRACH в текущей несущем пазе в светло-синем и текущем случаях PRACH (соответствующий выбранной TimeIndex
) в темно-синем цвете. График пуст для символов OFDM, не используемых ни в одном случае PRACH для текущего строения. Если преамбула PRACH не активна в текущем пазе, график пуст.
hPRACHResourceGridPlot(carrier,prach);
Ресурсная сетка PRACH содержит 14 символов OFDM, за исключением следующих случаев:
Для длинного формата преамбулы 0 каждая преамбула имеет один период активной последовательности, который охватывает один подкадр. Поэтому паз сетка, относящаяся к формату 0, имеет один символ OFDM.
Для длинного формата преамбулы 1 каждая преамбула имеет два активных периода последовательности, которые охватывают два подкадра. Поэтому паз сетка, относящаяся к формату 1, имеет два символа OFDM.
Для длинного формата преамбулы 2 каждая преамбула имеет четыре активных периода последовательности, которые охватывают четыре подкадра. Поэтому паз сетка, относящаяся к формату 2, имеет четыре символа OFDM.
Для длинного формата преамбулы 3 каждая преамбула имеет четыре активных периода последовательности, которые охватывают один подкадр. Поэтому паз сетка, относящаяся к формату 3, имеет четыре символа OFDM.
Для кратких C0 формата преамбулы каждая преамбула имеет один период активной последовательности. Однако из-за защиты и циклического префикса преамбула охватывает два символа OFDM. Поэтому паз сетка, относящаяся к C0 формата, имеет семь символов OFDM.
Вы можете получить количество периодов активной последовательности из значения PRACHDuration
свойство объекта строения PRACH.
Сгенерируйте сигнал временной области для одной преамбулы PRACH путем модулирования ресурсной сетки PRACH. Чтобы задать количество выборок во временной области, над которыми можно применить оконцевание и перекрытие символов OFDM, используйте windowing
. Этот пример использует значение по умолчанию для окна. Для получения дополнительной информации о оконной обработке смотрите nrPRACHOFDMModulate
.
windowing = [];
[prachWaveform,prachInfo] = nrPRACHOFDMModulate(carrier,prach,prachGrid,'Windowing',windowing);
Область выхода prachWaveform
является вектором-столбцом, соответствующим форме волны во временной области. Область выхода prachInfo
- структура, которая предоставляет размерную информацию, относящуюся к PRACH. Этот пример отображает эту информацию при помощи hPRACHInfoDisplay
вспомогательная функция. Функция отображает информацию, связанную с количеством выборок, соответствующих CP, периоду активной последовательности PRACH и GP для каждого символа OFDM в табличном формате. В таблице перечислены все символы OFDM, которые помещаются в ресурсной сетке. Для кратких форматов преамбулы значения, отмеченные *
соответствуют всем возможным случаям PRACH, кроме текущего (отмеченный светло-синий на графике ресурсной сетки). Для кратких форматов преамбулы значения в угловых скобках представляют символы OFDM, не используемые ни одним случаем PRACH для текущего строения (соответствующий пустому пространству во времени на графике сетки ресурсов).
Проверьте информацию, относящуюся к символам OFDM, относительно PRACHDuration
, SymbolLocation
, и NumTimeOccasions
свойства. Эти свойства показывают, что:
Каждый случай PRACH длится 4 символа OFDM
Текущий случай PRACH начинается с символа OFDM 8
3 случая PRACH возможны во времени
hPRACHInfoDisplay(carrier,prach,windowing);
Information associated with PRACH: SubcarrierSpacing: 15 kHz Number of subcarriers: 624 Information associated with PRACH OFDM modulation: Nfft: 1024 Windowing: 72 Offset: 0 samples Symbol TCP TSEQ GP ------ ------ ------ ----- 0* 296* 1024* 0* 1* 0* 1024* 0* 2* 0* 1024* 0* 3* 0* 1024* 0* 4* 296* 1024* 0* 5* 0* 1024* 0* 6* 0* 1024* 0* 7* 0* 1024* 0* 8 180 1024 0 9 0 1024 0 10 0 1024 0 11 0 1024 108 <12> < 0> <1024> < 0> <13> < 0> <1024> < 0> * : OFDM symbols for unused PRACH time occasions <#> : OFDM symbols not used by any PRACH time occasion for the current configuration Total samples: 15360 Sample rate: 15.360 MHz Duration: 1.000 ms Total number of subframes: 1
В этом примере показано, как сконфигурировать PRACH, задать индекс строения на основе выбранного формата и определить, является ли преамбула PRACH активной в текущих временных ресурсах. Этот пример поможет вам с помощью ресурсной сетки PRACH и генерации сигналов во временной области. При построении графика структуры временной области преамбулы PRACH отображаются все доступные случаи PRACH для выбранного строения в одном подкадре. При построении графика ресурсной сетки отображаются все доступные случаи PRACH для выбранного строения как во временной, так и в частотной областях.
Этот пример показывает, как сгенерировать форму волны для одной преамбулы PRACH. Для примера, который генерирует форму волны для нескольких преамбул PRACH, смотрите 5G NR PRACH Waveform Generation.
Этот пример использует следующие вспомогательные функции:
3GPP TS 38.211. "NR; Физические каналы и модуляция ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.
3GPP TS 38.331. "NR; Управление радиоресурсами (RRC); Спецификация протокола. "3-ья Генерация проект партнерства; Группа технических спецификаций Радиосеть доступ.