nrPUSCHIndices

Сгенерируйте индексы ресурсного элемента PUSCH

Описание

пример

[ind,info,ptrsInd] = nrPUSCHIndices(carrier,pusch) возвращает ind в матричном виде, который содержит 1-х базовый физический восходящий общий канал (PUSCH) ресурсный элемент (RE) индексов, как определено в ТС 38.211 Разделах 6.3.1.6 и 6.3.1.7 [1]. Количество столбцов в ind равно количеству сконфигурированных портов антенны. carrier задает параметры конфигурации несущей для определенной нумерологии и pusch OFDM задает строение PUSCH. Когда вы активируете преобразование предварительного кодирования, выход ind содержит объединенные местоположения данных и опорный сигнал отслеживания фазы (PT-RS). Функция также возвращает структурную информацию, info, и индексы PT-RS RE, ptrsInd. Область выхода info содержит информацию о связанных физических опорных сигналах, битовой емкости и символьной емкости. ptrsInd является матрицей PT-RS RE в ресурсной сетке поставщика услуг. Когда вы активируете преобразование предварительного кодирования, выход ptrsInd представляет проекции местоположений PT-RS перед преобразованием предварительного кодирования в ресурсную сетку несущей.

пример

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

Примеры

свернуть все

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

carrier = nrCarrierConfig;

Создайте объект строения PUSCH с передачей на основе кодовой книги. Установите количество портов антенны в 4, схему модуляции в pi/2-BPSK, передали индикатор матрицы предварительного кодирования в 10 и преобразуйте предварительное кодирование в 0. Когда предварительное кодирование преобразования 0, тип формы волны является ортогональным частотным делением с циклическим префиксом (CP-OFDM). Включите опорный сигнал отслеживания фазы (PT-RS).

pusch = nrPUSCHConfig;
pusch.TransformPrecoding = 0;
pusch.Modulation = 'pi/2-BPSK';
pusch.TransmissionScheme = 'codebook';
pusch.NumAntennaPorts = 4;
pusch.TPMI = 10;
pusch.EnablePTRS = 1;

Сгенерируйте индексы PUSCH и индексы PT-RS в форме индекса.

[ind,info,ptrsInd] = nrPUSCHIndices(carrier,pusch,'IndexStyle','subscript')
ind = 31096x3 uint32 matrix

    1    1    1
    2    1    1
    3    1    1
    4    1    1
    5    1    1
    6    1    1
    7    1    1
    8    1    1
    9    1    1
   10    1    1
      ⋮

info = struct with fields:
                G: 7774
               Gd: 7774
        NREPerPRB: 156
    DMRSSymbolSet: 2
    PTRSSymbolSet: [0 1 3 4 5 6 7 8 9 10 11 12 13]

ptrsInd = 1352x3 uint32 matrix

    13     1     1
    37     1     1
    61     1     1
    85     1     1
   109     1     1
   133     1     1
   157     1     1
   181     1     1
   205     1     1
   229     1     1
      ⋮

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

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

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

pusch = nrPUSCHConfig;
pusch.NStartBWP = 10;
pusch.NSizeBWP = 41;
pusch.Modulation = '16QAM';
pusch.NID = []; % Set NID equal to the NCellID property of carrier.
pusch.PRBSet = 0:5;
pusch.TransformPrecoding = 1;
pusch.FrequencyHopping = 'intraSlot';
pusch.SecondHopStartPRB = 3;

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

[ind,info] = nrPUSCHIndices(carrier,pusch,'IndexOrientation','carrier')
ind = 864x1 uint32 column vector

   121
   122
   123
   124
   125
   126
   127
   128
   129
   130
      ⋮

info = struct with fields:
                G: 3456
               Gd: 864
        NREPerPRB: 144
    DMRSSymbolSet: [2 7]
    PTRSSymbolSet: [1x0 double]

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

