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

В этом примере показано, как сгенерировать передачу расширенного физического нисходящего канала управления (EPDCCH) с помощью LTE Toolbox™.

Введение

Этот пример показов, как сгенерировать передачу по нисходящей линии связи, включая EPDCCH, Опорный сигнал демодуляции EPDCCH (DMRS), Cell-Specific Опорного сигнала (CRS) и Channel State Information Опорного сигнала (CSI-RS). Формирование луча maEPDCCH включено как для локализованной, так и для распределенной передачи. Выходом примера является ресурсная сетка, заполненная переданными каналами, и модулированная 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», наборе улучшенных элементов канала управления (ECCE). Каждая ECCE преобразуется в набор расширенных групп ресурсных элементов (EREG), которые, в свою очередь, отображаются на конкретные ресурсные элементы в подрамной ресурсной сетке. В порядок создания индексов ресурсного элемента для конкретной передачи EPDCCH должен быть выбран кандидат EPDCCH. Функция lteEPDCCHSpace создает матрицу действительных кандидатов EPDCCH для заданного строения, причем каждая строка матрицы дает включенные [начальные, конечные] индексы одного кандидата EPDCCH. Поэтому любая строка этой матрицы может быть извлечена и присвоена chs.EPDCCHECCE поле параметра, которое будет использоваться функцией ltePDCCHIndices для определения индексов ресурсного элемента для передачи 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 будет сопоставлено с подкадровой ресурсной сеткой после соответствующего формирования луча. 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) подрамной ресурсной сетки. Плоскость является третьей размерностью ресурсной сетки подкадров, как описано в документации Resource Grids. Обычно функции LTE Toolbox разделяют символы и индексы для различных портов антенны на отдельные столбцы. Однако для EPDCCH символы и их индексы представлены в одном столбце, и индексы в нем соответствуют соответствующему порту антенны для каждого ресурсного элемента. Такой подход применяется по двум причинам:

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

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

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

epdcchSymbols = lteEPDCCH(enb,chs,codedDciBits);

Модуляция DMRS EPDCCH

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

Это отображение соответствует типовой модели формирования луча, описанной в TS36.101 Annex B.4.3 [1].

% 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;

Формирование луча передачи EPDCCH

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

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

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

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

% 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, формирование луча, описанное в TS36.101 Приложении B.4.5 [1], использует один случайный вектор формирования луча во всех ресурсных блоках.

% 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, формирование луча, описанное в TS36.101 приложении B.4.4 [1], использует другой вектор формирования луча W для каждого ресурсного блока и каждого из двух используемых портов антенны. Поэтому выбор вектора формирования луча выполняется в циклах через набор ресурсных блоков и портов. Обратите внимание, что циклы ниже применимы и для распределенной и для локализованной передачи: для локализованной передачи beamforming вектор, отобранный выше, применен к каждому блоку ресурса (для единственного используемого порта), тогда как для распределенной передачи beamforming вектор и отбирают и используют каждый блок ресурса и порт антенны. Код структурирован следующим образом:

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

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

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

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

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

  • Сопоставьте сформированные лучи 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);

Приложение

В этом примере используется функция helper:

Избранная библиография

  1. 3GPP TS 36.101 «Радиопередача и прием пользовательского оборудования (UE)»

  2. 3GPP ТС 36.211 «Физические каналы и модуляция»

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