exponenta event banner

nrPUCCHIndices

Создание индексов элементов ресурсов PUCCH

    Описание

    пример

    [ind,info] = nrPUCCHIndices(carrier,pucch) производит ind, который содержит индексы элемента ресурса (RE) физического канала управления восходящей линии связи (PUCCH) на основе 1, как определено в 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;

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

    [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;

    Создайте объект конфигурации формата 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;

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

    [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;

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

    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;

    Создание индексов RE формата PUCCH 2.

    [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;

    Создайте объект конфигурации формата 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;

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

    [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;

    Создайте объект конфигурации формата 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;

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

    [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 matrix - функция возвращает этот тип значения при установке IndexStyle аргумент «имя-значение» для 'subscript'. Строки матрицы соответствуют подстрокам [поднесущей, символа, антенны] на основе количества поднесущих, символов OFDM и количества антенн соответственно.

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

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

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

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

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

    Gd

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

    NREPerPRB

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

    DMRSSymbolSet

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

    Ссылки

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

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

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