Расширенный физический нисходящий канал управления (EPDCCH) генерация

В этом примере показано, как сгенерировать Расширенный Физический Нисходящий Канал Управления (EPDCCH) передача с помощью LTE Toolbox™.

Введение

В этом примере показано, как сгенерировать нисходящую передачу включая EPDCCH, Сигнал Ссылки Демодуляции EPDCCH (DMRS), Специфичный для ячейки Ссылочный Сигнал (CRS) и Сигнал Ссылки информации о состоянии Канала (CSI-RS). Beamforming EPDCCH включен и для Локализованной и для Распределенной передачи. Выход примера является сеткой ресурса, заполненной с переданными каналами, и OFDM модулировал форму волны временного интервала, которая передает ту сетку ресурса. График также производится, который детализирует использование Элемента ресурса (RE) для каждого из каналов.

Настройка eNodeB

Настройки всей ячейки сконфигурированы со структурой enb. Эта структура содержит параметры, которые принадлежат eNodeB.

% Number of downlink resource blocks corresponding to 5MHz bandwidth
enb.NDLRB = 25;

% Duplexing mode: 'FDD' or 'TDD'
enb.DuplexMode = 'FDD';

% Number of Cell-specific Reference Signal (CRS) antenna ports
enb.CellRefP = 1;

% Subframe number
enb.NSubframe = 0;

% Cyclic prefix length: 'Normal' or 'Extended'
enb.CyclicPrefix = 'Normal';

% Frame number
enb.NFrame = 0;

% Cell identity
enb.NCellID = 0;

% Channel State Information Reference Signal (CSI-RS) subframe schedule
enb.CSIRSPeriod = 'On';

% Configuration index of the CSI-RS
enb.CSIRSConfig = 1;

% Number of CSI-RS antenna ports in use with this configuration
enb.CSIRefP = 2;

% Zero-Power CSI-RS subframe schedule
enb.ZeroPowerCSIRSPeriod = 'Off';

Настройка EPDCCH

Структура chs создается, содержа параметры, относящиеся к передаче сообщения DCI, которое будет кодироваться и модулироваться на канале EPDCCH. В отличие от структуры enb выше которого конфигурирует настройки всей ячейки, структура здесь конфигурирует специфичные для канала настройки для передачи конкретного канала, в этом случае EPDCCH. (Имя структуры chs сокращение "специфичных для канала".)

% DCI format to send on the EPDCCH
chs.DCIFormat = 'Format1A';

% Radio Network Temporary Identifier (RNTI)
chs.RNTI = 1;

% Transmission type: 'Localized' or 'Distributed'
chs.EPDCCHType = 'Localized';

% Zero-based indices of PRB pair set associated with EPDCCH search space
chs.EPDCCHPRBSet = 4:5;

% Initial transmission symbol for EPDCCH transmission
chs.EPDCCHStart = 2;

% Scrambling identity for the EPDCCH
chs.EPDCCHNID = 0;

% EPDCCH format
chs.EPDCCHFormat = 1;

Создание сетки ресурса подкадра

Пустая сетка ресурса subframe создается для одного подкадра. В этом примере 3-я размерность (плоскости) этой сетки ресурса предназначается, чтобы представлять физические антенны. Отображение между портами антенны и физическими антеннами для различных каналов и сигналов, используемых в этом примере, будет описано, когда каналы и сигналы будут сопоставлены с этой сеткой ресурса. Пустая сетка ресурса подкадра создается с помощью функции lteDLResourceGrid. Дополнительный второй входной параметр позволяет 3-му размеру размерности (количество плоскостей) быть заданным явным образом (по умолчанию значение enb.CellRefP, количество портов CRS, используется, чтобы определить количество плоскостей). Обратите внимание на то, что для распределенной передачи EPDCCH, два порта антенны используются, и поэтому минимум двух физических антенн требуется; если количество портов CRS или портов CSI-RS больше 2 затем, самое большое из этих значений используется, это позволяет сетке ресурса содержать все сконфигурированные порты CRS или CSI-RS.

maxEpdcchPorts = 2;
nTxAnts = max([enb.CSIRefP enb.CellRefP maxEpdcchPorts]);
subframe = lteDLResourceGrid(enb,nTxAnts);

DCI передают создание

Сообщение DCI формата обозначается chs.DCIFormat создается с помощью функции lteDCI. Структура output dci представляет сообщение DCI как описано в Разделе TS36.212 5.3.3.1 [3]. Битовый вектор dciBits содержит фактические биты сообщения, которые будут закодированы.

