nrUCIEncode

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

Описание

пример

codeduci = nrUCIEncode(ucibits,E) кодирует биты сообщения UCI ucibits и возвращает конкатенированные, соответствующие уровню, и закодированные блоки UCI длины E. Возвращенные блоки могут быть сопоставлены или с физическим восходящим каналом управления (PUCCH) или с физическим восходящим каналом совместно использованный канал (PUSCH). Функция реализует Разделы TS 38.212 6.3.1.2–6.3.1.5 для PUCCH и Разделов 6.3.2.2–6.3.2.5 для PUSCH [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

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

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

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

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

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

свернуть все

Закодированные биты UCI, возвращенные как E- 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Кодирование
1N/AN/AПовторение
2N/AN/AСимплекс
3–11N/AN/AТростник-Muller
12–19N/A6Полярная проверка четности
20–1706

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

11Полярный

Ссылки

[1] 3GPP TS 38.212. “NR; Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

Смотрите также

Функции

Введенный в R2019a