nrPUCCHIndices

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

    Описание

    пример

    [ind,info] = nrPUCCHIndices(carrier,pucch) генерирует ind, который содержит физический восходящий канал управления на основе 1 (PUCCH) индексы элемента ресурса (RE), как задано в Разделе TS 38.211 6.3.2 [1] для всех форматов PUCCH. carrier задает настройку несущей. pucch задает настройку PUCCH. Функция также генерирует info, который содержит информацию о емкости в битах и способности символа восходящей управляющей информации (UCI) на PUCCH.

    пример

    [ind,info] = nrPUCCHIndices(carrier,pucch,Name,Value) задает выходные параметры форматирования с помощью одних или нескольких аргументов name-value.

    Примеры

    свернуть все

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

    carrier = nrCarrierConfig;

    Создайте объект настройки формата 0 PUCCH по умолчанию.

    pucch0 = nrPUCCH0Config;

    Задайте размер части полосы пропускания (BWP) как 35 и запуск индекс PRB BWP относительно CRB 0 как 12. Задайте первый индекс символа в пазе передачи PUCCH как 3 и количество выделенных символов PUCCH как 2. Установите PRB, выделенный для PUCCH 20, включите скачкообразное движение частоты внутрипаза и установите запуск индекс PRB второго транзитного участка к 10.

    pucch0.NSizeBWP = 35;
    pucch0.NStartBWP = 12;
    pucch0.SymbolAllocation = [3 2];
    pucch0.PRBSet = 20;
    pucch0.FrequencyHopping = 'intraSlot';
    pucch0.SecondHopStartPRB = 10;

    Сгенерируйте формат 0 PUCCH индексы RE, установив ориентацию индекса относительно сетки несущей.

    [ind,info] = nrPUCCHIndices(carrier,pucch0,'IndexOrientation','carrier')
    ind = 24x1 uint32 column vector
    
       2257
       2258
       2259
       2260
       2261
       2262
       2263
       2264
       2265
       2266
          ⋮
    
    
    info = struct with fields:
                    G: 24
                   Gd: 24
            NREPerPRB: 24
        DMRSSymbolSet: [1x0 double]
    
    

    Постройте сгенерированный REs для формата 0 PUCCH в сетке ресурса несущей.

    resGrid = nrResourceGrid(carrier);
    resGrid(ind) = 1;
    imagesc(resGrid)
    axis xy
    xlabel('OFDM Symbols')
    ylabel('Subcarriers')
    title('Carrier Grid Containing PUCCH Format 0')

    Figure contains an axes object. The axes object with title Carrier Grid Containing PUCCH Format 0 contains an object of type image.

    Создайте объект настройки несущей по умолчанию.

    carrier = nrCarrierConfig;

    Задайте несущую на 60 кГц с расширенным циклическим префиксом. Определите номер RBS в сетке ресурса несущей к 55 и номере слота к 12.

    carrier.SubcarrierSpacing = 60;
    carrier.CyclicPrefix = 'extended';
    carrier.NSizeGrid = 55;
    carrier.NSlot = 12;

    Создайте объект настройки формата 1 PUCCH по умолчанию.

    pucch1 = nrPUCCH1Config;

    Задайте первый индекс символа в пазе передачи PUCCH как 3 и количество выделенных символов PUCCH как 8. Включите скачкообразное движение частоты внутрипаза и установите запуск индекс PRB второго транзитного участка к 35.

    pucch1.NSizeBWP = [];                  % Set NSizeBWP equal to the NSizeGrid property of carrier
    pucch1.NStartBWP = [];                 % Set NStartBWP equal to the NStartGrid property of carrier
    pucch1.SymbolAllocation = [3 8];
    pucch1.FrequencyHopping = 'intraSlot';
    pucch1.SecondHopStartPRB = 35;

    Сгенерируйте формат 1 PUCCH индексы RE.

    [ind,info] = nrPUCCHIndices(carrier,pucch1)
    ind = 48x1 uint32 column vector
    
       2641
       2642
       2643
       2644
       2645
       2646
       2647
       2648
       2649
       2650
          ⋮
    
    
    info = struct with fields:
                    G: 48
                   Gd: 48
            NREPerPRB: 48
        DMRSSymbolSet: [3 5 7 9]
    
    

    Постройте сгенерированный REs для формата 1 PUCCH в сетке ресурса несущей.

    resGrid = nrResourceGrid(carrier);
    resGrid(ind) = 1;
    imagesc(resGrid)
    axis xy
    xlabel('OFDM Symbols')
    ylabel('Subcarriers')
    title('Carrier Grid Containing PUCCH Format 1')

    Figure contains an axes object. The axes object with title Carrier Grid Containing PUCCH Format 1 contains an object of type image.

    Создайте объект настройки несущей по умолчанию.

    carrier = nrCarrierConfig;

    Задайте количество RBS в сетке ресурса несущей как 24, запуск сетки ресурса несущей относительно CRB 0 как 20, и номер слота как 43.

    carrier.NSizeGrid = 24;
    carrier.NStartGrid = 20;
    carrier.NSlot = 43;

    Создайте объект настройки формата 2 PUCCH по умолчанию.

    pucch2 = nrPUCCH2Config;

    Задайте первый индекс символа в пазе передачи PUCCH как 5 и количество выделенных символов PUCCH как 2. Установите PRBs, выделенный для PUCCH лежать в диапазоне от 0 до 15 и включать скачкообразное движение частоты внутрипаза. Установите запуск индекс PRB второго транзитного участка к 7.

    pucch2.SymbolAllocation = [5 2];
    pucch2.PRBSet = 0:15;
    pucch2.FrequencyHopping = 'intraSlot';
    pucch2.SecondHopStartPRB = 7;

    Сгенерируйте формат 2 PUCCH индексы RE.

    [ind,info] = nrPUCCHIndices(carrier,pucch2)
    ind = 256x1 uint32 column vector
    
       1441
       1443
       1444
       1446
       1447
       1449
       1450
       1452
       1453
       1455
          ⋮
    
    
    info = struct with fields:
                    G: 512
                   Gd: 256
            NREPerPRB: 16
        DMRSSymbolSet: [5 6]
    
    

    Постройте сгенерированный REs для формата 2 PUCCH в сетке ресурса несущей.

    resGrid = nrResourceGrid(carrier);
    resGrid(ind) = 1;
    imagesc(resGrid)
    axis xy
    xlabel('OFDM Symbols')
    ylabel('Subcarriers')
    title('Carrier Grid Containing PUCCH Format 2')

    Figure contains an axes object. The axes object with title Carrier Grid Containing PUCCH Format 2 contains an object of type image.

    Создайте объект настройки несущей по умолчанию.

    carrier = nrCarrierConfig;

    Создайте объект настройки формата 3 PUCCH по умолчанию.

    pucch3 = nrPUCCH3Config;

    Задайте выделение PRB PUCCH, чтобы лежать в диапазоне от 0 до 11. Установите первый индекс символа в пазе передачи PUCCH к 2 и количество выделенных символов PUCCH к 12. Включите дополнительный флаг настройки DM-RS.

    pucch3.NSizeBWP = [];
    pucch3.NStartBWP = [];
    pucch3.PRBSet = 0:11;
    pucch3.SymbolAllocation = [2 12];
    pucch3.AdditionalDMRS = 1;

    Сгенерируйте формат 3 PUCCH индексы RE, установив ориентацию индекса относительно сетки несущей.

    [ind,info] = nrPUCCHIndices(carrier,pucch3,'IndexOrientation','carrier')
    ind = 1152x1 uint32 column vector
    
       1249
       1250
       1251
       1252
       1253
       1254
       1255
       1256
       1257
       1258
          ⋮
    
    
    info = struct with fields:
                    G: 2304
                   Gd: 1152
            NREPerPRB: 96
        DMRSSymbolSet: [3 6 9 12]
    
    

    Постройте сгенерированный REs для формата 3 PUCCH в сетке ресурса несущей.

    resGrid = nrResourceGrid(carrier);
    resGrid(ind) = 1;
    imagesc(resGrid)
    axis xy
    xlabel('OFDM Symbols')
    ylabel('Subcarriers')
    title('Carrier Grid Containing PUCCH Format 3')

    Figure contains an axes object. The axes object with title Carrier Grid Containing PUCCH Format 3 contains an object of type image.

    Создайте объект настройки несущей по умолчанию.

    carrier = nrCarrierConfig;

    Создайте объект настройки формата 4 PUCCH по умолчанию.

    pucch4 = nrPUCCH4Config;

    Задайте схему модуляции так же pi/2-BPSK и выделенный PRB для PUCCH как 50. Установите первый индекс символа в пазе передачи PUCCH к 2 и количество выделенных символов PUCCH к 10. Включите скачкообразное движение частоты внутрипаза и дополнительный флаг настройки DM-RS. Установите запуск индекс PRB второго транзитного участка к 10.

    pucch4.Modulation = 'pi/2-BPSK';
    pucch4.PRBSet = 50;
    pucch4.SymbolAllocation = [2 10];
    pucch4.FrequencyHopping = 'intraSlot';
    pucch4.SecondHopStartPRB = 10;
    pucch4.AdditionalDMRS = 1;

    Сгенерируйте формат 4 PUCCH индексы RE.

    [ind,info] = nrPUCCHIndices(carrier,pucch4)
    ind = 72x1 uint32 column vector
    
       1849
       1850
       1851
       1852
       1853
       1854
       1855
       1856
       1857
       1858
          ⋮
    
    
    info = struct with fields:
                    G: 36
                   Gd: 36
            NREPerPRB: 72
        DMRSSymbolSet: [3 5 8 10]
    
    

    Постройте сгенерированный REs для формата 4 PUCCH в сетке ресурса несущей.

    resGrid = nrResourceGrid(carrier);
    resGrid(ind) = 1;
    imagesc(resGrid)
    axis xy
    xlabel('OFDM Symbols')
    ylabel('Subcarriers')
    title('Carrier Grid Containing PUCCH Format 4')

    Figure contains an axes object. The axes object with title Carrier Grid Containing PUCCH Format 4 contains an object of type image.

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

    свернуть все

    Параметры конфигурации несущей для определенной нумерологии OFDM в виде nrCarrierConfig объект. Эта функция только использует их nrCarrierConfig свойства объектов.

    Параметры конфигурации PUCCH в виде одной из этих опций.

    Аргументы name-value

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

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

    Индексация RE формируется в виде одного из этих значений:

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

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

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

    Индексация RE базируется в виде одного из этих значений:

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

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

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

    Ориентация индексации RE в виде одного из этих значений:

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

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

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

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

    свернуть все

    Индексы РЕ PUCCH, возвращенные как одно из этих значений:

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

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

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

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

    Информация о ресурсе PUCCH, возвращенная как структура, содержащая эти поля. Типом выходных данных каждого поля является double.

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

    Емкость в битах PUCCH, возвращенного как значение, которое равно длине UCI, закодировала кодовую комбинацию для форматов 2, 3, и 4.

    Gd

    Способность символа PUCCH

    NREPerPRB

    Количество REs на PRB, выделенный PUCCH (включая распространяющийся фактор)

    DMRSSymbolSet

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

    Ссылки

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

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

    Смотрите также

    Функции

    Объекты

    Введенный в R2021a