nrPUSCHConfig

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

Описание

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

По умолчанию объект конфигурирует физический восходящий канал совместно использованный канал с циклически-префиксным ортогональным делением частоты, мультиплексирующим (CP-OFDM), занимающий пропускную способность на 10 МГц при интервале поднесущей на 15 кГц (52 блока ресурса) и охват более чем 14 символов OFDM в пазе.

Создание

Описание

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 — Предварительное кодирование преобразования включено, и типом формы волны является 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

Скремблирование идентичности в виде целого числа от 0 до 1 023. Использование установить это свойство на NCellID свойство nrCarrierConfig объект.

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

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

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

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

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

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

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

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

Настройка PUSCH PT-RS в виде nrPUSCHPTRSConfig объект настройки. Это свойство относится к фазе, отслеживающей ссылочную настройку сигнала, и содержит все свойства заданного 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
                   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).

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');

Ссылки

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

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

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

Введенный в R2020a