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

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

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

rng(111);                            % Set RNG state for repeatability

NcellID = 0;                         % Cell identity

% Bandwidth part (BWP) configuration
bwp = [];
bwp.SubcarrierSpacing = 30;          % BWP Subcarrier spacing
bwp.NRB = 48;                        % Size of BWP in resource blocks
bwp.CyclicPrefix = 'normal';         % BWP cyclic prefix

% CORESET configuration
coreset = [];
coreset.AllocatedPRB = [1 1 1 0 1];        % frequencyDomainResources, each bit is 6RB
coreset.Duration = 1;                      % Symbol duration (1,2,3)
coreset.CCEREGMapping = 'nonInterleaved';  % Mapping: 'interleaved' or 'nonInterleaved'
coreset.REGBundleSize = 2;                 % L (2,6) or (3,6)
coreset.InterleaverSize = 3;               % R (2,3,6)
coreset.ShiftIndex = NcellID;              % default to NcellID, 0...274
coreset.PDCCHDMRSScramblingID = NcellID;   % default to NcellID, 0...65535

% Search Space configuration: multiple within a slot
ss = [];
ss.AllocatedSymbols = [0,4,8];    % first symbol of each monitoring occasion in slot, 0-based
ss.AllocatedSlots = 0;            % first slot, 0-based
ss.AllocatedPeriod = 1;           % over slots

% PDCCH instance configuration
pdcch = [];
pdcch.NumCCE = 4;                 % Number of CCE in PDCCH, in 6REG units (or AggregationLevel:1,2,4,8,16)
pdcch.AllocatedSearchSpace = 2;   % 0-based for now, scalar only, index into AllocatedSymbols
pdcch.RNTI = 0;                   % RNTI
pdcch.DataBlkSize = 64;           % DCI payload size
pdcch.BWP = bwp;                  % Associated bandwidth part
pdcch.CORESET = coreset;          % Associated CORESET
pdcch.SearchSpaces = ss;          % Associated SearchSpace

Этот пример принимает, что одна обработка паза, с помощью одной пропускной способности расстается с одной передачей 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(pdcch,ss);

На основе заданной контрольной возможности для первого символа каждого CORESET в пазе (ss.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.CORESET.PDCCHDMRSScramblingID;
sym = nrPDCCH(dciCW,nID,rnti);

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

numSCRB = 12;                        % Number of subcarriers in a RB
if strcmp(bwp.CyclicPrefix,'normal')
    symsPerSlot = 14;                    % For normal CP
else
    symsPerSlot = 12;                    % For extended CP
end
reGrid = zeros(numSCRB*bwp.NRB,symsPerSlot);
reGrid(candidates{pdcch.AllocatedSearchSpace+1}) = sym; % Specified 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.

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

Функции

Для просмотра документации необходимо авторизоваться на сайте