exponenta event banner

nrPUCCH

Формирование символов модуляции PUCCH

    Описание

    пример

    sym = nrPUCCH(carrier,pucch,uciBits) генерирует символы модуляции физического канала управления восходящей линии связи (PUCCH) sym, как определено в TS 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;

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

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

    Сформировать символы модуляции формата 1 PUCCH.

    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;

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

    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;

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

    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;

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

    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. "НР; Физические каналы и модуляция. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

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

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