Сгенерируйте индексы ресурсного элемента PUCCH
[
генерирует ind
,info
] = nrPUCCHIndices(carrier
,pucch
)ind
, который содержит 1-базовые индексы ресурсного элемента (RE) физического восходящего канала управления (PUCCH), как определено в 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;
Сгенерируйте индексы PUCCH формата 0 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]
Постройте график сгенерированных RE для формата PUCCH 0 в ресурсной сетке поставщика услуг.
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 кГц с расширенным циклическим префиксом. Установите количество RB в ресурсной сетке поставщика услуг, равное 55, и номер паза, равный 12.
carrier.SubcarrierSpacing = 60;
carrier.CyclicPrefix = 'extended';
carrier.NSizeGrid = 55;
carrier.NSlot = 12;
Создайте объект строения PUCCH формата 1 по умолчанию.
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;
Сгенерируйте индексы PUCCH формата 1 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]
Постройте график сгенерированных RE для формата PUCCH 1 в ресурсной сетке поставщика услуг.
resGrid = nrResourceGrid(carrier); resGrid(ind) = 1; imagesc(resGrid) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing PUCCH Format 1')
Создайте объект строения поставщика услуг по умолчанию.
carrier = nrCarrierConfig;
Укажите количество RB в ресурсной сетке поставщика услуг как 24, начало ресурсной сетки поставщика услуг связи относительно CRB 0 как 20 и номер паза как 43.
carrier.NSizeGrid = 24; carrier.NStartGrid = 20; carrier.NSlot = 43;
Создайте объект строения PUCCH формата 2 по умолчанию.
pucch2 = nrPUCCH2Config;
Укажите первый индекс символа в пазе передачи PUCCH как 5, и количество выделенных символов PUCCH как 2. Установите PRB, выделенные для PUCCH, в диапазоне от 0 до 15 и включите внутрислотное скачкообразное изменение частоты. Установите начальный индекс PRB второго транзитного участка равным 7.
pucch2.SymbolAllocation = [5 2];
pucch2.PRBSet = 0:15;
pucch2.FrequencyHopping = 'intraSlot';
pucch2.SecondHopStartPRB = 7;
Сгенерируйте индексы PUCCH формата 2 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]
Постройте график сгенерированных RE для формата PUCCH 2 в ресурсной сетке поставщика услуг.
resGrid = nrResourceGrid(carrier); resGrid(ind) = 1; imagesc(resGrid) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing PUCCH Format 2')
Создайте объект строения поставщика услуг по умолчанию.
carrier = nrCarrierConfig;
Создайте объект строения PUCCH формата 3 по умолчанию.
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;
Сгенерируйте индексы PUCCH формата 3 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]
Постройте график сгенерированных RE для формата PUCCH 3 в ресурсной сетке поставщика услуг.
resGrid = nrResourceGrid(carrier); resGrid(ind) = 1; imagesc(resGrid) axis xy xlabel('OFDM Symbols') ylabel('Subcarriers') title('Carrier Grid Containing PUCCH Format 3')
Создайте объект строения поставщика услуг по умолчанию.
carrier = nrCarrierConfig;
Создайте объект строения PUCCH формата 4 по умолчанию.
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;
Сгенерируйте индексы PUCCH формата 4 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]
Постройте график сгенерированных RE для формата PUCCH 4 в ресурсной сетке поставщика услуг.
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 REИндексы PUCCH RE, возвращенные как одно из следующих значений:
Вектор-столбец - функция возвращает этот тип значения, когда вы устанавливаете IndexStyle
аргумент имя-значение в 'index'
.
M -by-3 матрица - Функция возвращает этот тип значения, когда вы устанавливаете IndexStyle
аргумент имя-значение в 'subscript'
. Строки матрицы соответствуют нижним индексам [поднесущая, символ, антенна], основанным на количестве поднесущих, символах OFDM и количестве антенн, соответственно.
В зависимости от значения IndexBase
функция возвращает индексы на основе 1 или на основе 0. В зависимости от значения IndexOrientation
функция возвращает либо индексы, ориентированные на несущую, либо индексы, ориентированные на BWP.
Типы данных: uint32
info
- Информация о ресурсе PUCCHИнформация о ресурсе PUCCH, возвращенная как структура, содержащая эти поля. Тип выходных данных каждого поля double
.
Область | Описание |
---|---|
G | Битовая емкость PUCCH, возвращаемая как значение, которое равно длине кодированного кодового слова UCI для форматов 2, 3 и 4. |
Gd | Емкость символа PUCCH |
NREPerPRB | Количество RE на PRB, выделенных PUCCH (включая коэффициент расширения) |
DMRSSymbolSet | Набор местоположений символов OFDM на основе 0 в пазе, содержащем опорный сигнал демодуляции (DM-RS) |
[1] 3GPP TS 38.211. "NR; Физические каналы и модуляция ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.
Указания и ограничения по применению:
Имена и значения в аргументах пары "имя-значение" должны быть константами времени компиляции. Для примера при указании формы линейной индексации включите {coder.Constant('IndexStyle'),coder.Constant('index')}
в -args
значение codegen
функция. Для получения дополнительной информации смотрите coder.Constant
(MATLAB Coder) класс.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.