% Create a DCI message
[dci,dciBits] = lteDCI(enb,chs);

Кандидат EPDCCH выбор

EPDCCH передается в "кандидате EPDCCH", наборе Расширенных Элементов Канала Управления (ECCEs). Каждый ECCE сопоставляет на набор Enhanced Resource Element Groups (EREGs), которые в свою очередь сопоставляют на конкретные элементы ресурса в сетке ресурса подкадра. Для того, чтобы создать индексы элемента ресурса для особой передачи EPDCCH, кандидат EPDCCH должен быть выбран. Функция lteEPDCCHSpace создает матрицу допустимых кандидатов EPDCCH на данную настройку, с каждой строкой матрицы, дающей содержащее [начинаются, конец] индексы одного кандидата EPDCCH. Любая строка этой матрицы может поэтому быть извлечена и присвоена chs.EPDCCHECCE поле параметра, которое будет использоваться функцией lteEPDCCHIndices, чтобы определить индексы элемента ресурса для передачи EPDCCH.

candidates = lteEPDCCHSpace(enb,chs);

chs.EPDCCHECCE = candidates(3,:);

Способность бита данных EPDCCH

Для того, чтобы определить способность бита данных EPDCCH, функция lteEPDCCHIndices используется, который создает индексы элемента ресурса для EPDCCH, после Раздела TS36.211 6.8A.5 [3]; эти индексы будут использоваться позже в отображении передачи EPDCCH к сетке ресурса подкадра. Эта функция также возвращает структуру, содержащую полезный EPDCCH "значения" информации о размерности включая epdcchInfo.EPDCCHG, способность бита данных EPDCCH, которая будет использоваться, чтобы сконфигурировать соответствие уровня при кодировании сообщения DCI.

% Calculate EPDCCH resource element indices and associated dimensionality
% information including the EPDCCH data bit capacity epdcchInfo.EPDCCHG
[epdcchIndices,epdcchInfo] = lteEPDCCHIndices(enb,chs);

Кодирование сообщения DCI

Затем битовый вектор dciBits передается функции lteDCIEncode, который выполняет вставку CRC, кусающее хвост сверточное кодирование и соответствие уровня, после Разделов TS36.212 5.3.3.2 к 5.3.3.4 [3]. Обратите внимание на то, что третий аргумент к lteDCIEncode задает способность соответствия уровня (для нерасширенных передач PDCCH, этот третий аргумент может быть не использован, и способность соответствия уровня выведена внутренне от формата PDCCH).

% Perform DCI message encoding with a rate matching output size equal to
% the EPDCCH data bit capacity
codedDciBits = lteDCIEncode(chs,dciBits,epdcchInfo.EPDCCHG);

Модуляция EPDCCH

Модуляция EPDCCH выполняется с помощью функции lteEPDCCH, после Разделов TS36.211 6.8A-2 к 6.8A-4 [2]. Получившиеся символы epdcchSymbols будет сопоставлен с сеткой ресурса подкадра после соответствующего beamforming. EPDCCH передается на подмножестве портов антенны 107... 110:

  • Для chs.EPDCCHType='Localized', EPDCCH передается на одном порте антенны, выбранном от 107... 110 как функция многих параметров включая RNTI.

  • Для chs.EPDCCHType='Distributed', EPDCCH передается на двух портах антенны, или {107,109} для нормального циклического префикса или {107,108} для расширенного циклического префикса.

Индексы, произведенные lteEPDCCHIndices, сопоставляют порты антенны 107... 110 (на основе 0) к плоскостям 1... 4 (на основе 1) из сетки ресурса подкадра. Плоскость является третьей размерностью сетки ресурса подкадра как описано в документации Сеток Ресурса Представления. Обычно функции LTE Toolbox разделяют символы и индексы для различных портов антенны в отдельные столбцы. Однако для EPDCCH символы и их индексы представлены в отдельном столбце, и индексы там соответствуют соответствующему порту антенны для каждого элемента ресурса. Этот подход проявлен по двум причинам:

  • Количество символов EPDCCH, сопоставленных с каждым портом антенны, может отличаться.

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

Beamforming EPDCCH для передачи на физические антенны будет описан позже.

epdcchSymbols = lteEPDCCH(enb,chs,codedDciBits);

Модуляция EPDCCH DMRS

