exponenta event banner

nrPUSCHConfig

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

Описание

nrPUSCHConfig объект устанавливает параметры конфигурации физического общего канала восходящей линии связи (PUSCH), как определено в TS 38.211, разделы 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-RS типом 1. Эта конфигурация соответствует полному распределению ресурсов по умолчанию 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.

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

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

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

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

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

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

UCI в конфигурации PUSCH

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

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

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

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

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

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

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

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

Конфигурация опорных сигналов

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

Включите PT-RS, указанный как одно из этих значений.

  • 0 (false) - Деактивизация конфигурации СТ-RS.

  • 1 (true) - активизируйте конфигурирование СТ-RS.

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

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

Примеры

свернуть все

Создайте физический объект конфигурации общего канала восходящей линии связи со схемой передачи «кодовой книги».

Задайте размер части полосы пропускания как 52, идентификатор скремблирования как 750, скачкообразную перестройку частоты как «интерслот» и количество антенных портов как 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. "НР; Физические каналы и модуляция. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2020a