nrPUSCHConfig

Параметры конфигурации PUSCH

Описание

The nrPUSCHConfig объект устанавливает параметры конфигурации физического восходящего общего канала (PUSCH), как определено в разделах 6.3.1, 6.4.1.1 и 6.4.1.2 [1]. Этот объект связывает все свойства, участвующие в цепочке обработки PUSCH, включая скремблирование, модуляцию символов, сопоставление слоев, предварительное кодирование преобразования, предварительное кодирование MIMO и Объект также содержит свойства для определения количества ресурсов для мультиплексирования информации управления восходящей линии связи (UCI) и соответствующих физических опорных сигналов, таких как опорный сигнал демодуляции (DM-RS) и опорный сигнал отслеживания фазы (PT-RS).

Значение по умолчанию nrPUSCHConfig объект конфигурирует однослойный PUSCH с циклически-префиксным ортогональным частотным делением мультиплексированием (CP-OFDM), отображением типа A, модуляцией QPSK, выделением ресурса из 52 ресурсных блоков и 14 символов OFDM в паз и односимвольным типом DM M-RS S1. Это строение соответствует полному выделению ресурсов по умолчанию nrCarrierConfig объект.

Создание

Описание

pusch = nrPUSCHConfig создает объект строения PUSCH со свойствами по умолчанию.

пример

pusch = nrPUSCHConfig(Name,Value) задает свойства, используя один или несколько аргументы пары "имя-значение". Заключайте каждое свойство в кавычки. Для примера, 'NSizeBWP',200,'NumLayers',4 задает 200 физических ресурсных блоков (PRB) в части полосы пропускания (BWP) и 4 слои передачи. Неопределенные свойства берут значения по умолчанию.

Свойства

расширить все

Строение канала

Количество 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

Тождества скремблирования PUSCH, заданный как [] или целое число от 0 до 1023.

  • Если сконфигурирован параметр более высокого слоя dataScramblingIdentityPUSCH, NID должно быть целым числом от 0 до 1023.

  • Если параметр более высокого слоя dataScramblingIdentityPUSCH не сконфигурирован, NID должно быть целым числом от 0 до 1007.

Когда вы задаете это свойство как []объект устанавливает тождества скремблирования PUSCH на тождества камеры физического слоя, заданный как NCellID свойство перевозчика.

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

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

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

UCI на строении PUSCH

Коэффициент смещения беты HARQ-ACK, заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования HARQ-ACK. Номинальное значение является одним из значений из таблицы 9.3-1 TS 38.213.

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

Коэффициент смещения беты части 1 информации о состоянии канала (CSI), заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования части 1 CSI. Номинальное значение является одним из значений из таблицы 9.3-2 TS 38.213.

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

Коэффициент смещения беты части 2 CSI, заданный как положительное целое число. Это свойство определяет количество ресурсов для мультиплексирования CSI части 2. Номинальное значение является одним из значений из таблицы 9.3-2 TS 38.213.

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

Масштабный коэффициент для ограничения количества ресурсных элементов, выделенных для UCI на PUSCH, заданный как скаляр между 0 и 1. Номинальное значение 0,5, 0,65, 0,8 или 1.

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

Строение опорных сигналов

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

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

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

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

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

Строение опорного сигнала отслеживания фазы PUSCH (PT-RS), заданная как nrPUSCHPTRSConfig объект строения.

Примеры

свернуть все

Создайте физический объект строения общего канала восходящей линии связи со схемой передачи 'cod,'.

Задайте размер части полосы пропускания как 52, идентификатор скремблирования как 750, скачкообразное изменение частоты как 'interslot' и количество портов антенны как 2. Включите предварительное кодирование преобразования и строение PT-RS.

pusch = nrPUSCHConfig;
pusch.NSizeBWP = 52;
pusch.NID = 750;
pusch.TransmissionScheme = 'codebook';
pusch.FrequencyHopping = 'interslot';
pusch.NumAntennaPorts = 2;
pusch.TransformPrecoding = 1;
pusch.EnablePTRS = 1;
disp(pusch)
  nrPUSCHConfig with properties:

              NSizeBWP: 52
             NStartBWP: []
            Modulation: 'QPSK'
             NumLayers: 1
           MappingType: 'A'
      SymbolAllocation: [0 14]
                PRBSet: [1x52 double]
    TransformPrecoding: 1
    TransmissionScheme: 'codebook'
       NumAntennaPorts: 2
                  TPMI: 0
      FrequencyHopping: 'interSlot'
     SecondHopStartPRB: 1
         BetaOffsetACK: 20
        BetaOffsetCSI1: 6.2500
        BetaOffsetCSI2: 6.2500
            UCIScaling: 1
                   NID: 750
                  RNTI: 1
                  DMRS: [1x1 nrPUSCHDMRSConfig]
            EnablePTRS: 1
                  PTRS: [1x1 nrPUSCHPTRSConfig]

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

Ссылки

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

[2] 3GPP TS 38.213. "NR; Процедуры физического слоя для контроля ". 3-ья Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

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