Форматы управляющей информации нисходящего канала NR

Этот пример вводит форматы нисходящей управляющей информации (DCI) NR и их определения, и показывает, как использовать классы MATLAB®, чтобы представлять форматы DCI и закодировать и декодировать информационные полезные нагрузки бита DCI.

Введение

NR и LTE используют нисходящую управляющую информацию (DCI), чтобы отправить динамические управляющие сообщения физического уровня от сети до каждого UE. Эта информация может быть в масштабе всей системы или определенной для оборудования пользователя (UE-specific) и содержит аспекты восходящего и нисходящего планирования данных, управления HARQ, управления степенью и другой сигнализации. Непрямая непрямая управляющая информация (SCI) использования, чтобы нести управляющие сообщения PHY между UEs с помощью подобного механизма.

NR задает много различных форматов DCI, каждый служащий различному использованию, например, планированию PUSCH или PDSCH. Каждый формат задает упорядоченное множество битовых полей, куда каждое поле передает отличную информацию о передаче, такой присвоение ресурса частоты, присвоение ресурса времени, версия сокращения, и модуляция и кодирование. Количество битов, сопоставленных с полем, может быть зафиксировано или зависеть от другого состояния протокола, например, активного размера BWP. Вся полевая карта, в порядке определения формата, на набор информационных битов, которые затем закодированы и продолжены физический нисходящий канал управления (PDCCH). Отображение таково, что старший значащий бит каждого поля сопоставлен с информационным битом самым низкоуровневым для того поля. Для NR DCI и дополнение нулевых битов и усечение могут быть применены, чтобы выровнять размеры полезной нагрузки согласно различным форматам DCI. Это выравнивание размера упрощает слепой процесс декодирования и сокращает количество уникальных размеров полезной нагрузки, которые должны разыскиваться.

Поля, заданные в формате, могут также зависеть от типа RNTI, сопоставленного с управляющей информацией, например, информацией о системе, разбивкой на страницы, управлением степенью и пользователем, планирующим. Это значение RNTI скремблирует CRC, присоединенный к информационной полезной нагрузке бита, отправленной на PDCCH.

Форматы DCI, поддержанные Релизом 16 NR:

DCI ФорматИспользование0_0Scheduling из PUSCH \in один ячейка0_1Scheduling из один или несколько PUSCH \in один ячейка, или указание нисходящий канал обратная связь информация для сконфигурированный предоставление PUSCH (CG-DFI)0_2Scheduling из PUSCH \in один ячейка1_0Scheduling из PDSCH \in один ячейка1_1Scheduling из PDSCH \in один ячейка, и/или инициирование один выстрел HARQ-ACK книга шифров обратная связь1_2Scheduling из PDSCH \in один ячейка2_0Notifying a группа из UEs из  паз формат, доступный RB наборы, Раскладушка длительность и поиск пробел набор группа переключение2_1Notifying a группа из UEs из  PRB (s) и OFDM символ (символы) где UE май принять нет передача  предназначенный для  UE2_2Transmission из TPC команды для PUCCH и PUSCH2_3Transmission из a группа из TPC команды для SRS передачи  один или больше UEs2_4Notifying a группа из UEs из  PRB (s) и OFDM символ (символы) где UE отмены  соответствующий UL передача от  UE2_5Notifying  доступность из мягкий ресурсы как заданный \in Пункт 9.3.1 из TS 38.4732_6Notifying  степень сохранение информация снаружи DRX Активный Время для один или больше UEs3_0Scheduling из НОМЕР непрямой \in один ячейка3_1Scheduling из LTE непрямой \in один ячейка

Представление форматов DCI с классами MATLAB

Классы MATLAB могут использоваться к форматам модели DCI и полям, где отдельное определение класса представляет каждый формат, и полям каждого формата упорядочивают свойства класса.

В этом примере, класс MATLAB BitField представляет одно поле DCI. Каждый объект поля имеет свойства сохранить значение поля, текущий диаметр долота и набор возможных размеров, которые могут зависеть от состояния протокола. Этот класс также задает методы, чтобы сопоставить значение поля с и от информационных битов.

Класс MATLAB MessageFormat обеспечивает базовый класс, из которого можно вывести определенные классы формата. Каждый выведенный класс формата задает набор свойств типа BitField для всех полей DCI, в порядке, что они появляются для того формата. MessageFormat базовый класс также задает методы, чтобы сопоставить все поля DCI производного класса с и от информационных битов. Кроме того, MessageFormat класс перегружает отображение, присвоение свойства и ссылочную функциональность, чтобы обеспечить легкий, прямой доступ к значениям полей. Этот класс поддерживает дополнительное дополнение нуля для выравнивания ширины, но не поддерживает автоматическое усечение выравнивания.

