Сгенерируйте индексы элемента ресурса PUCCH
[
генерирует ind
,info
] = nrPUCCHIndices(carrier
,pucch
)ind
, который содержит физический восходящий канал управления на основе 1 (PUCCH) индексы элемента ресурса (RE), как задано в Разделе TS 38.211 6.3.2 [1] для всех форматов PUCCH. carrier
задает настройку несущей. pucch
задает настройку PUCCH. Функция также генерирует info
, который содержит информацию о емкости в битах и способности символа восходящей управляющей информации (UCI) на PUCCH.
Создайте объект настройки несущей по умолчанию. Этот объект соответствует несущей на 10 МГц с расстоянием между поднесущими на 15 кГц.
carrier = nrCarrierConfig;
Создайте объект настройки формата 0 PUCCH по умолчанию.
pucch0 = nrPUCCH0Config;
Задайте размер части полосы пропускания (BWP) как 35 и запуск индекс PRB BWP относительно CRB 0 как 12. Задайте первый индекс символа в пазе передачи PUCCH как 3 и количество выделенных символов PUCCH как 2. Установите PRB, выделенный для PUCCH 20, включите скачкообразное движение частоты внутрипаза и установите запуск индекс PRB второго транзитного участка к 10.
pucch0.NSizeBWP = 35;
pucch0.NStartBWP = 12;
pucch0.SymbolAllocation = [3 2];
pucch0.PRBSet = 20;
pucch0.FrequencyHopping = 'intraSlot';
pucch0.SecondHopStartPRB = 10;
Сгенерируйте формат 0 PUCCH индексы RE, установив ориентацию индекса относительно сетки несущей.
[ind,info] = nrPUCCHIndices(carrier,pucch0,'IndexOrientation','carrier')
ind = 24x1 uint32 column vector
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
⋮
info = struct with fields:
G: 24
Gd: 24
NREPerPRB: 24
DMRSSymbolSet: [1x0 double]
Постройте сгенерированный REs для формата 0 PUCCH в сетке ресурса несущей.
resGrid = nrResourceGrid(carrier); resGrid(ind) = 1; imagesc(resGrid) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing PUCCH Format 0')
Создайте объект настройки несущей по умолчанию.
carrier = nrCarrierConfig;
Задайте несущую на 60 кГц с расширенным циклическим префиксом. Определите номер RBS в сетке ресурса несущей к 55 и номере слота к 12.
carrier.SubcarrierSpacing = 60;
carrier.CyclicPrefix = 'extended';
carrier.NSizeGrid = 55;
carrier.NSlot = 12;
Создайте объект настройки формата 1 PUCCH по умолчанию.
pucch1 = nrPUCCH1Config;
Задайте первый индекс символа в пазе передачи PUCCH как 3 и количество выделенных символов PUCCH как 8. Включите скачкообразное движение частоты внутрипаза и установите запуск индекс PRB второго транзитного участка к 35.
pucch1.NSizeBWP = []; % Set NSizeBWP equal to the NSizeGrid property of carrier pucch1.NStartBWP = []; % Set NStartBWP equal to the NStartGrid property of carrier pucch1.SymbolAllocation = [3 8]; pucch1.FrequencyHopping = 'intraSlot'; pucch1.SecondHopStartPRB = 35;
Сгенерируйте формат 1 PUCCH индексы RE.
[ind,info] = nrPUCCHIndices(carrier,pucch1)
ind = 48x1 uint32 column vector
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
⋮
info = struct with fields:
G: 48
Gd: 48
NREPerPRB: 48
DMRSSymbolSet: [3 5 7 9]
Постройте сгенерированный REs для формата 1 PUCCH в сетке ресурса несущей.
resGrid = nrResourceGrid(carrier); resGrid(ind) = 1; imagesc(resGrid) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing PUCCH Format 1')
Создайте объект настройки несущей по умолчанию.
carrier = nrCarrierConfig;
Задайте количество RBS в сетке ресурса несущей как 24, запуск сетки ресурса несущей относительно CRB 0 как 20, и номер слота как 43.
carrier.NSizeGrid = 24; carrier.NStartGrid = 20; carrier.NSlot = 43;
Создайте объект настройки формата 2 PUCCH по умолчанию.
pucch2 = nrPUCCH2Config;
Задайте первый индекс символа в пазе передачи PUCCH как 5 и количество выделенных символов PUCCH как 2. Установите PRBs, выделенный для PUCCH лежать в диапазоне от 0 до 15 и включать скачкообразное движение частоты внутрипаза. Установите запуск индекс PRB второго транзитного участка к 7.
pucch2.SymbolAllocation = [5 2];
pucch2.PRBSet = 0:15;
pucch2.FrequencyHopping = 'intraSlot';
pucch2.SecondHopStartPRB = 7;
Сгенерируйте формат 2 PUCCH индексы RE.
[ind,info] = nrPUCCHIndices(carrier,pucch2)
ind = 256x1 uint32 column vector
1441
1443
1444
1446
1447
1449
1450
1452
1453
1455
⋮
info = struct with fields:
G: 512
Gd: 256
NREPerPRB: 16
DMRSSymbolSet: [5 6]
Постройте сгенерированный REs для формата 2 PUCCH в сетке ресурса несущей.
resGrid = nrResourceGrid(carrier); resGrid(ind) = 1; imagesc(resGrid) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing PUCCH Format 2')
Создайте объект настройки несущей по умолчанию.
carrier = nrCarrierConfig;
Создайте объект настройки формата 3 PUCCH по умолчанию.
pucch3 = nrPUCCH3Config;
Задайте выделение PRB PUCCH, чтобы лежать в диапазоне от 0 до 11. Установите первый индекс символа в пазе передачи PUCCH к 2 и количество выделенных символов PUCCH к 12. Включите дополнительный флаг настройки DM-RS.
pucch3.NSizeBWP = []; pucch3.NStartBWP = []; pucch3.PRBSet = 0:11; pucch3.SymbolAllocation = [2 12]; pucch3.AdditionalDMRS = 1;
Сгенерируйте формат 3 PUCCH индексы RE, установив ориентацию индекса относительно сетки несущей.
[ind,info] = nrPUCCHIndices(carrier,pucch3,'IndexOrientation','carrier')
ind = 1152x1 uint32 column vector
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
⋮
info = struct with fields:
G: 2304
Gd: 1152
NREPerPRB: 96
DMRSSymbolSet: [3 6 9 12]
Постройте сгенерированный REs для формата 3 PUCCH в сетке ресурса несущей.
resGrid = nrResourceGrid(carrier); resGrid(ind) = 1; imagesc(resGrid) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing PUCCH Format 3')
Создайте объект настройки несущей по умолчанию.
carrier = nrCarrierConfig;
Создайте объект настройки формата 4 PUCCH по умолчанию.
pucch4 = nrPUCCH4Config;
Задайте схему модуляции так же pi/2-BPSK и выделенный PRB для PUCCH как 50. Установите первый индекс символа в пазе передачи PUCCH к 2 и количество выделенных символов PUCCH к 10. Включите скачкообразное движение частоты внутрипаза и дополнительный флаг настройки DM-RS. Установите запуск индекс PRB второго транзитного участка к 10.
pucch4.Modulation = 'pi/2-BPSK'; pucch4.PRBSet = 50; pucch4.SymbolAllocation = [2 10]; pucch4.FrequencyHopping = 'intraSlot'; pucch4.SecondHopStartPRB = 10; pucch4.AdditionalDMRS = 1;
Сгенерируйте формат 4 PUCCH индексы RE.
[ind,info] = nrPUCCHIndices(carrier,pucch4)
ind = 72x1 uint32 column vector
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
⋮
info = struct with fields:
G: 36
Gd: 36
NREPerPRB: 72
DMRSSymbolSet: [3 5 8 10]
Постройте сгенерированный REs для формата 4 PUCCH в сетке ресурса несущей.
resGrid = nrResourceGrid(carrier); resGrid(ind) = 1; imagesc(resGrid) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing PUCCH Format 4')
carrier
— Параметры конфигурации несущейnrCarrierConfig
объектПараметры конфигурации несущей для определенной нумерологии OFDM в виде nrCarrierConfig
объект. Эта функция только использует их nrCarrierConfig
свойства объектов.
pucch
— Параметры конфигурации PUCCHnrPUCCH0Config
возразите | nrPUCCH1Config
возразите | nrPUCCH2Config
возразите | nrPUCCH3Config
возразите | nrPUCCH4Config
объектПараметры конфигурации PUCCH в виде одной из этих опций.
Для формата 0 задайте nrPUCCH0Config
объект. Функция использует только эти свойства объектов.
Для формата 1 задайте nrPUCCH1Config
объект. Функция использует только эти свойства объектов.
Для формата 2 задайте nrPUCCH2Config
объект. Функция использует только эти свойства объектов.
Для формата 3 задайте nrPUCCH3Config
объект. Функция использует только эти свойства объектов.
Для формата 4 задайте nrPUCCH4Config
объект. Функция использует только эти свойства объектов.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'IndexStyle','subscript'
задает форму индексации RE выхода.IndexStyle
— Форма индексации RE'index'
(значение по умолчанию) | 'subscript'
Индексация RE формируется в виде одного из этих значений:
'index'
— Индексы находятся в линейной форме индекса.
'subscript'
— Индексы находятся в [поднесущая, символ, антенна] форма строки индекса.
Типы данных: char |
string
IndexBase
— Основа индексации RE'1based'
(значение по умолчанию) | '0based'
Индексация RE базируется в виде одного из этих значений:
'1based'
— Подсчет индекса запускается от 1.
'0based'
— Подсчет индекса запускается от 0.
Типы данных: char |
string
IndexOrientation
— Ориентация индексации RE'carrier'
(значение по умолчанию) | 'bwp'
Ориентация индексации RE в виде одного из этих значений:
'carrier'
— На индексы ссылаются относительно сетки несущей.
'bwp'
— На индексы ссылаются относительно BWP.
Типы данных: char |
string
ind
— Индексы РЕ PUCCHИндексы РЕ PUCCH, возвращенные как одно из этих значений:
Вектор-столбец — функция возвращает этот тип значения, когда вы устанавливаете IndexStyle
аргумент значения имени к 'index'
.
M-by-3 матрица — функция возвращает этот тип значения, когда вы устанавливаете IndexStyle
аргумент значения имени к 'subscript'
. Строки матрицы соответствуют [поднесущая, символ, антенна] индексы на основе количества поднесущих, символов OFDM и количества антенн, соответственно.
В зависимости от значения IndexBase
, функция возвращает или индексы на основе 0 или на основе 1. В зависимости от значения IndexOrientation
, функция возвращает или ориентированные несущими индексы или BWP-ориентированные индексы.
Типы данных: uint32
info
— Информация о ресурсе PUCCHИнформация о ресурсе PUCCH, возвращенная как структура, содержащая эти поля. Типом выходных данных каждого поля является double
.
Поле | Описание |
---|---|
G | Емкость в битах PUCCH, возвращенного как значение, которое равно длине UCI, закодировала кодовую комбинацию для форматов 2, 3, и 4. |
Gd | Способность символа PUCCH |
NREPerPRB | Количество REs на PRB, выделенный PUCCH (включая распространяющийся фактор) |
DMRSSymbolSet | Набор местоположений символа OFDM на основе 0 в пазе, содержащем опорный сигнал демодуляции (DM-RS) |
[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.
Указания и ограничения по применению:
Имена и значения в аргументах пары "имя-значение" должны быть константами времени компиляции. Например, при определении линейной формы индексации, включайте {coder.Constant('IndexStyle'),coder.Constant('index')}
в -args
значение codegen
функция. Для получения дополнительной информации смотрите coder.Constant
(MATLAB Coder) класс.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.