nrPUSCH

Сгенерируйте символы модуляции PUSCH

Синтаксис

sym = nrPUSCH(cw,mod,nLayers,nid,rnti)
sym = nrPUSCH(___,transformPrecode,mrb)
sym = nrPUSCH(___,txScheme,nPorts,tpmi)
sym = nrPUSCH(___,'OutputDataType',datatype)

Описание

пример

sym = nrPUSCH(cw,mod,nLayers,nid,rnti) возвращает физический восходящий канал совместно использованный канал (PUSCH) символы модуляции, как задано в Разделах TS 38.211 6.3.1.1 к 6.3.1.5 [1]. Процесс состоит из скремблирования с борющейся идентичностью nid, выполняя модуляцию символа со схемой mod модуляции и отображение слоя. cw задает восходящий канал совместно использованный канал (UL-SCH) кодовая комбинация, как описано в Разделе TS 38.212 6.2.7 [2]. nLayers задает количество слоев передачи. rnti является радиосетью временным идентификатором (RNTI) оборудования пользователя (UE).

sym = nrPUSCH(___,transformPrecode,mrb) задает преобразовывают предварительное кодирование как логическое значение в дополнение к входным параметрам в первом синтаксисе. Когда transformPrecode установлен в true, функция применяет предварительное кодирование преобразования, заданное в Разделе TS 38.211 6.3.1.4. mrb задает выделенное количество блоков ресурса PUSCH.

пример

sym = nrPUSCH(___,txScheme,nPorts,tpmi) задает схему передачи в дополнение к входным параметрам во втором синтаксисе. Когда txScheme установлен в 'codebook', функция выполняет предварительное кодирование мультивхода мультивыводится (MIMO) на основе конкретного количества слоев nLayers, количества портов nPorts антенны и переданного предварительно кодирующего матричного индикатора (TPMI) tpmi.

sym = nrPUSCH(___,'OutputDataType',datatype) задает тип данных символа PUSCH в дополнение к входным параметрам в любом из предыдущих синтаксисов.

Примеры

свернуть все

Задайте случайную последовательность двоичных значений, соответствующих кодовой комбинации 8 064 битов.

cw = randi([0 1],8064,1);

Используя 16-QAM модуляцию, сгенерируйте символы модуляции PUSCH для заданного личного номера ячейки физического уровня, RNTI и двух слоев передачи. По умолчанию функция отключает, преобразовывают предварительное кодирование и основанную на некниге шифров передачу.

modulation = '16QAM';
nlayers = 2;
ncellid = 17;
rnti = 111;
sym = nrPUSCH(cw,modulation,nlayers,ncellid,rnti)
sym = 1008×2 complex

  -0.9487 - 0.9487i  -0.3162 + 0.3162i
   0.3162 + 0.3162i  -0.9487 - 0.3162i
   0.3162 + 0.3162i   0.3162 - 0.3162i
   0.9487 - 0.3162i  -0.3162 + 0.9487i
  -0.3162 - 0.9487i   0.3162 - 0.9487i
  -0.3162 + 0.9487i   0.3162 - 0.3162i
   0.3162 + 0.3162i   0.9487 - 0.9487i
  -0.9487 + 0.9487i  -0.3162 + 0.3162i
   0.9487 - 0.9487i  -0.9487 - 0.3162i
  -0.9487 - 0.9487i   0.3162 + 0.9487i
      ⋮

Задайте случайную последовательность двоичных значений, соответствующих кодовой комбинации 8 064 битов.

cw = randi([0 1],8064,1);

Используя 256-QAM модуляцию, сгенерируйте символы модуляции PUSCH для заданного личного номера ячейки физического уровня, RNTI, пропускной способности и одного слоя передачи. Включите преобразовывают предварительное кодирование и основанную на книге шифров передачу на основе заданного TPMI и четырех антенн.

modulation = '256QAM';
ncellid = 17;
rnti = 111;
mrb = 6;
nlayers = 1;
transformPrecode = true;
txScheme = 'codebook';
tpmi = 1;
nports = 4;
sym = nrPUSCH(cw,modulation,nlayers,ncellid,rnti,transformPrecode,mrb,txScheme,nports,tpmi)
sym = 1008×4 complex

   0.0000 + 0.0000i   0.2169 + 0.2350i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.2296 + 0.3713i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  -0.0797 - 0.9008i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  -0.4767 - 0.0143i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.4124 + 0.2638i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  -0.1433 - 0.2366i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0885 - 0.1080i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.5507 - 0.1894i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  -0.3039 - 0.9165i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i  -0.1498 + 0.3356i   0.0000 + 0.0000i   0.0000 + 0.0000i
      ⋮

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

свернуть все

Кодовая комбинация UL-SCH от Раздела TS 38.212 6.2.7, заданный как вектор-столбец целых чисел от –2 до 1.

  • 0 и 1 представляют ложные и истинные битные значения, соответственно.

  • – 1 и –2 представляют x и заполнителей y в восходящей управляющей информации (UCI), соответственно. Для получения дополнительной информации смотрите Разделы TS 38.212 5.3.3.1 и 5.3.3.2.

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

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

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

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

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

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

Скремблирование идентичности, заданной как целое число от 0 до 1 023. nid является более высоким параметром слоя dataScramblingIdentityPUSCH, в пределах от от 0 до 1 023, если более высокий параметр слоя сконфигурирован. В противном случае nid является личным номером ячейки физического уровня NCellID, в пределах от от 0 до 1 007. Для получения дополнительной информации смотрите Раздел TS 38.211 6.3.1.1.

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

RNTI UE, заданного как целое число от 0 до 65 535.

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

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

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

Количество выделенных блоков ресурса PUSCH, заданных как целое число от 1 до 275. Для получения дополнительной информации смотрите Раздел TS 38.214 6.1.2.

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

Схема Transmission, заданная как одно из этих значений:

  • 'nonCodebook' — Используйте эту опцию, чтобы отключить предварительное кодирование MIMO.

  • 'codebook' — Используйте эту опцию для основанной на книге шифров передачи с помощью предварительного кодирования MIMO.

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

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

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

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

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

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

Тип данных выходных символов, заданных как 'double' или 'single'.

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

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

свернуть все

Символы модуляции PUSCH, возвращенные как комплексная матрица. Если txScheme установлен в 'codebook', количеством столбцов матрицы является nPorts. Если txScheme установлен в 'nonCodebook', количеством столбцов матрицы является nLayers.

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

Ссылки

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

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

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

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

Функции

Введенный в R2019a