nrPUSCHCodebook

Сгенерируйте PUSCH предварительное кодирование матрицы

Описание

пример

w = nrPUSCHCodebook(nLayers,nPorts,tpmi) возвращает физический восходящий канал совместно использованный канал (PUSCH) предварительное кодирование матрицы для основанной на книге шифров передачи. nLayers количество слоев, nPorts количество портов антенны и tpmi переданный предварительно кодирующий матричный индикатор (TPMI). По умолчанию эта функция отключает, преобразовывают предварительное кодирование. Возвращенная матрица, w, транспонирование матрицы перед кодированием, заданной в Разделе TS 38.211 6.3.1.5 [1]. Матричная ориентация w позволяет операции перед кодированием выполняться умножением матриц на выходе nrLayerMap функция и w.

w = nrPUSCHCodebook(___,transformPrecode) задает преобразовывают предварительное кодирование как логическое значение в дополнение к входным параметрам в предыдущем синтаксисе. Когда transformPrecode установлен в true, функция применяет предварительное кодирование преобразования, заданное в Разделе TS 38.211 6.3.1.4 [1].

Примеры

свернуть все

Модулируйте случайную последовательность двоичных значений длины 600 при помощи 64-QAM модуляции. Разделите модулируемые символы на два слоя.

modulation = '64QAM';
nlayers = 2;
in = randi([0 1],600,1);
data = nrSymbolModulate(in,modulation);
y = nrLayerMap(data,nlayers);

Сгенерируйте PUSCH предварительное кодирование матрицы для четырех антенн, двух слоев и заданного TPMI.

nports = 4;
tpmi = 7;
w = nrPUSCHCodebook(nlayers,nports,tpmi)
w = 2×4 complex

   0.5000 + 0.0000i   0.0000 + 0.0000i   0.5000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.5000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.5000i

Предварительно закодируйте многоуровневые символы модуляции при помощи матрицы книги шифров.

z = y * w
z = 50×4 complex

  -0.0772 - 0.3858i   0.3858 - 0.5401i  -0.0772 - 0.3858i   0.5401 + 0.3858i
  -0.3858 + 0.0772i  -0.5401 - 0.0772i  -0.3858 + 0.0772i   0.0772 - 0.5401i
  -0.5401 - 0.2315i  -0.2315 + 0.0772i  -0.5401 - 0.2315i  -0.0772 - 0.2315i
  -0.3858 + 0.2315i  -0.2315 - 0.0772i  -0.3858 + 0.2315i   0.0772 - 0.2315i
  -0.0772 - 0.3858i   0.5401 + 0.2315i  -0.0772 - 0.3858i  -0.2315 + 0.5401i
  -0.5401 + 0.5401i  -0.0772 + 0.2315i  -0.5401 + 0.5401i  -0.2315 - 0.0772i
  -0.3858 + 0.2315i  -0.0772 + 0.5401i  -0.3858 + 0.2315i  -0.5401 - 0.0772i
  -0.3858 + 0.5401i   0.5401 + 0.3858i  -0.3858 + 0.5401i  -0.3858 + 0.5401i
  -0.2315 + 0.0772i   0.2315 - 0.5401i  -0.2315 + 0.0772i   0.5401 + 0.2315i
  -0.2315 - 0.0772i   0.3858 - 0.3858i  -0.2315 - 0.0772i   0.3858 + 0.3858i
      ⋮

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

свернуть все

Количество слоев передачи в виде целого числа от 1 до 4. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.3.

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

Количество портов антенны в виде 1, 2 , или 4. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.5.

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

Переданный предварительно кодирующий матричный индикатор в виде целого числа от 0 до 27. Допустимая область значений tpmi зависит от конкретного количества слоев передачи, nLayers, и количество портов антенны, nPorts. Для получения дополнительной информации см. таблицы 6.3.1.5-1 TS 38.211 к 6.3.1.5-7.

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

Преобразуйте предварительное кодирование в виде false или true. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.4.

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

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

свернуть все

PUSCH предварительное кодирование книги шифров, возвращенной как комплексная матрица размера nLayers- nPorts. Если nLayers и nPorts оба 1, затем w 1. В противном случае функция возвращает транспонирование матрицы, выбранной от Таблиц 6.3.1.5-1 до 6.3.1.5-7 в TS 38.211 [1].

Типы данных: double
Поддержка комплексного числа: Да

Ссылки

[1] 3GPP TS 38.211. “NR; Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

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

Функции

Введенный в R2019a