Формат 1_0 DCI с CRC, скремблированным SI-RNTI

Форматы NR DCI часто имеют большое количество полей, размеры которых зависят от полустатического состояния протокола UE RRC. Этот пример использует формат 1_0 DCI, скремблированный SI-RNTI из-за его простой полевой последовательности.

Эта таблица описывает упорядоченные поля и bitwidths, сопоставленный с форматом 1_0 DCI, когда CRC скремблирован SI-RNTI.

DCI Формат 1_0 поле  (SI-RNTI)РазмерFrequency область ресурс “()” Присвоениеlog2(NRBDL,BWP(NRBDL,BWP+1)/2)биты, гдеNRBDL,BWP  размер из CORESET 0Time область ресурс “()” Присвоение4 биты как заданный \in Пункт 5.1.2.1 из TS 38.214VRB-к-PRB отображение1 бит соответственно к TS 38.212 Таблица 7.3.1.2.2-5Modulation и кодирование схема5 биты как заданный \in Пункт 5.1.3 из TS 38.214 Таблица 5.1.3.1-1Redundancy версия2 биты как заданный \in TS 38.212 Таблица 7.3.1.1.1-2System информация индикатор 1 бит как заданный \in TS 38.212 Таблица 7.3.1.2.1-2Reserved биты17 биты для операция \in a ячейка с разделяемый спектр канал доступ; в противном случае 15 биты

Задайте DCIFormat1_0_SIRNTI класс для формата путем получения из MessageFormat и определение BitField свойство для каждого поля формата. В этом формате первые и последние поля имеют bitwidths, которые зависят от параметров состояния протокола (CORESET 0 размеров и совместно использовала ли ячейка доступ к спектру), и поэтому ширина поля установлена в конструкторе класса. Это гарантирует, что bitwidths измерены правильно перед использованием DCIFormat1_0_SIRNTI.

% DCI format 1_0 with CRC scrambled by SI-RNTI
classdef DCIFormat1_0_SIRNTI < MessageFormat
            
    properties
                
        FrequencyDomainResources = BitField();    % Field size depends on CORESET 0 size provided to the constructor
        TimeDomainResources = BitField(4);        % 4 bits
        VRBToPRBMapping = BitField(1);            % 1 bit
        ModulationCoding = BitField(5);           % 5 bit MCS
        RedundancyVersion = BitField(2);          % 2 bit RV
        SystemInformationIndicator = BitField(1); % 1 bit
        ReservedBits = BitField(15);              % 15 bits reserved (17 bits if Release 16 shared spectrum is enabled in constructor)
    
    end
         
    methods
        
        function obj = DCIFormat1_0_SIRNTI(NDLRB,sharedspectrum)
        % Class constructor
          ...
        end

    end

end

Формат 1_0 DCI с CRC, скремблированным SI-RNTI

Используйте DCIFormat1_0_SIRNTI объекты сопоставить значения полей с информационными полезными нагрузками бита для этого формата и проанализировать информационные биты назад в значения полей.

% Create DCI format 1_0 object for SI-RNTI and the given cell configuration parameters
CORESET0NRB = 24;
Rel16SharedSpectrum = 0;
dciformat1_0 = DCIFormat1_0_SIRNTI(CORESET0NRB,Rel16SharedSpectrum);

% The display customization prints the BitField property values directly
% along with the format padding and alignment related properties
display(dciformat1_0)
dciformat1_0 = 
  DCIFormat1_0_SIRNTI with field values:

      FrequencyDomainResources: 0
           TimeDomainResources: 0
               VRBToPRBMapping: 0
              ModulationCoding: 0
             RedundancyVersion: 0
    SystemInformationIndicator: 0
                  ReservedBits: 0

   Writeable properties:
                  AlignedWidth: []

   Read-only properties:
                         Width: 37

% Use the info function to get the individual field sizes
info(dciformat1_0,'fieldsizes')
ans = struct with fields:
      FrequencyDomainResources: 9
           TimeDomainResources: 4
               VRBToPRBMapping: 1
              ModulationCoding: 5
             RedundancyVersion: 2
    SystemInformationIndicator: 1
                  ReservedBits: 15

