Моделируйте DCI и PDCCH

Этот пример показывает, как смоделировать область управления, используемую в подкадре нисходящего канала LTE, и его структуру канала. Он демонстрирует, как вы создаете сообщение DCI, кодируете его, создаете PDCCH и сопоставляете его с ресурсной сеткой.

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

enb.NDLRB = 9;
enb.CyclicPrefix = 'Normal';
enb.PHICHDuration = 'Normal';
enb.CFI = 3;
enb.Ng = 'Sixth';
enb.CellRefP = 1;
enb.NCellID = 1;
enb.NSubframe = 0;
enb.DuplexMode = 'FDD';

Настройка структуры сообщений DCI.

dci.NDLRB = enb.NDLRB;
dci.DCIFormat = 'Format1A';
dci.Allocation.RIV = 26;
dci.DuplexMode = 'FDD';
dci.NTxAnts = 1;

Сообщение DCI содержит следующие параметры:

  • NDLRB - количество нисходящих ресурсных блоков (RB)

  • DCIFormat - формат DCI, выбранный из обсуждаемых в форматах сообщений DCI

  • Allocation.RIV - значение индикации ресурса (RIV)

  • DuplexMode - тип структуры системы координат передачи, 'FDD' для структуры системы координат тип 1 или 'TDD' для структуры системы координат тип 2

  • NTxAnts - количество передающих антенн

RIV указывает смежные распределения RB для UE. UE использует RIV, чтобы определить первый виртуальный RB и длину непрерывного распределения RB. В этом примере установка RIV 26 соответствует назначению полной полосы пропускания.

Сгенерируйте сообщение DCI путем вызова lteDCI функция. Это сгенерированное сообщение можно сопоставить с PDCCH.

[dciMessage,dciMessageBits] = lteDCI(enb,dci);

The lteDCI функция возвращает структуру, dciMessageи вектор, содержащий биты сообщений DCI, dciMessageBits. Оба выходов содержат одинаковую информацию, но лучше всего подходят для различных целей. Структура output является более читаемым, в то время как сериализованное сообщение DCI находится в более подходящем формате для отправки на этап кодирования канала.

Настройка структуры строения PDCCH. Этапы кодирования канала требуют следующих параметров:

  • количество нисходящих ресурсных блоков (RB)

  • Маска UE (16-битное значение C-RNTI)

  • Формат PDCCH

pdcch.RNTI = 100;
pdcch.PDCCHFormat = 0;

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

codedDciBits = lteDCIEncode(pdcch,dciMessageBits);

Получившийся вектор, codedDciBits, имеет 72 элемента.

Сгенерируйте биты PDCCH. Закодированные сообщения DCI затем назначаются CCE, как описано в Matching PDCCHs to CCE Positions. Пропускная способность области управления зависит от полосы пропускания, CFI, количества портов антенны и групп HICH. Общее количество ресурсов, доступных для PDCCH, можно вычислить с помощью ltePDCCHInfo функция.

pdcchInfo = ltePDCCHInfo(enb);

Эта функция возвращает структуру, pdcchInfo, который содержит ресурсы, доступные PDCCH в различных модулях (по одному на поле): битах, CCE, RE и REG.

Общее количество бит, доступных в области PDCCH, можно найти в поле pdcchInfo.MTot. Это позволяет создавать вектор с соответствующим количеством элементов.

pdcchBits = -1*ones(1,pdcchInfo.MTot);

Не все доступные биты в области PDCCH обязательно используются. Поэтому, следуя соглашению в продукте Toolbox™ LTE, установите неиспользованные биты в − 1. Поскольку все элементы были инициализированы в pdcchBits для − 1 это указывает, что первоначально все биты не используются. Теперь элементы codedDciBits могут быть сопоставлены с соответствующими местоположениями в pdcchBits.

Вычислим индексы битов-кандидатов по вызову ltePDCCHSpace функция. Только подмножество всех бит в pdcchBits могут использоваться, которые называются битами.

candidates = ltePDCCHSpace(enb,pdcch,{'bits','1based'});

Эта функция возвращает двухколоночную матрицу. Каждая строка содержит доступное расположение кандидата для общих для ячеек настроек, предоставляемых enb и структуру строения PDCCH pdcch. Первый и второй столбцы содержат индексы первого и последнего местоположения каждого кандидата. В этом примере индексы основаны на 1 и относятся к битам. Следовательно, они могут использоваться для доступа к местоположениям в pdcchBits.

Используйте первого доступного кандидата для отображения закодированных бит DCI.

pdcchBits (candidates(1,1):candidates(1,2)) = codedDciBits;

Векторная pdcchBits имеет 736 элементов. 72 бита codedDciBits сопоставлены с выбранным кандидатом в pdcchBits. Поэтому из 736 элементов 72 берут 0 и 1 значения, а остальные остаются установленными на − 1. The ltePDCCH функция, которая используется для генерации комплексно-модулированных символов, интерпретирует эти местоположения как неиспользованные и будет рассматривать только те, которые содержат 1s и 0s.

Чтобы сгенерировать символы PDCCH, используйте ltePDCCH функция. Можно сгенерировать комплексные символы PDCCH из набора бит, используемых в pdcchBits, значения, не установленные на − 1. Функция выполняет необходимые операции скремблирования, QPSK модуляции, отображения слоя и предварительного кодирования. Поскольку на каждый символ QPSK существует два бита, генерируется 368 символов. Занятые биты приводят к 36 ненулевым символам QPSK.

pdcchSymbols = ltePDCCH(enb, pdcchBits);
size(pdcchSymbols)
ans = 1×2

   368     1

size(find(pdcchSymbols))
ans = 1×2

    36     1

Чтобы сгенерировать индексы отображения PDCCH, используйте ltePDCCHIndices функция. Можно использовать эти индексы для отображения комплексных чисел в pdcchSymbols в подрамную ресурсную сетку.

pdcchIndices = ltePDCCHIndices(enb,{'1based'});
size(pdcchIndices)
ans = 1×2

   368     1

Эта функция возвращает вектор-столбец. Строки содержат индексы на основе 1 в линейной форме для отображения символов PDCCH с ресурсной сеткой подкадра.

Сопоставьте PDCCH с ресурсной сеткой. Можно легко сопоставить сложные символы PDCCH с ресурсной сеткой для каждого порта антенны.

  • Создайте пустую ресурсную сетку с lteDLResourceGrid функция.

  • Сопоставьте pdcchSymbols на pdcchIndices индексные местоположения subframe ресурсная сетка.

subframe = lteDLResourceGrid(enb);
subframe(pdcchIndices) = pdcchSymbols;

См. также

| | | | | | | | | | | | | | | | | | | | |

Похожие темы

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