Этот пример описывает декодирование поиска вслепую физического нисходящего канала управления (PDCCH) экземпляр для 5G Новая система Радиосвязи. Основываясь на примере, Моделируя Нисходящую Управляющую информацию, это вводит концепцию набора ресурсов управления (CORESET), его типичной спецификации и показывает, как экземпляр PDCCH сопоставлен с одним из нескольких возможных кандидатов. В получателе пример выполняет поиск вслепую по той же группе кандидатов, чтобы восстановить переданную управляющую информацию.

Системные параметры

Установите системные параметры, соответствующие части пропускной способности, CORESET и экземплярам PDCCH соответственно.

rng(111);                            % Set RNG state for repeatability

% Bandwidth part (BWP) configuration
bwp = [];
bwp.SubcarrierSpacing = 30;          % BWP Subcarrier spacing
bwp.NRB = 40;                        % Size of BWP in resource blocks

% CORESET/search configurations: multiple within a slot
coreset = [];
coreset.AllocatedSymbols = [0,4,8];  % First symbol of each CORESET monitoring opportunity in a slot
coreset.Duration = 1;                % CORESET symbol duration (1,2,3)
coreset.AllocatedPRB = 6*[0,1,2,4];  % 6 REG sized indices in PRB

% PDCCH instance configuration
pdcch = [];
pdcch.BWP = 1;                       % Associated bandwidth part
pdcch.NumCCE = 4;                    % Number of CCE in PDCCH, in 6REG units
pdcch.RNTI = 0;                      % RNTI
pdcch.NID = 1;                       % PDCCH and DM-RS scrambling ID
pdcch.DataBlkSize = 64;              % DCI payload size

Этот пример принимает, что одна обработка слота, с помощью одной пропускной способности расстается с одной передачей PDCCH для связанного CORESET. Это поддерживает нечередующийся CCE-to-REG, сопоставляющий без смещений блока ресурса относительно части пропускной способности и CORESET. Отошлите к 5G пример Генерации Формы волны Поставщика услуг Нисходящего канала NR для получения дополнительной информации о других параметрах, описанных там.

Емкость в битах PDCCH

Емкость в битах для экземпляра PDCCH определяется на основе количества Элементов канала управления (CCE), сконфигурированных для PDCCH. CCE состоит из шести групп элемента ресурса (REGs), где группа элемента ресурса равняется одному блоку ресурса (RB) во время одного символа OFDM.

% Number of bits for PDCCH resources and possible candidates
[E,candidates] = hPDCCHSpace(bwp,coreset,pdcch);

На основе заданной контрольной возможности для первого символа каждого CORESET в слоте (coreset.AllocatedSymbols), соответствующее выделение физического блока ресурса (PRB) (coreset.AllocatedPRB) и длительность символа (coreset.Duration), все возможные кандидаты определяются для экземпляра PDCCH по целой части пропускной способности. Каждый из кандидатов представляет возможные индексы элемента ресурса для символов PDCCH в слоте. Индексы элемента ресурса PDCCH DM-RS исключены из этих наборов.

Кодирование DCI

Биты сообщения DCI на основе нисходящего формата закодированы с помощью функции nrDCIEncode, которая включает этапы прикрепления CRC, полярного кодирования и соответствия уровня. Кодовая комбинация является соответствующей уровню к емкости в битах PDCCH E.

K = pdcch.DataBlkSize;               % Number of DCI message bits
dciBits = randi([0 1],K,1,'int8');

rnti = pdcch.RNTI;
dciCW = nrDCIEncode(dciBits,rnti,E);

Генерация символа PDCCH и отображение

Закодированные биты DCI сопоставлены на физический нисходящий канал управления (PDCCH) использование функции nrPDCCH, которая генерирует скремблированные, модулируемые QPSK символы. Борющиеся счета на специфичные для пользователя параметры.

nID = pdcch.NID;
sym = nrPDCCH(dciCW,nID,rnti);

Для NR символы PDCCH затем сопоставлены с одним из кандидатов (наборы элемента ресурса) в сетке OFDM, которая также имеет PDSCH, PBCH и другие ссылочные элементы сигнала. Они сопровождаются модуляцией OFDM и передачей по каналу. Для простоты только символы PDCCH сопоставлены здесь с местоположением кандидата в сетке. Этот пример поддерживает нормальный циклический префикс только.

numSCRB = 12;                        % Number of subcarriers in a RB
symsPerSlot = 14;                    % Normal CP only
reGrid = zeros(numSCRB*bwp.NRB,symsPerSlot*fix(bwp.SubcarrierSpacing/15));
reGrid(candidates{end}) = sym;       % Select the last candidate

Для сетки ресурса, охватывающей целую часть пропускной способности и один слот, следующие данные показывают CORESET, контролируя экземпляры и экземпляр PDCCH для выбранных параметров в качестве примера.

Шумовое сложение

Белый Гауссов шум с заданным уровнем добавляется к сетке ресурса, составляя уровень кодирования и модуляцию QPSK.

EbNo = 0;                            % in dB
bps = 2;                             % bits per symbol, 2 for QPSK
EsNo = EbNo + 10*log10(bps);
snrdB = EsNo + 10*log10(K/E);
noiseVar = 10.^(-snrdB/10);          % assumes unit signal power

rxGrid = awgn(reGrid,snrdB,'measured');

Слепой PDCCH и декодирование DCI

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

Полученные символы на кандидата демодулируются с известными специфичными для пользователя параметрами и отклонением шума канала с помощью функции nrPDCCHDecode.

Для экземпляра полученной кодовой комбинации PDCCH функция nrDCIDecode включает этапы восстановления уровня, полярного декодирования декодирования и CRC.

Если выходная маска совпадает с RNTI, используемым для PDCCH, UE успешно декодировал PDCCH и может обработать декодируемое сообщение DCI.

В этом примере получатель принимает знание формата DCI (т.е. K принят известный в получателе). На практике даже это разыскивалось бы во внешнем цикле по всем поддерживаемым форматам с соответствующими битными длинами на формат.

listLen = 8;                         % polar decoding list length

% Loop over all candidates within a slot
numCandidates = size(candidates,1);
for cIdx = 1:numCandidates

    rxCW = nrPDCCHDecode(rxGrid(candidates{cIdx}),nID,rnti,noiseVar);

    [decDCIBits,decRNTI] = nrDCIDecode(rxCW,K,listLen);

    if isequal(decRNTI, rnti)
        disp(['Decoded candidate #' num2str(cIdx)])
        break;
    end
end

if isequal(decDCIBits,dciBits)
    disp('Recovered DCI bits with no error');
else
    disp('Recovered DCI bits with errors');
end
Decoded candidate #3
Recovered DCI bits with no error

Для выбранных системных параметров декодируемая информация совпадает с переданными информационными битами.

Выбранные ссылки

  1. 3GPP TS 38.211. "NR; Физические каналы и модуляция (Релиз 15)". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

  3. 3GPP TS 38.213. "NR; процедуры Физического уровня для управления (Релиз 15)". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

Смотрите также

Функции