numDataBits = info.G;
cws = randi([0 1],numDataBits,1);
sym = nrPUSCH(carrier,pusch,cws,'OutputDataType','single')
sym = 864x1 single column vector

  -0.7454 + 0.2981i
   0.3406 - 0.2312i
  -0.1153 + 0.2756i
   1.1921 - 0.3658i
  -0.3968 - 0.0277i
  -0.8788 - 0.6493i
  -0.8737 + 0.8318i
  -0.5764 + 0.0269i
  -1.6638 + 0.0482i
  -1.0270 - 0.1347i
      ⋮

Постройте график сгенерированных символов и индексов на ресурсной сетке поставщика услуг.

grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pusch.NumLayers]));
grid(ind) = sym;
imagesc(abs(grid(:,:,1)));
axis xy;
xlabel('OFDM Symbols');
ylabel('Subcarriers');
title('PUSCH Resource Elements in Carrier Resource Grid');

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

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

свернуть все

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

Интервалы между поднесущими в кГц, для всех каналов и опорных сигналов несущей, заданные как 15, 30, 60, 120, или 240.

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

Длина циклического префикса, заданная как один из следующих опций.

  • 'normal' - Используйте это значение, чтобы задать нормальный циклический префикс. Эта опция соответствует 14 символам OFDM в пазе.

  • 'extended' - Используйте это значение для задания расширенного циклического префикса. Эта опция соответствует 12 символам OFDM в пазе. Для нумераций, указанных в TS 38.211 Раздел 4.2, удлиненная длина циклического префикса применяется только для интервалов между поднесущими 60 кГц.

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

Количество RB в ресурсной сетке поставщика услуг, заданное в виде целого числа от 1 до 275. Значение по умолчанию 52 соответствует максимальному количеству RB несущей 10 МГц с 15 кГц SCS.

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

Запуск ресурсной сетки поставщика услуг связи относительно CRB 0, заданный в виде целого числа от 0 до 2199. Это свойство является параметром более высокого уровня offsetToCarrier.

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

Номер слота, заданный как неотрицательное целое число. Можно задать NSlot значение, больше, чем количество пазов на систему координат. Для примера можно задать это значение с помощью счетчиков цикла передачи в MATLAB® симуляция. В этом случае, возможно, вам придется убедиться, что значение свойства по модулю является количеством пазов на систему координат в коде вызова.

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

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

Количество PRB в части полосы пропускания (BWP), заданное в виде целого числа от 1 до 275. Использование [] чтобы задать это свойство в NSizeGrid свойство nrCarrierConfig объект.

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

Запуск индекса PRB BWP относительно общего ресурсного блока 0 (CRB 0), заданный в виде целого числа от 0 до 2473. Использование [] чтобы задать это свойство в NStartGrid свойство nrCarrierConfig объект.

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

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

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

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

Количество слоев передачи, заданное как 1, 2, 3, или 4.

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

Тип отображения физического общего канала, заданный как 'A' или 'B'.

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

Выделение символа OFDM физического общего канала, заданное как двухэлементный вектор неотрицательных целых чисел. Первый элемент этого свойства представляет начало выделения символа (на основе 0). Второй элемент представляет количество выделенных символов OFDM.

Когда вы устанавливаете это свойство на [] или второго элемента вектора, для 0, для канала не выделен символ.

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

Выделение физического ресурсного блока (PRB) PUSCH в BWP, заданное как вектор целых чисел от 0 до 274.

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

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

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

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

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

Схема трансмиссии PUSCH, заданная как 'nonCodebook' или 'codebook'.

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

Количество портов антенны, заданное как 1, 2, или 4. Это значение должно быть больше или равно NumLayers свойство.

Зависимости

Это свойство применимо только при TransmissionScheme установлено в 'codebook'.

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

Переданный матричный индикатор предварительного кодирования, заданный в виде целого числа от 0 до 27.

Зависимости

Это свойство применимо только при TransmissionScheme установлено в 'codebook'.

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

Скачкообразная перестройка частоты для физического общего канала восходящей линии связи, заданная как 'neither', 'intraSlot', или 'interSlot'.

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

Стартовый индекс PRB второго скачка относительно BWP, заданный в виде целого числа от 0 до 274.

Зависимости

Это свойство применимо только при FrequencyHopping установлено в 'intraSlot' или 'interSlot'.

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