DMRS сопоставлен с EPDCCH, epdcchDmrsSymbols, создается с помощью функции lteEPDCCHDMRS, после Раздела TS36.211 6.10.3A.1 [2]. Связанные индексы элемента ресурса, epdcchDmrsIndices, также создаются с помощью функции lteEPDCCHDMRSIndices, после Раздела TS36.211 6.10.2. 2 [2]. Расположение символов DMRS и их индексов для различных зеркал портов антенны, которые описали для символов EPDCCH и индексов выше. Beamforming EPDCCH DMRS для передачи на физические антенны будет описан позже.

epdcchDmrsSymbols = lteEPDCCHDMRS(enb,chs);
epdcchDmrsIndices = lteEPDCCHDMRSIndices(enb,chs);

Сгенерируйте CRS и CSI-RS

CRS и сигналы CSI-RS и их соответствующие индексы элемента ресурса создаются, и сигналы сопоставлены в сетку ресурса подкадра:

  • Индексы, произведенные lteCellRSIndices, сопоставляют порты антенн 0... 3 (на основе 0) к плоскостям 1... 4 (на основе 1) из сетки ресурса подкадра. В этом примере, один порт CRS (enb.CellRefP=1) сконфигурирован и поэтому CRS будет сопоставлен с первой плоскостью сетки ресурса подкадра.

  • Индексы, произведенные lteCSIRSIndices, сопоставляют порты антенны 15... 22 (на основе 0) к плоскостям 1... 8 (на основе 1) из сетки ресурса подкадра. В этом примере, два порта CSI-RS (enb.CSIRefP=2) сконфигурированы и поэтому CSI-RS будет сопоставлен с первыми двумя плоскостями сетки ресурса подкадра.

Это отображение совпадает с типовой beamforming моделью, описанной в Приложении B.4.3 [1] TS36.101.

% Create CSI-RS and map to the subframe resource grid
csirsIndices = lteCSIRSIndices(enb);
csirsSymbols = lteCSIRS(enb);
subframe(csirsIndices) = csirsSymbols;

% Create CRS and map to the subframe resource grid
crsIndices = lteCellRSIndices(enb);
crsSymbols = lteCellRS(enb);
subframe(crsIndices) = crsSymbols;

Beamforming передачи EPDCCH

EPDCCH и его DMRS должны теперь быть beamformed и сопоставленный с физическими антеннами для передачи. beamforming векторы здесь выбраны в соответствии с Приложением B.4.4 [1] TS36.101 для распределенной передачи и Приложением B.4.5 [1] TS36.101 для локализованной передачи.

При подготовке к beamforming символы EPDCCH конкатенированы с символами EPDCCH DMRS, и соответствующие индексы также конкатенированы. EPDCCH и его DMRS должны подвергнуться тому же beamforming, поэтому они могут быть обработаны вместе при применении beamforming.

% Concatenate EPDCCH symbols/indices with EPDCCH DMRS symbols/indices to
% facilitate beamforming
allSymbols = [epdcchSymbols; epdcchDmrsSymbols];
allIndices = [epdcchIndices; epdcchDmrsIndices];

Полный набор индексов allIndices затем преобразован в индексы, и индексы обрабатываются, чтобы получить список активных портов ports антенны EPDCCH и активный ресурс EPDCCH блокирует rbs. ports и rbs будет использоваться, чтобы управлять двумя циклами, которые выполняют beamforming на на порт и на основание блока ресурса.

