nrPUSCHConfig

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

Описание

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

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

Создание

Описание

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

пример

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

Свойства

развернуть все

Настройка канала

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

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

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

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

Схема Modulation в виде '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 ложь) — Отключают, преобразовывают предварительное кодирование. Тип формы волны является циклически-префиксным ортогональным делением частоты, мультиплексирующим (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 до 1 023.

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

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

Когда вы задаете это свойство как [], объект устанавливает 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 в виде положительного целого числа. Это свойство определяет количество ресурсов для мультиплексирования части 2 CSI. Номинальная стоимость является одной из записи из Таблицы 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 ложь) — Отключают настройку PT-RS.

  • 1 TRUE) — Включают настройку PT-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: [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... ]
    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 object. The axes object with title PUSCH Resource Elements in Carrier Resource Grid contains an object of type image.

Ссылки

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

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

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

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

Введенный в R2020a