nrPUCCH

Сгенерируйте символы модуляции PUCCH

    Описание

    пример

    sym = nrPUCCH(carrier,pucch,uciBits) генерирует символы модуляции физического канала управления восходящей линии связи (PUCCH) sym, как определено в ТС 38.211 Разделы 6.3.2.3 - 6.3.2.6 [1] для всех форматов PUCCH. carrier задает строение поставщика услуг. pucch задает специфичную для формата строение PUCCH. uciBits задает биты управляющей информации восходящего канала (UCI).

    пример

    sym = nrPUCCH(carrier,pucch,uciBits,'OutputDataType',datatype) задает тип данных символов PUCCH.

    Примеры

    свернуть все

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

    carrier = nrCarrierConfig;

    Задайте тождества камеры физического слоя как 490, циклический префикс как нормальный и номер паза как 57.

    carrier.NCellID = 490;
    carrier.CyclicPrefix = 'normal';
    carrier.NSlot = 57;

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

    pucch0 = nrPUCCH0Config;

    Укажите первый индекс символа в пазе передачи PUCCH как 11, и количество выделенных символов PUCCH как 2. Включите внутрислотовое скачкообразное изменение частоты и скачкообразное изменение группы. Установите начальный циклический сдвиг равным 7.

    pucch0.SymbolAllocation = [11 2];
    pucch0.FrequencyHopping = 'intraSlot';
    pucch0.GroupHopping = 'enable';
    pucch0.HoppingID = [];      % Set HoppingID equal to the NCellID property of carrier
    pucch0.InitialCyclicShift = 7;
     

    Задайте передачу без HARQ-ACK и с положительным SR.

    sr = 1;                    % Positive SR transmission
    ack = [];
    uciBits = {ack, sr}; 

    Сгенерируйте символы модуляции формата PUCCH 0.

    sym = nrPUCCH(carrier,pucch0,uciBits)
    sym = 24×1 complex
    
      -0.7071 - 0.7071i
      -0.9659 + 0.2588i
      -0.9659 - 0.2588i
       0.7071 - 0.7071i
      -0.2588 - 0.9659i
      -0.9659 - 0.2588i
      -0.7071 - 0.7071i
       0.2588 + 0.9659i
      -0.2588 + 0.9659i
      -0.7071 - 0.7071i
          ⋮
    
    

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

    carrier = nrCarrierConfig;

    Укажите несущую 60 кГц с расширенным циклическим префиксом. Установите количество (ресурсных блоков) RB в ресурсной сетке поставщика услуг, равное 80, и номер паза, равный 3.

    carrier.SubcarrierSpacing = 60;
    carrier.CyclicPrefix = 'extended';
    carrier.NSizeGrid = 80;
    carrier.NSlot = 3;

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

    pucch1 = nrPUCCH1Config;

    Укажите первый индекс символа в пазе передачи PUCCH как 2, и количество выделенных символов PUCCH как 10. Включите внутрислотовое скачкообразное изменение частоты и скачкообразное изменение группы. Установите тождества скачкообразного изменения равным 512, начальный циклический сдвиг равным 7 и ортогональный индекс кода покрытия (OCCI) равным 1.

    pucch1.SymbolAllocation = [2 10];
    pucch1.FrequencyHopping = 'intraSlot';
    pucch1.GroupHopping = 'enable';
    pucch1.HoppingID = 512;
    pucch1.InitialCyclicShift = 7;
    pucch1.OCCI = 1;

    Задайте передачу с двухбитным HARQ-ACK.

    uciBits = [1;0];

    Сгенерируйте символы модуляции формата PUCCH 1.

    sym = nrPUCCH(carrier,pucch1,uciBits)
    sym = 60×1 complex
    
       1.0000 + 0.0000i
       0.5000 + 0.8660i
      -0.8660 - 0.5000i
       0.0000 + 1.0000i
      -0.8660 + 0.5000i
       0.8660 + 0.5000i
       1.0000 - 0.0000i
       0.8660 - 0.5000i
      -0.8660 - 0.5000i
       1.0000 - 0.0000i
          ⋮
    
    

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

    carrier = nrCarrierConfig;

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

    pucch2 = nrPUCCH2Config;

    Укажите тождества скремблирования данных как 1000, а временный идентификатор радиосети как 160.

    pucch2.NID = 1000;
    pucch2.RNTI = 160;

    Создайте случайную последовательность двоичных значений, соответствующих кодовому слову UCI в 100 битах.

    uciCW = randi([0 1],100,1);

    Сгенерируйте символы модуляции формата PUCCH 2 типа данных single.

    sym = nrPUCCH(carrier,pucch2,uciCW,'OutputDataType','single')
    sym = 50x1 single column vector
    
       0.7071 + 0.7071i
      -0.7071 + 0.7071i
      -0.7071 - 0.7071i
      -0.7071 - 0.7071i
       0.7071 + 0.7071i
      -0.7071 + 0.7071i
       0.7071 - 0.7071i
       0.7071 + 0.7071i
       0.7071 - 0.7071i
       0.7071 - 0.7071i
          ⋮
    
    

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

    carrier = nrCarrierConfig;
    carrier.NCellID = 135;

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

    pucch3 = nrPUCCH3Config;

    Задайте схему модуляции как pi/2-BPSK, выделение PRB PUCCH в диапазоне от 70 до 74 (занимая 5 ресурсных блоков) и временный идентификатор радиосети 2560.

    pucch3.Modulation = 'pi/2-BPSK';
    pucch3.PRBSet = 70:74;
    pucch3.RNTI = 2560;

    Создайте случайную последовательность двоичных значений, соответствующих кодовому слову UCI в 120 битах.

    uciCW = randi([0 1],120,1);

    Сгенерируйте символы модуляции PUCCH формата 3 single типа данных.

    sym = nrPUCCH(carrier,pucch3,uciCW,'OutputDataType','single')
    sym = 120x1 single column vector
    
       0.1826 - 0.5477i
      -1.0861 - 0.3479i
       0.6300 + 0.8742i
      -0.5093 + 0.6652i
       0.1911 - 0.7721i
       0.1157 + 0.4320i
       0.3199 - 1.0054i
       1.4349 - 1.7045i
       0.4180 - 0.4832i
       0.0044 - 0.3429i
          ⋮
    
    

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

    carrier = nrCarrierConfig;
    carrier.NCellID = 140;

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

    pucch4 = nrPUCCH4Config;

    Задайте схему модуляции как QPSK, коэффициент расширения как 4, OCCI как 3 и временный идентификатор радиосети как 750.

    pucch4.Modulation = 'QPSK';
    pucch4.SpreadingFactor = 4;
    pucch4.OCCI = 3;
    pucch4.RNTI = 750;

    Создайте случайную последовательность двоичных значений, соответствующих кодовому слову UCI в 120 битах.

    uciCW = randi([0 1],120,1);

    Сгенерируйте символы модуляции формата PUCCH 4.

    sym = nrPUCCH(carrier,pucch4,uciCW)
    sym = 240×1 complex
    
       0.0000 + 0.0000i
       0.5977 + 0.5977i
       0.0000 + 0.0000i
       0.0000 + 0.0000i
       0.0000 + 0.0000i
      -2.2307 - 2.2307i
       0.0000 + 0.0000i
       0.0000 + 0.0000i
       0.0000 + 0.0000i
      -0.8165 - 0.8165i
          ⋮
    
    

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

    свернуть все

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

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

    UCI- бит, заданный как двоичный вектор-столбец, одноэлементный массив ячеек или двухэлементный массив ячеек в зависимости от типа формата. Когда вы задаете этот аргумент как массив ячеек, каждый элемент массива должен быть вектором-столбцом.

    • Для формата 0 необходимо задать двоичный вектор-столбец, массив ячеек с одним элементом или массив ячеек с двумя элементами.

      • Когда вы задаете это значение как двоичный вектор-столбец или одноэлементный массив ячеек, биты UCI приняты как биты гибридного автоматического запроса на подтверждение повторения (HARQ-ACK).

      • Когда вы задаете это значение как двухэлементный массив ячеек, первый элемент, как принято, имеет биты HARQ-ACK, и второй элемент, как принято, имеет бит запроса планирования (SR).

    • Для формата 1 необходимо задать двоичный вектор-столбец или одноэлементный массив ячеек. Этот аргумент должен содержать биты HARQ-ACK или биты SR. Чтобы передать только положительный бит SR, задайте этот аргумент следующим [0] или {0}.

    • Для форматов 2, 3 и 4 необходимо задать двоичный вектор-столбец или массив ячеек с одним элементом. Этот аргумент должен содержать кодовое слово закодированных UCI бит.

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

    Тип данных выходных символов, заданный как 'double' или 'single'.

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

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

    свернуть все

    Символы модуляции PUCCH для заданного формата, возвращенные как комплексный вектор-столбец.

    Типы данных: single | double
    Поддержка комплексного числа: Да

    Ссылки

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

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

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