nrUCIEncode

Закодируйте управляющую информацию восходящего канала (UCI)

Описание

пример

codeduci = nrUCIEncode(ucibits,E) кодирует биты сообщений UCI ucibits и возвращает конкатенированные, согласованные по скорости и закодированные блоки UCI длины E. Возвращенные блоки могут быть сопоставлены либо с физическим каналом управления восходящей линии связи (PUCCH), либо с физическим общим каналом восходящей линии связи (PUSCH). Функция выполняет ТС 38.212 Разделы 6.3.1.2-6.3.1.5 для ПУОК и Разделы 6.3.2.2-6.3.2.5 для ПУСК [1]. Кодирование состоит из сегментации кодовых блоков, циклической проверки избыточности (CRC), кодирования канала, согласования скорости и конкатенации кодовых блоков. Функция поддерживает полярное кодирование и небольшие длины блоков. Конкретная схема кодирования, которую реализует функция, зависит от входной длины сообщения UCI. Для получения дополнительной информации см. «Алгоритмы».

пример

codeduci = nrUCIEncode(ucibits,E,mod) также задает схему модуляции для кодирования. Заданная схема модуляции применяется только тогда, когда длина ucibits равен 1 или 2. Когда не задан, схема модуляции по умолчанию принимает значение QPSK. На выходе -1 и -2 представляют x и y заполнители, соответственно, в таблицах 5.3.3.1-1 и 5.3.3.2-1.

Примеры

свернуть все

Создайте случайную последовательность двоичных значений, соответствующих сообщению UCI 32 бита.

ucibits = randi([0 1],32,1,'int8');

Закодируйте сообщение для указанной выходной длины, соответствующей скорости.

E = 120;
codeduci = nrUCIEncode(ucibits,E)
codeduci = 120x1 int8 column vector

   1
   1
   1
   0
   1
   0
   1
   0
   0
   0
      ⋮

Создайте случайную последовательность двоичных значений, соответствующих двухбитному сообщению UCI.

ucibits = randi([0 1],2,1,'int8');

Закодируйте сообщение для указанной согласованной со скоростью выходной длины и 16-QAM схемы модуляции.

E = 12;
codeduci = nrUCIEncode(ucibits,E,'16QAM')
codeduci = 12x1 int8 column vector

    1
    1
   -1
   -1
    0
    1
   -1
   -1
    1
    0
      ⋮

Входные параметры

свернуть все

Биты сообщения UCI, заданные как вектор-столбец с двоичными значениями. ucibits - информационные биты, закодированные перед передачей по PUCCH или PUSCH.

Типы данных: double | int8

Длина кодового слова UCI, соответствующего скорости, в битах, заданная как положительное целое число. Допустимая область значений E зависит от A, длины входа ucibits, как показано в этой таблице.

AДопустимая область значений значений E
1EA
2–11E > A
12–19E > A + 9
20–1706E > A + 11

Типы данных: double

Схема модуляции, заданная как 'QPSK', 'pi/2-BPSK', '16QAM', '64QAM', или '256QAM'. Эта схема модуляции определяет тип модуляции и количество бит, используемых на символ модуляции, как показано в этой таблице.

Схема модуляцииКоличество Бит на символ
'pi/2-BPSK'1
'QPSK'2
'16QAM'4
'64QAM'6
'256QAM'8

Этот входной параметр применяется только, когда вход ucibits - один или два бита.

Типы данных: char | string

Выходные аргументы

свернуть все

Закодированные биты UCI, возвращенные как E-by-1 вектор-столбец из целых чисел от -2 до 1. codeduci наследует тип данных от входа ucibits. Значения элемента -1 и -2 представляют x и y заполнители, соответственно, в таблицах 5.3.3.1-1 и 5.3.3.2-1.

Типы данных: double | int8

Алгоритмы

Кодирование UCI состоит из сегментации кодовых блоков, циклической проверки избыточности (CRC), кодирования канала, согласования скорости и конкатенации кодовых блоков. Конкретная схема кодирования UCI, которая nrUCIEncode реализует зависит от A, длины входа ucibits.

AКод блоковБиты CRCКодировка
1Н/ДН/ДПовторение
2Н/ДН/ДСимплекс
3–11Н/ДН/ДРид-Мюллер
12–19Н/Д6Полярность проверки четности
20–1706

Происходит только когда A ≥ 1013 или когда A ≥ 360 и E ≥ 1088

11Полярный

Ссылки

[1] 3GPP TS 38.212. "NR; Мультиплексирование и канальное кодирование. "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

Функции

Введенный в R2019a