% Get the non-padded bitwidth for this format and configuration
% 
% Without any further alignment padding, the number of information bits 
% is given by the Width property
dciformat1_0.Width
ans = 37
% Set the aligned width if the information bit payload should
% be padded to a specific size 
dciformat1_0.AlignedWidth = 40
dciformat1_0 = 
  DCIFormat1_0_SIRNTI with field values:

      FrequencyDomainResources: 0
           TimeDomainResources: 0
               VRBToPRBMapping: 0
              ModulationCoding: 0
             RedundancyVersion: 0
    SystemInformationIndicator: 0
                  ReservedBits: 0

   Writeable properties:
                  AlignedWidth: 40

   Read-only properties:
                         Width: 40
                  PaddingWidth: 3

% Create a DCI message for transmission on PDCCH
txdci = dciformat1_0;

% Set the DCI field values
% 
% The assignment customization allows the BitField property values to be set directly 
txdci.FrequencyDomainResources = 10;
txdci.TimeDomainResources = 3;
txdci.ModulationCoding = 3;
txdci.RedundancyVersion = 3;
display(txdci);
txdci = 
  DCIFormat1_0_SIRNTI with field values:

      FrequencyDomainResources: 10
           TimeDomainResources: 3
               VRBToPRBMapping: 0
              ModulationCoding: 3
             RedundancyVersion: 3
    SystemInformationIndicator: 0
                  ReservedBits: 0

   Writeable properties:
                  AlignedWidth: 40

   Read-only properties:
                         Width: 40
                  PaddingWidth: 3

% Map the DCI format fields into information payload bits
dciinfobits = toBits(txdci)
dciinfobits = 40x1 int8 column vector

   0
   0
   0
   0
   0
   1
   0
   1
   0
   0
      ⋮

% Map DCI format fields from information bits
rxdci = fromBits(dciformat1_0,dciinfobits)
rxdci = 
  DCIFormat1_0_SIRNTI with field values:

      FrequencyDomainResources: 10
           TimeDomainResources: 3
               VRBToPRBMapping: 0
              ModulationCoding: 3
             RedundancyVersion: 3
    SystemInformationIndicator: 0
                  ReservedBits: 0

   Writeable properties:
                  AlignedWidth: 40

   Read-only properties:
                         Width: 40
                  PaddingWidth: 3

isequal(txdci,rxdci)
ans = logical
   1

% Encode the DCI information bits and send on PDCCH

ncellid = 1;                    % NCellID
si_rnti = hex2dec('FFFF');      % SI-RNTI for PDCCH in a UE-specific search space
K = dciformat1_0.Width;         % Number of DCI message bits
E = 2*288;                      % Number of bits for PDCCH candidate

% Encode DCI
dciCW = nrDCIEncode(dciinfobits,si_rnti,E);
% Create PDCCH QPSK symbols
sym = nrPDCCH(dciCW,ncellid,0);

% Add noise to PDCCH symbols 
EbNo = 3;                       % EbNo in dB
bps = 2;                        % Bits per symbol, 2 for QPSK
EsNo = EbNo + 10*log10(bps);
snrdB = EsNo + 10*log10(K/E);
rxSym = awgn(sym,snrdB,'measured');

% Recover softbits from PDCCH symbols
noiseVar = 10.^(-snrdB/10);     % Assumes unit signal power
rxCW = nrPDCCHDecode(rxSym,ncellid,0,noiseVar);

% Decode DCI information bits
listLen = 8;                    % Polar decoding list length
decDCIBits = nrDCIDecode(rxCW,K,listLen,si_rnti);

% Map DCI format field from info bits
rxdci = fromBits(dciformat1_0,decDCIBits)
rxdci = 
  DCIFormat1_0_SIRNTI with field values:

      FrequencyDomainResources: 10
           TimeDomainResources: 3
               VRBToPRBMapping: 0
              ModulationCoding: 3
             RedundancyVersion: 3
    SystemInformationIndicator: 0
                  ReservedBits: 0

   Writeable properties:
                  AlignedWidth: 40

   Read-only properties:
                         Width: 40
                  PaddingWidth: 3

isequal(rxdci,txdci)
ans = logical
   1

Для получения дополнительной информации о канале управления нисходящим каналом NR, смотрите Управляющую информацию Нисходящего канала Моделирования и Нисходящую Обработку Управления и Процедуры. Для получения дополнительной информации о применении классов MATLAB, смотрите Структурированные данные Представления с Классами.

Ссылки

  1. 3GPP TS 38.212. "NR; Мультиплексирование и кодирование канала (Релиз 16)". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

Похожие темы