Формирование символов модуляции 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}; Сформировать символы модуляции формата PUCCH 0.
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 кГц с расширенным циклическим префиксом. Установите для количества (блоков ресурсов) RB в сетке ресурсов несущей значение 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;
Укажите идентификатор скремблирования данных как 1000, а временный идентификатор радиосети как 160.
pucch2.NID = 1000; pucch2.RNTI = 160;
Создайте случайную последовательность двоичных значений, соответствующих кодовому слову UCI из 100 битов.
uciCW = randi([0 1],100,1);
Генерировать символы модуляции формата PUCCH 2 типа данных 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 блоков ресурсов) и временный идентификатор радиосети как 2560.
pucch3.Modulation = 'pi/2-BPSK';
pucch3.PRBSet = 70:74;
pucch3.RNTI = 2560;Создайте случайную последовательность двоичных значений, соответствующих кодовому слову UCI из 120 битов.
uciCW = randi([0 1],120,1);
Формирование символов модуляции PUCCH формата 3 типа данных 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);
Сформировать символы модуляции формата PUCCH 4.
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. "НР; Физические каналы и модуляция. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.
Примечания и ограничения по использованию:
datatype входной аргумент должен быть константой времени компиляции. Например, при указании 'single' в качестве типа выходных данных, включить {coder.Constant('OutputDataType'),coder.Constant('single')} в -args значение codegen функция. Дополнительные сведения см. в разделе coder.Constant (Кодер MATLAB) класс.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.