% Determine the set of EPDCCH antenna ports 'ports' and resource blocks
% 'rbs' used by the EPDCCH and its DMRS; the value of 4 below is the
% number of EPDCCH antenna ports (107...110) on which an EPDCCH might be
% transmitted (i.e. 'allIndices' may generally contain indices for any of
% the 4 EPDCCH antenna ports).
[K,L,~] = size(subframe);
[resubs,~,portsubs] = ind2sub([K L 4],allIndices);
rbsubs = floor((resubs-1)/12)+1;
rbs = unique(rbsubs);
ports = unique(portsubs.');

Для локализованной передачи EPDCCH beamforming, описанный в Приложении B.4.5 [1] TS36.101, использует один случайный beamforming вектор через все блоки ресурса.

% For localized transmission, a single beamforming vector 'W' is used for
% the single EPDCCH port and across all resource blocks
if (strcmpi(chs.EPDCCHType,'Localized'))
    codebookIdx = randi([0 3],1);
    W = lteDLPrecode(1,nTxAnts,'SpatialMux',codebookIdx);
end

Для распределенной передачи EPDCCH beamforming, описанный в Приложении B.4.4 [1] TS36.101, использует различный beamforming векторный W поскольку каждый ресурс блокируется и каждый из двух используемых портов антенны. Поэтому beamforming векторный выбор выполняется в циклах через набор блоков ресурса и портов. Обратите внимание на то, что циклы ниже применимы и для распределенной и для локализованной передачи: для локализованной передачи beamforming вектор, выбранный выше, применяется к каждому блоку ресурса (для одного используемого порта), тогда как для распределенной передачи beamforming вектор и выбирают и используют каждый блок ресурса и порт антенны. Код структурирован можно следующим образом:

Для каждого порта антенны и для каждого Блока ресурса (RB):

  • вектор логических значений thisport верно для символов EPDCCH/DMRS, которые применяются к текущему порту антенны.

  • вектор логических значений thisrb верно для символов EPDCCH/DMRS, которые применяются к текущему RB.

  • Для распределенной передачи выберите beamforming векторный W

  • Примените beamforming к символам EPDCCH/DMRS и индексам EPDCCH/DMRS для текущего порта антенны и текущего RB. Чтобы помочь с beamforming индексов, функция lteExtractResources используется. Вызов этой функции берет индексы элементов ресурса для данного порта антенны как вход. Первый выход функции, которая пропущена здесь, является набором REs для всех физических антенн в сетке ресурса подкадра subframe в тех же местоположениях времени/частоты как входные индексы. Второй выход, который используется в качестве наших beamformed индексов, содержит соответствующие индексы для REs в первом выходе, по существу проекции входных индексов на все физические антенны. Символы и индексы для текущего порта антенны и текущего RB получены при помощи логических векторов thisport и thisrb извлекать соответствующие элементы символов EPDCCH/DMRS allSymbols и индексы EPDCCH/DMRS allIndices.

  • Сопоставьте beamformed EPDCCH/DMRS с сеткой ресурса подкадра.

% Matrix to store the codebook index used for each resource block and
% antenna port
codebookIdxs = zeros(length(rbs),length(ports));

% For each EPDCCH antenna port in use:
for p=1:length(ports)
    thisport = (portsubs==ports(p));

    % For each RB in use:
    for r = 1:length(rbs)
        thisrb = (rbsubs==rbs(r));

        % For distributed transmission, a beamforming vector 'W' is
        % selected for each EPDCCH port and each resource block; the
        % beamforming vector chosen for a particular resource block must be
        % different on each of the antenna ports
        if (strcmpi(chs.EPDCCHType,'Distributed'))
            unusedIdxs = setxor(0:3,codebookIdxs(r,1:p-1));
            codebookIdx = unusedIdxs(randi(length(unusedIdxs),1));
            W = lteDLPrecode(1,nTxAnts,'SpatialMux',codebookIdx);
        end

        % Record the codebook index used for this resource block and
        % antenna port
        codebookIdxs(r,p) = codebookIdx;

        % Apply beamforming to the symbols and indices
        bfSymbols = allSymbols(thisport & thisrb) * W;
        [~,bfIndices] = ...
            lteExtractResources(allIndices(thisport & thisrb),subframe);

        % Map the beamformed symbols to the physical antennas. The symbols
        % must be added to the existing subframe resource grid because
        % different ports may share the same time/frequency locations and
        % therefore the beamformed symbols must be superposed.
        subframe(bfIndices) = subframe(bfIndices) + bfSymbols;

    end

end

Постройте присвоения элемента ресурса

Сетка ресурса подкадра построена, чтобы указать на местоположения EPDCCH, EPDCCH DMRS, CRS и CSI-RS Если chs.EPDCCHStart>0, местоположение устаревшей области управления также показывают.

hEPDCCHGenerationPlot(enb,chs);

Модуляция OFDM

Наконец сетка ресурса подкадра является модулируемым OFDM; получившаяся матрица имеет два столбца; каждый столбец содержит комплексные основополосные выборки формы волны временного интервала для каждой физической антенны.

waveform = lteOFDMModulate(enb,subframe);

Приложение

Этот пример использует функцию помощника:

Выбранная библиография

  1. 3GPP TS 36.101 "Передача радио оборудования пользователя (UE) и прием"

  2. 3GPP TS 36.211 "Физические каналы и модуляция"

  3. 3GPP TS 36.212 "Мультиплексирование и кодирование канала"