nrPUSCHDMRSIndices

Сгенерируйте индексы PUSCH DM-RS

Описание

пример

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

пример

ind = nrPUSCHDMRSIndices(carrier,pusch,Name,Value) задает выходные параметры форматирования при помощи одного или нескольких аргументов пары "имя-значение". Незаданные опции берут значения по умолчанию.

Примеры

свернуть все

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

carrier = nrCarrierConfig;

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

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

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

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

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

ind = nrPUSCHDMRSIndices(carrier,pusch,'IndexStyle','subscript')
ind = 3744x3 uint32 matrix

    2    3    1
    4    3    1
    6    3    1
    8    3    1
   10    3    1
   12    3    1
   14    3    1
   16    3    1
   18    3    1
   20    3    1
      ⋮

Создайте настройку поставщика услуг с интервалом поднесущей на 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;

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

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');

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

свернуть все

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

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

15 (значение по умолчанию), 30, 60, 120, 240

Интервал поднесущей в kHz

CyclicPrefix

'normal' (значение по умолчанию), 'расширенное'

Длина циклического префикса в виде одной из этих опций.

  • 'normal' соответствует 14 символам OFDM в пазе.

  • 'extended' соответствует 12 символам OFDM в пазе.

Для нумерологии, заданной в Разделе TS 38.211 4.2, расширенная длина циклического префикса применяется только для интервала поднесущей на 60 кГц.

NSizeGrid

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

Количество ресурса блокируется в сетке ресурса поставщика услуг

NStartGrid

0 (значений по умолчанию), целое число от 0 до 2 199

Запустите сетки ресурса поставщика услуг относительно общего блока 0 ресурса (CRB 0)

NSlot

0 (значение по умолчанию), неотрицательный целочисленный скаляр

Номер слота. Можно установить NSlot к значению, больше, чем количество пазов на систему координат.

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

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

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

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

NStartBWP

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

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

NumLayers

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

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

MappingType

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

Отображение типа PUSCH

SymbolAllocation

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

Символы OFDM выделяются для PUSCH

PRBSet

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

PRBs выделяется для PUSCH в BWP

TransformPrecoding

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

Преобразуйте флаг перед кодированием в виде одного из этих значений.

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

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

TransmissionScheme

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

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

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

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

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'IndexStyle','subscript','IndexBase','0based' указывает, что элемент ресурса не по умолчанию индексирует свойства форматирования.

Индексация элемента ресурса формируется в виде разделенной запятой пары, состоящей из 'IndexStyle' и одно из этих значений:

  • 'index' — Индексы находятся в линейной форме индекса.

  • 'subscript' — Индексы находятся в [поднесущая, символ, антенна] форма строки индекса.

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

Индексация элемента ресурса базируется в виде разделенной запятой пары, состоящей из 'IndexBase' и одно из этих значений:

  • '1based' — Подсчет индекса запускается от одного.

  • '0based' — Подсчет индекса начинает с нуля.

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

Индексация ориентации элементов ресурса в виде разделенной запятой пары, состоящей из 'IndexOrientation' и одно из этих значений:

  • 'carrier' — На индексы ссылаются относительно сетки поставщика услуг.

  • 'bwp' — На индексы ссылаются относительно части пропускной способности.

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

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

свернуть все

Индексы элемента ресурса DM-RS, возвращенные как одно из этих значений:

  • N-by-P матрица — функция возвращает этот тип значения когда 'IndexStyle' установлен в 'index'. Столбцы матрицы соответствуют сконфигурированным портам антенны.

  • M-by-3 матрица — функция возвращает этот тип значения когда 'IndexStyle' установлен в 'subscript'. Строки матрицы соответствуют [поднесущая, символ, антенна] индексы на основе количества поднесущих, символов OFDM и количества антенн, соответственно.

В зависимости от значения 'IndexBase', функция возвращает или индексы на основе 0 или на основе 1. В зависимости от значения 'IndexOrientation', функция возвращает или ориентированные индексы поставщика услуг или ориентированные индексы BWP.

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

Ссылки

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

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

Введенный в R2020a