Временный идентификатор радиосети пользовательского оборудования (UE), заданный в виде целого числа от 0 до 65 535.

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

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

Тип строения DM-RS, заданный как 1 или 2. Это свойство является параметром более высокого уровня dmrs-Type.

Это значение свойства должно быть 1 когда nrPUSCHDMRSConfig является свойством nrPUSCHConfig с TransformPrecoding значение свойства установлено в 1.

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

Положение первого символа OFDM DM-RS, обеспечиваемого параметром более высокого слоя dmrs-TypeA-Position, заданное как 2 или 3.

Это свойство применимо при nrPUSCHDMRSConfig является свойством nrPUSCHConfig объект с MappingType значение свойства установлено в 'A'.

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

Максимальное количество дополнительных положений DM-RS, заданное как 0, 1, 2, или 3. Это свойство является параметром более высокого слоя dmrs-AdditionalPosition.

Это значение свойства должно быть 0 или 1 когда nrPUSCHDMRSConfig является свойством nrPUSCHConfig объект с FrequencyHopping значение свойства установлено в 'intraSlot'.

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

Количество последовательных символов OFDM с передней загрузкой DM-RS, заданное как 1 (односимвольный DM-RS) или 2 (double-symbol DM-RS).

Это значение свойства должно быть 1 когда nrPUSCHDMRSConfig является свойством nrPUSCHConfig объект с FrequencyHopping значение свойства установлено в 'intraSlot'.

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

Местоположения символов OFDM DM-RS, которые основаны на 0, заданы как один из следующих опций.

  • Целое число от 0 до 13 - Для одного символа DM-RS

  • Вектор неотрицательных целых чисел от 0 до 13 - Для нескольких символов DM-RS

Каждое местоположение входного символа принято как односимвольное DM-RS в пределах выделения символа физического общего канала.

Значение по умолчанию, [], соответствует расположению символов ДМ-РС согласно ТС 38.211 Таблица 6.4.1.1.3-3, 6.4.1.1.3-4 или 6.4.1.1.3-6 [1]. Установка этого свойства переопределяет соответствующие местоположения символов DM-RS в этих стандартных интерполяционных таблицах.

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

Порты антенны DM-RS, заданные в качестве одного из следующих опций.

  • Целое число от 0 до 11 - Для одного порта антенны

  • Вектор неотрицательных целых чисел от 0 до 11 - Для нескольких портов антенны

Номинальные поддерживаемые порты антенны зависят от DMRSLength и DMRSConfigurationType значения свойств, как показано в этой таблице.

DMRSLength ЗначениеDMRSConfigurationType ЗначениеНоминальная область значений поддерживаемых портов антенны
11[0, 3]
2[0, 5]
21[0, 7]
2[0, 11]

Значение по умолчанию [] подразумевает, что порт антенны DM-RS равен 0.

Когда nrPUSCHDMRSConfig является свойством nrPUSCHConfig объект, [] подразумевает, что DMRSPortSet находится в области значений от 0 до NumLayers–1.

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

Количество групп CDM DM-RS без данных, заданное как 1, 2, или 3.

Каждое значение указывает разный набор номеров групп CDM в соответствии с TS 38.214 Раздел 6.2.2 [2].

  • 1 - номер группы CDM 0

  • 2 - номера групп CDM 0 и 1

  • 3 - номера групп CDM 0, 1 и 2

Когда TransformPrecoding свойство nrPUSCHConfig для объекта задано значение 1, это значение свойства должно быть 2.

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

Включите PT-RS, заданное в качестве одного из следующих значений.

  • 0 (false) - Отключите строение PT-RS.

  • 1 (true) - Включите строение PT-RS.

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

PUSCH PT-RS строение, заданная как nrPUSCHPTRSConfig объект. Эта функция использует только эти nrPUSCHPTRSConfig свойства.

Временная плотность PT-RS, заданная как 1, 2 или 4. Это свойство является более высоким параметром слоя timeDensity.

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

Частотная плотность PT-RS, заданная как 2 или 4. Это свойство является более высоким параметром слоя frequencyDensity.

Зависимости

