В этом примере показано, как генерировать расширенную передачу физического канала управления нисходящей линии связи (EPDCCH) с использованием Toolbox™ LTE.
Этот пример показывает, как генерировать передачу нисходящей линии связи, включающую в себя EPDCCH, опорный сигнал демодуляции EPDCCH (DMRS), опорный сигнал конкретной соты (CRS) и опорный сигнал информации о состоянии канала (CSI-RS). Формирование диаграммы направленности maEPDCCH включено как для локализованной, так и для распределенной передачи. Выходной сигнал примера представляет собой сетку ресурсов, заполненную переданными каналами, и модулированный во временной области сигнал OFDM, который передает эту сетку ресурсов. Также создается график, в котором подробно описывается использование элемента ресурса (RE) для каждого из каналов.
Настройки для всей ячейки конфигурируются со структурой enb. Эта структура содержит параметры, принадлежащие eNireB.
% 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';
Структура 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 создается для одного подкадра. В этом примере третье измерение (плоскости) этой сетки ресурсов предназначено для представления физических антенн. Отображение между антенными портами и физическими антеннами для различных каналов и сигналов, используемых в этом примере, будет описано, когда каналы и сигналы отображаются на эту сетку ресурсов. Пустая сетка ресурсов подкадра создается с помощью 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 формата, указанного chs.DCIFormat создается с помощью функции lteDCI. Структура вывода dci представляет сообщение DCI, как описано в Разделе 5.3.3.1 [3] TS36.212. Битовый вектор dciBits содержит фактические биты сообщения, которые должны быть закодированы.
% Create a DCI message
[dci,dciBits] = lteDCI(enb,chs);
EPDCCH передается в «кандидате EPDCCH», наборе элементов расширенного канала управления (ECCE). Каждый ECCE отображается на набор групп расширенных элементов ресурсов (EREG), которые, в свою очередь, отображаются на конкретные элементы ресурсов в сетке ресурсов подкадров. Чтобы создать индексы элемента ресурса для конкретной передачи EPDCCH, должен быть выбран кандидат EPDCCH. Функция lteEPDCCHSpace создает матрицу действительных кандидатов EPDCCH для данной конфигурации, причем каждая строка матрицы дает включенные индексы [начало, конец] одного кандидата EPDCCH. Поэтому любая строка этой матрицы может быть извлечена и назначена chs.EPDCCHECCE поле параметра, которое будет использоваться функцией ltePDCCHIndices определение индексов элементов ресурсов для передачи EPDCCH.
candidates = lteEPDCCHSpace(enb,chs); chs.EPDCCHECCE = candidates(3,:);
Для определения емкости битов данных EPDCCH используется функция lteEPDCCHIndices используется, который создает индексы элемента ресурса для EPDCCH, после Раздела 6.8A.5 [3] TS36.211; эти индексы будут использоваться позже для отображения передачи 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);
Далее битовый вектор 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 выполняется с использованием функции 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) сетки ресурсов субкадра. Плоскость - это третий размер сетки ресурсов подкадра, как описано в документации «Представление сеток ресурсов». Как правило, функции LTE Toolbox разделяют символы и индексы для различных антенных портов на отдельные столбцы. Однако для EPDCCH символы и их индексы представлены в одном столбце, и индексы в нем соответствуют соответствующему антенному порту для каждого элемента ресурса. Такой подход используется по двум причинам:
Количество символов EPDCCH, отображаемых на каждый антенный порт, может быть различным.
Отображение между символами и антенными портами зависит от многих параметров и представляет это в lteEPDCCH приведет к очень значительному увеличению числа параметров, требуемых для этой функции.
Формирование диаграммы направленности EPDCCH для передачи на физических антеннах будет описано ниже.
epdcchSymbols = lteEPDCCH(enb,chs,codedDciBits);
DMRS, связанный с EPDCCH, epdcchDmrsSymbols, создается с помощью функции lteEPDCCHDMRS, после Раздела 6.10.3A.1 [2] TS36.211. Индексы связанных элементов ресурсов, epdcchDmrsIndices, также создаются с помощью функции lteEPDCCHDMRSIndices, после Раздела 6.10.2. A.2 [2] TS36.211. Расположение символов DMRS и их индексов для различных антенных портов отражает описанное выше для символов EPDCCH и индексов. Формирование диаграммы направленности EPDCCH DMRS для передачи на физических антеннах будет описано ниже.
epdcchDmrsSymbols = lteEPDCCHDMRS(enb,chs); epdcchDmrsIndices = lteEPDCCHDMRSIndices(enb,chs);
Создаются сигналы 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 Приложении 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 и его DMRS теперь должны быть сформированы лучи и отображены на физические антенны для передачи. beamforming векторы здесь выбраны в соответствии с Приложением B.4.4 [1] TS36.101 для распределенной передачи и Приложением B.4.5 [1] TS36.101 для локализованной передачи.
При подготовке к формированию диаграммы направленности символы EPDCCH сцепляются с символами EPDCCH DMRS, и соответствующие индексы также сцепляются. 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 beamforming, описанный в Приложении B.4.4 [1] TS36.101, использует другой beamforming вектор W для каждого ресурсного блока и каждого из двух используемых антенных портов. Поэтому выбор вектора формирования диаграммы направленности выполняется в циклах по набору блоков ресурсов и портов. Обратите внимание, что петли ниже применимы и для распределенной и для локализованной передачи: для локализованной передачи beamforming вектор, отобранный выше, применен к каждому блоку ресурса (для единственного используемого порта), тогда как для распределенной передачи beamforming вектор и отбирают и используют каждый блок ресурса и порт антенны. Код структурирован следующим образом:
Для каждого антенного порта и для каждого ресурсного блока (RB):
вектор логических значений thisport верно для символов EPDCCH/DMRS, которые применяются к текущему порту антенны.
вектор логических значений thisrb верно для символов 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; результирующая матрица имеет два столбца; каждый столбец содержит комплексные выборки формы сигнала во временной области основной полосы для каждой физической антенны.
waveform = lteOFDMModulate(enb,subframe);
В этом примере используется вспомогательная функция:
3GPP ТС 36.101 «Радиопередача и прием пользовательского оборудования (UE)»
3GPP ТС 36.211 «Физические каналы и модуляция»
3GPP TS 36.212 «Мультиплексирование и канальное кодирование»