Сгенерируйте символы модуляции PUCCH
генерирует физический восходящий канал управления (PUCCH) символы модуляции sym
= nrPUCCH(carrier
,pucch
,uciBits
)sym
, как задано в Разделах TS 38.211 6.3.2.3 к 6.3.2.6 [1] для всех форматов PUCCH. carrier
задает настройку поставщика услуг. pucch
задает специфичную для формата настройку PUCCH. uciBits
задает биты восходящей управляющей информации (UCI).
Создайте объект настройки поставщика услуг по умолчанию.
carrier = nrCarrierConfig;
Задайте идентичность ячейки физического уровня как 490, циклический префикс столь же нормальный, и номер слота как 57.
carrier.NCellID = 490;
carrier.CyclicPrefix = 'normal';
carrier.NSlot = 57;
Создайте объект настройки формата 0 PUCCH по умолчанию.
pucch0 = nrPUCCH0Config;
Задайте первый индекс символа в пазе передачи PUCCH как 11 и количество выделенных символов PUCCH как 2. Включите скачкообразное движение частоты внутрипаза и скачкообразное движение группы. Установите начальный циклический сдвиг на 7.
pucch0.SymbolAllocation = [11 2]; pucch0.FrequencyHopping = 'intraSlot'; pucch0.GroupHopping = 'enable'; pucch0.HoppingID = []; % Set HoppingID equal to the NCellID property of carrier pucch0.InitialCyclicShift = 7;
Задайте передачу без HARQ-ACK и с положительным SR.
sr = 1; % Positive SR transmission
ack = [];
uciBits = {ack, sr};
Сгенерируйте символы модуляции формата 0 PUCCH.
sym = nrPUCCH(carrier,pucch0,uciBits)
sym = 24×1 complex
-0.7071 - 0.7071i
-0.9659 + 0.2588i
-0.9659 - 0.2588i
0.7071 - 0.7071i
-0.2588 - 0.9659i
-0.9659 - 0.2588i
-0.7071 - 0.7071i
0.2588 + 0.9659i
-0.2588 + 0.9659i
-0.7071 - 0.7071i
⋮
Создайте объект настройки поставщика услуг по умолчанию.
carrier = nrCarrierConfig;
Задайте поставщика услуг на 60 кГц с расширенным циклическим префиксом. Определите номер (блоки ресурса) RBS в сетке ресурса поставщика услуг к 80 и номере слота к 3.
carrier.SubcarrierSpacing = 60;
carrier.CyclicPrefix = 'extended';
carrier.NSizeGrid = 80;
carrier.NSlot = 3;
Создайте объект настройки формата 1 PUCCH по умолчанию.
pucch1 = nrPUCCH1Config;
Задайте первый индекс символа в пазе передачи PUCCH как 2 и количество выделенных символов PUCCH как 10. Включите скачкообразное движение частоты внутрипаза и скачкообразное движение группы. Установите скачкообразно двигающуюся идентичность на 512, начальный циклический сдвиг к 7 и ортогональный индекс кода покрытия (OCCI) к 1.
pucch1.SymbolAllocation = [2 10]; pucch1.FrequencyHopping = 'intraSlot'; pucch1.GroupHopping = 'enable'; pucch1.HoppingID = 512; pucch1.InitialCyclicShift = 7; pucch1.OCCI = 1;
Задайте передачу с двухбитовым HARQ-ACK.
uciBits = [1;0];
Сгенерируйте символы модуляции формата 1 PUCCH.
sym = nrPUCCH(carrier,pucch1,uciBits)
sym = 60×1 complex
1.0000 + 0.0000i
0.5000 + 0.8660i
-0.8660 - 0.5000i
0.0000 + 1.0000i
-0.8660 + 0.5000i
0.8660 + 0.5000i
1.0000 - 0.0000i
0.8660 - 0.5000i
-0.8660 - 0.5000i
1.0000 - 0.0000i
⋮
Создайте объект настройки поставщика услуг по умолчанию.
carrier = nrCarrierConfig;
Создайте объект настройки формата 2 PUCCH по умолчанию.
pucch2 = nrPUCCH2Config;
Задайте идентичность шифрования данных как 1 000 и радиосеть временный идентификатор как 160.
pucch2.NID = 1000; pucch2.RNTI = 160;
Создайте случайную последовательность двоичных значений, соответствующих кодовой комбинации UCI 100 битов.
uciCW = randi([0 1],100,1);
Сгенерируйте символы модуляции формата 2 PUCCH типа данных single
.
sym = nrPUCCH(carrier,pucch2,uciCW,'OutputDataType','single')
sym = 50x1 single column vector
0.7071 + 0.7071i
-0.7071 + 0.7071i
-0.7071 - 0.7071i
-0.7071 - 0.7071i
0.7071 + 0.7071i
-0.7071 + 0.7071i
0.7071 - 0.7071i
0.7071 + 0.7071i
0.7071 - 0.7071i
0.7071 - 0.7071i
⋮
Создайте объект настройки поставщика услуг по умолчанию, и затем установите с идентичностью ячейки как 135.
carrier = nrCarrierConfig; carrier.NCellID = 135;
Создайте объект настройки формата 3 PUCCH по умолчанию.
pucch3 = nrPUCCH3Config;
Задайте схему модуляции как pi/2-BPSK, выделение PRB PUCCH, чтобы лежать в диапазоне от 70 до 74 (занятие 5 блоков ресурса), и радиосеть временный идентификатор как 2 560.
pucch3.Modulation = 'pi/2-BPSK';
pucch3.PRBSet = 70:74;
pucch3.RNTI = 2560;
Создайте случайную последовательность двоичных значений, соответствующих кодовой комбинации UCI 120 битов.
uciCW = randi([0 1],120,1);
Сгенерируйте символы модуляции формата 3 PUCCH типа данных single
.
sym = nrPUCCH(carrier,pucch3,uciCW,'OutputDataType','single')
sym = 120x1 single column vector
0.1826 - 0.5477i
-1.0861 - 0.3479i
0.6300 + 0.8742i
-0.5093 + 0.6652i
0.1911 - 0.7721i
0.1157 + 0.4320i
0.3199 - 1.0054i
1.4349 - 1.7045i
0.4180 - 0.4832i
0.0044 - 0.3429i
⋮
Создайте объект настройки поставщика услуг по умолчанию, и затем установите идентичность ячейки как 140.
carrier = nrCarrierConfig; carrier.NCellID = 140;
Создайте объект настройки формата 4 PUCCH по умолчанию.
pucch4 = nrPUCCH4Config;
Задайте схему модуляции как QPSK, распространяющийся фактор как 4, OCCI как 3, и радиосеть временный идентификатор как 750.
pucch4.Modulation = 'QPSK';
pucch4.SpreadingFactor = 4;
pucch4.OCCI = 3;
pucch4.RNTI = 750;
Создайте случайную последовательность двоичных значений, соответствующих кодовой комбинации UCI 120 битов.
uciCW = randi([0 1],120,1);
Сгенерируйте символы модуляции формата 4 PUCCH.
sym = nrPUCCH(carrier,pucch4,uciCW)
sym = 240×1 complex
0.0000 + 0.0000i
0.5977 + 0.5977i
0.0000 + 0.0000i
0.0000 + 0.0000i
0.0000 + 0.0000i
-2.2307 - 2.2307i
0.0000 + 0.0000i
0.0000 + 0.0000i
0.0000 + 0.0000i
-0.8165 - 0.8165i
⋮
carrier
— Параметры конфигурации поставщика услугnrCarrierConfig
объектПараметры конфигурации поставщика услуг для определенной нумерологии OFDM в виде nrCarrierConfig
объект. Эта функция использует только их nrCarrierConfig
свойства объектов.
pucch
— Параметры конфигурации PUCCHnrPUCCH0Config
возразите | nrPUCCH1Config
возразите | nrPUCCH2Config
возразите | nrPUCCH3Config
возразите | nrPUCCH4Config
объектПараметры конфигурации PUCCH в виде одной из этих опций.
Для формата 0 задайте nrPUCCH0Config
объект. Функция использует только эти свойства объектов.
Для формата 1 задайте nrPUCCH1Config
объект. Функция использует только эти свойства объектов.
Для формата 2 задайте nrPUCCH2Config
объект. Функция использует только эти свойства объектов.
Для формата 3 задайте nrPUCCH3Config
объект. Функция использует только эти свойства объектов.
Для формата 4 задайте nrPUCCH4Config
объект. Функция использует только эти свойства объектов.
uciBits
— Биты UCIБиты UCI в виде вектор-столбца с бинарным знаком, массива ячеек с одним элементом или двухэлементного массива ячеек в зависимости от типа формата. Когда вы задаете этот аргумент как массив ячеек, каждым элементом в массиве должен быть вектор-столбец.
Для формата 0 необходимо задать вектор-столбец с бинарным знаком, массив ячеек с одним элементом или двухэлементный массив ячеек.
Когда вы задаете это значение как вектор-столбец с бинарным знаком или массив ячеек с одним элементом, биты UCI приняты, чтобы быть гибридным автоматическим повторным подтверждением запроса (HARQ-ACK) биты.
Когда вы задаете это значение как двухэлементный массив ячеек, первый элемент принят, чтобы иметь биты HARQ-ACK, и второй элемент принят, чтобы иметь бит планирования запроса (SR).
Для формата 1 необходимо задать вектор-столбец с бинарным знаком или массив ячеек с одним элементом. Этот аргумент должен содержать биты HARQ-ACK или биты SR. Чтобы передать только положительный бит SR, задайте этот аргумент как [0]
или {0}
.
Для форматов 2, 3, и 4, необходимо задать вектор-столбец с бинарным знаком или массив ячеек с одним элементом. Этот аргумент должен содержать кодовую комбинацию закодированных битов UCI.
Типы данных: double
datatype
— Тип данных выходных символов'double'
| 'single'
Тип данных выходных символов в виде 'double'
или 'single'
.
Типы данных: char |
string
sym
— Символы модуляции PUCCHСимволы модуляции PUCCH для заданного формата, возвращенного как комплексный вектор-столбец.
Типы данных: single
| double
Поддержка комплексного числа: Да
[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.
Указания и ограничения по применению:
datatype
входной параметр должен быть постоянным временем компиляции. Например, при определении 'single'
когда выходные данные вводят, включают {coder.Constant('OutputDataType'),coder.Constant('single')}
в -args
значение codegen
функция. Для получения дополнительной информации смотрите coder.Constant
(MATLAB Coder) класс.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.