Это свойство применяется только тогда, когда nrPUSCHPTRSConfig является свойством nrPUSCHConfig с TransformPrecoding установлено на 0.

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

Набор портов антенны PT-RS, заданный как двухэлементный вектор неотрицательных целых чисел. Задайте [] чтобы задать это свойство как самое низкое значение в DMRSPortSet свойство nrPUSCHDMRSConfig объект. Это использование [] значение применимо только тогда, когда nrPUSCHDMRSConfig объект используется как свойство nrPUSCHConfig объект.

Зависимости

Это свойство применяется только тогда, когда nrPUSCHPTRSConfig является свойством nrPUSCHConfig с TransformPrecoding установлено на 0.

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

Количество выборок PT-RS на группу PT-RS, заданное как 2 или 4. Это свойство является параметром более высокого слоя sampleDensity.

Зависимости

Это свойство применяется только тогда, когда nrPUSCHPTRSConfig является свойством nrPUSCHConfig с TransformPrecoding установлено на 1.

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

Количество групп PT-RS, заданное как 2, 4, или 8. Это свойство является параметром более высокого слоя sampleDensity.

Когда для этого свойства задано значение 8, количество выборок PT-RS, установленных NumPTRSSamples для свойства должно быть задано значение 4.

Зависимости

Это свойство применяется только тогда, когда nrPUSCHPTRSConfig является свойством nrPUSCHConfig с TransformPrecoding установлено на 1.

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

Смещение ресурсного элемента, заданное как '00', '01', '10', или '11'. Это свойство является параметром более высокого слоя resourceElementOffset.

Зависимости

Это свойство применяется только тогда, когда nrPUSCHPTRSConfig является свойством nrPUSCHConfig с TransformPrecoding установлено на 0.

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

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

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

Пример: 'IndexStyle','subscript','IndexBase','0based' задает форму индексации RE и основу, соответственно, выходов.

Форма индексации RE, заданная в качестве одного из следующих значений:

  • 'index' - Индексы указаны в виде линейного индекса.

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

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

RE- основы индексации, заданные как одно из следующих значений:

  • '1based' - Счетчик индексов начинается с 1.

  • '0based' - Счетчик индексов начинается с 0.

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

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

  • 'carrier' - Индексы привязаны относительно сетки перевозчика.

  • 'bwp' - Индексы ссылаются на BWP.

Зависимости

Это свойство применимо только при TransformPrecoding свойство nrPUSCHConfig для объекта задано значение 0.

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

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

свернуть все

Индексы PUSCH RE, возвращенные как одно из следующих значений.

  • N -by- P matrix - Функция возвращает этот тип значения, когда вы задаете 'IndexStyle' на 'index'. Количество столбцов зависит от TransmissionScheme свойство nrPUSCHConfig и возвращается как одно из этих значений.

    • Количество слоев передачи - когда схема передачи является некодовой

    • Количество сконфигурированных портов антенны - Когда схема передачи является кодовой книгой

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

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

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

Информация о ресурсе PUSCH, возвращенная как структура, содержащая эти поля.

ОбластьОписание
G

Емкость бита PUSCH. Это значение должно быть равно длине кодового слова из транспортного канала общего канала восходящей линии связи (UL-SCH).

Gd

Количество RE на каждом слое или порте

DMRSSymbolSet

Местоположения символов OFDM в пазе, содержащей опорный сигнал демодуляции (DM-RS). Символы основаны на 0.

NREPerPRB

Количество RE на PRB, выделенных PUSCH

PTRSSymbolSet

Местоположения символов OFDM в пазе, содержащей опорный сигнал отслеживания фазы (PT-RS). Символы основаны на 0.

Индексы PT-RS RE, возвращенные в качестве одного из следующих значений.

  • N -by- P matrix - Функция возвращает этот тип значения, когда вы задаете 'IndexStyle' на 'index'. Количество столбцов зависит от TransmissionScheme свойство nrPUSCHConfig и возвращается как одно из этих значений.

    • Количество слоев передачи - когда схема передачи является некодовой

    • Количество сконфигурированных портов антенны - Когда схема передачи является кодовой книгой

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

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

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

Ссылки

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

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

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