nrPUSCHIndices

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

carrier = nrCarrierConfig;

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

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

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

[ind,info] = nrPUSCHIndices(carrier,pusch,'IndexStyle','subscript')
ind = 32448x3 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: 8112
               Gd: 8112
        NREPerPRB: 156
    DMRSSymbolSet: 2
    PTRSSymbolSet: [1x0 double]

Создайте объект настройки поставщика услуг со свойствами по умолчанию. Этот объект соответствует 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');

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

свернуть все

Параметры конфигурации поставщика услуг для определенной нумерологии 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 входной параметр.

Modulation

'QPSK', '16QAM', '64QAM', или '256QAM', 'pi/2-BPSK', строковый скаляр или символьный массив

Схема Modulation кодовой комбинации

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 второго транзитного участка относительно NStartBWP

RNTI

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

Радиосеть временный идентификатор оборудования пользователя

DMRS

nrPUSCHDMRSConfig объект настройки

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

  • DMRSConfigurationType

  • DMRSTypeAPosition

  • DMRSLength

  • DMRSAdditionalPosition

  • CustomSymbolSet

  • DMRSPortSet

  • NumCDMGroupsWithoutData

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

EnablePTRS

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

Настройка PT-RS в виде одного из этих значений.

  • 0 — Отключите настройку PT-RS.

  • 1 — Включите настройку PT-RS.

PTRS

nrPUSCHPTRSConfig объект настройки

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

  • TimeDensity

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

    • FrequencyDensity

    • REOffset

    • PTRSPortSet

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

    • NumPTRSSamples

    • NumPTRSGroups

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 'bwp' — На индексы ссылаются относительно BWP.

Зависимости

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

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

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

свернуть все

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

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

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

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

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

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

Поле Описание
G

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

Gd

Количество REs на слой или порт

DMRSSymbolSet

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

NREPerPRB

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

PTRSSymbolSet

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

Ссылки

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

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

Введенный в R2020a