nrPUSCHDMRS

Сгенерируйте символы PUSCH DM-RS

Описание

пример

sym = nrPUSCHDMRS(carrier,pusch) возвращает матрицу, содержащую символы опорного сигнала демодуляции (DM-RS) физического общего канала восходящей линии связи (PUSCH), как определено в TS 38.211 Раздел 6.4.1.1.1 [1]. carrier задает параметры конфигурации несущей для определенной нумерологии OFDM. pusch задает параметры конфигурации PUSCH.

пример

sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType',datatype) задает тип данных для символов DM-RS.

Примеры

свернуть все

Создайте объект строения поставщика услуг с свойствами по умолчанию. Этот объект соответствует несущей на 10 МГц с интервалом поднесущих 15 кГц.

carrier = nrCarrierConfig;

Создайте объект строения физического восходящего общего канала (PUSCH) с заданными свойствами. Когда предварительное кодирование преобразования установлено на 0, тип формы волны является ортогональным делением мультиплексирования (CP-OFDM) с циклическим префиксом.

pusch = nrPUSCHConfig;
pusch.TransformPrecoding = 0;
pusch.TransmissionScheme = 'codebook';
pusch.NumAntennaPorts = 4;
pusch.TPMI = 0;

Сконфигурируйте опорный сигнал демодуляции PUSCH (DM-RS) с заданными параметрами.

pusch.DMRS.DMRSAdditionalPosition = 1;
pusch.DMRS.DMRSTypeAPosition = 2;
pusch.DMRS.DMRSPortSet = 2;
pusch.DMRS.NIDNSCID = 10;
pusch.DMRS.NSCID = 1;

Сгенерируйте символы DM-RS, сопоставленные с PUSCH single тип данных.

sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType','single')
sym = 624x4 single matrix

  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 + 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 + 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 + 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
      ⋮

Создайте строение несущей с интервалом между поднесущими 30 кГц и пропускной способностью передачи 5 МГц.

carrier = nrCarrierConfig;
carrier.SubcarrierSpacing = 30;
carrier.NSizeGrid = 11;

Создайте объект строения физического восходящего общего канала (PUSCH) с заданными свойствами. Когда предварительное кодирование преобразования установлено равным 1, тип формы волны является дискретным ортогональным делением мультиплексирования преобразования фурье (DFT-s-OFDM).

pusch = nrPUSCHConfig;
pusch.NSizeBWP = 9;
pusch.NStartBWP = 1;
pusch.PRBSet = 0:3;
pusch.TransformPrecoding = 1;
pusch.FrequencyHopping = 'intraSlot';
pusch.SecondHopStartPRB = 5;

Создайте объект опорного сигнала демодуляции PUSCH (DM-RS) с заданными свойствами.

dmrs = nrPUSCHDMRSConfig;
dmrs.DMRSAdditionalPosition = 1;
dmrs.DMRSTypeAPosition = 2;
dmrs.DMRSPortSet = 3;
dmrs.GroupHopping = 1;
dmrs.SequenceHopping = 0;
dmrs.NRSID = 10;

Присвойте объект строения PUSCH DM-RS свойству DMRS объекта строения PUSCH.

pusch.DMRS = dmrs;

Сгенерируйте символы и индексы PUSCH DM-RS для указанной несущей, строения PUSCH и форматирования вывода name-value аргумент в виде пары.

sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType','single')
sym = 96x1 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
      ⋮

ind = nrPUSCHDMRSIndices(carrier,pusch,'IndexBase','0based','IndexOrientation','bwp')
ind = 96x1 uint32 column vector

   217
   219
   221
   223
   225
   227
   229
   231
   233
   235
      ⋮

Создайте сетку части полосы пропускания (BWP), а затем отобразите символы DM-RS в сетке.

bwp = complex(zeros([pusch.NSizeBWP*12 carrier.SymbolsPerSlot pusch.NumLayers]));
bwp(ind+1) = sym; % Map the DM-RS symbols

Сопоставьте BWP с ресурсной сеткой поставщика услуг, а затем отобразите сетку поставщика услуг.

grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pusch.NumLayers])); % Create carrier resource grid
offset = pusch.NStartBWP-carrier.NStartGrid; % BWP start location in the carrier grid
grid(offset*12+1:(offset+pusch.NSizeBWP)*12,:,:) = bwp;
imagesc(abs(grid(:,:,1)));
axis xy;
xlabel('OFDM Symbols');
ylabel('Subcarriers');
title('PUSCH DM-RS Resource Elements in the Carrier Resource Grid');

Figure contains an axes. The axes with title PUSCH DM-RS Resource Elements in the Carrier Resource Grid contains an object of type image.

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

свернуть все

Параметры конфигурации несущей для определенной нумерологии OFDM, заданные как nrCarrierConfig объект. Эта функция использует только эти свойства nrCarrierConfig объект.

Параметры конфигурации PUSCH, заданные как nrPUSCHConfig объект. Эта функция использует только эти свойства nrPUSCHConfig объект.

Поле свойствЗначенияОписание
NSizeBWP

[] (по умолчанию), целое число от 1 до 275

Размер части полосы пропускания (BWP) с точки зрения количества физических ресурсных блоков (PRB). Значение по умолчанию [] подразумевает, что значение равно NSizeGrid от carrier входной параметр.

NStartBWP

[] (по умолчанию), целое число от 0 до 2473

Запуск индекса PRB BWP относительно CRB 0. Значение по умолчанию [] подразумевает, что значение равно NStartGrid от carrier входной параметр.

NumLayers

1 (по умолчанию), целое число от 1 до 4

Количество слоев передачи

MappingType

'A' (по умолчанию), 'B'

Тип отображения PUSCH

SymbolAllocation

[0 14] (по умолчанию), двухэлементный вектор неотрицательных целых чисел

Символы OFDM, выделенные для PUSCH

PRBSet

[0:51] (по умолчанию), вектор неотрицательных целых чисел от 0 до 274

PRB, выделенные для PUSCH в BWP

TransformPrecoding

0 (по умолчанию), 1

Преобразуйте флаг предварительного кодирования, заданный как одно из следующих значений.

  • 0 указывает, что предварительное кодирование преобразования включено и тип формы сигнала CP-OFDM.

  • 1 указывает, что предварительное кодирование преобразования отключено и тип формы сигнала является DFT-s-OFDM.

TransmissionScheme

'nonCodebook' (по умолчанию), 'codebook'

Схема передачи PUSCH

TPMI

0 (по умолчанию), целое число от 0 до 27

Переданный матричный индикатор предварительного кодирования. Это свойство применимо при TransmissionScheme установлено в 'codebook'.

NumAntennaPorts

1 (по умолчанию), 2 или 4

Количество портов антенны. Значение должно быть больше или равно NumLayers. Это свойство применимо при TransmissionScheme установлено в 'codebook'.

FrequencyHopping

'neither (по умолчанию), 'intraSlot', или 'interSlot'

Строение скачкообразного изменения частоты для PUSCH

SecondHopStartPRB

1 (по умолчанию), целое число от 0 до 274

Запуск индекса PRB второго скачка относительно BWP

DMRS

nrPUSCHDMRSConfig объект строения

DMRS объект строения использует только эти свойства.

  • DMRSConfigurationType

  • DMRSTypeAPosition

  • DMRSLength

  • DMRSAdditionalPosition

  • CustomSymbolSet

  • DMRSPortSet

  • Эти свойства применяются только при TransformPrecoding установлено в нуль.

    • NIDNSCID

    • NSCID

  • Эти свойства применяются только при TransformPrecoding устанавливается в единицу.

    • GroupHopping

    • SequenceHopping

    • NRSID

Для получения дополнительной информации смотрите nrPUSCHDMRSConfig.

Тип данных для сгенерированных символов DM-RS, заданный как 'double' или 'single'.

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

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

свернуть все

Символы DM-RS, возвращенные как комплексная матрица. Количество столбцов соответствует количеству сконфигурированных портов антенны.

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

Ссылки

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

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

.
Введенный в R2020a