nrPUCCHIndices

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

    Описание

    пример

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

    пример

    [ind,info] = nrPUCCHIndices(carrier,pucch,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;

    Сгенерируйте индексы PUCCH формата 0 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]
    
    

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

    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. The axes with title Carrier Grid Containing PUCCH Format 0 contains an object of type image.

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

    carrier = nrCarrierConfig;

    Укажите несущую 60 кГц с расширенным циклическим префиксом. Установите количество RB в ресурсной сетке поставщика услуг, равное 55, и номер паза, равный 12.

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

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

    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;

    Сгенерируйте индексы PUCCH формата 1 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]
    
    

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

    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. The axes with title Carrier Grid Containing PUCCH Format 1 contains an object of type image.

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

    carrier = nrCarrierConfig;

    Укажите количество RB в ресурсной сетке поставщика услуг как 24, начало ресурсной сетки поставщика услуг связи относительно CRB 0 как 20 и номер паза как 43.

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

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

    pucch2 = nrPUCCH2Config;

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

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

    Сгенерируйте индексы PUCCH формата 2 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]
    
    

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

    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. The axes with title Carrier Grid Containing PUCCH Format 2 contains an object of type image.

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

    carrier = nrCarrierConfig;

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

    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;

    Сгенерируйте индексы PUCCH формата 3 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]
    
    

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

    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. The axes with title Carrier Grid Containing PUCCH Format 3 contains an object of type image.

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

    carrier = nrCarrierConfig;

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

    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;

    Сгенерируйте индексы PUCCH формата 4 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]
    
    

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

    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. The axes with title Carrier Grid Containing PUCCH Format 4 contains an object of type image.

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

    свернуть все

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

    Параметры конфигурации PUCCH, заданные как один из следующих опций.

    Аргументы в виде пар имя-значение

    Задайте необязательные разделенные разделенными запятой парами 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 RE, возвращенные как одно из следующих значений:

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

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

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

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

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

    ОбластьОписание
    G

    Битовая емкость PUCCH, возвращаемая как значение, которое равно длине кодированного кодового слова UCI для форматов 2, 3 и 4.

    Gd

    Емкость символа PUCCH

    NREPerPRB

    Количество RE на PRB, выделенных PUCCH (включая коэффициент расширения)

    DMRSSymbolSet

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

    Ссылки

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

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

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