В этом примере показано, как сгенерировать Расширенный Физический Нисходящий Канал Управления (EPDCCH) передача с помощью LTE Toolbox™.
В этом примере показано, как сгенерировать нисходящую передачу включая EPDCCH, Сигнал Ссылки Демодуляции EPDCCH (DMRS), Специфичный для ячейки Ссылочный Сигнал (CRS) и Сигнал Ссылки информации о состоянии Канала (CSI-RS). Beamforming EPDCCH включен и для Локализованной и для Распределенной передачи. Выход примера является сеткой ресурса, заполненной с переданными каналами, и OFDM модулировал форму волны временного интервала, которая передает ту сетку ресурса. График также производится, который детализирует использование Элемента ресурса (RE) для каждого из каналов.
Настройки всей ячейки сконфигурированы со структурой 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';
Структура 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 формата обозначается 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", наборе Расширенных Элементов Канала Управления (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, функция 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);
Затем битовый вектор 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
будет сопоставлен с сеткой ресурса подкадра после соответствующего 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);
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 и их соответствующие индексы элемента ресурса создаются, и сигналы сопоставлены в сетку ресурса подкадра:
Индексы, произведенные 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;
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; получившаяся матрица имеет два столбца; каждый столбец содержит комплексные основополосные выборки формы волны временного интервала для каждой физической антенны.
waveform = lteOFDMModulate(enb,subframe);
Этот пример использует функцию помощника:
3GPP TS 36.101 "Передача радио оборудования пользователя (UE) и прием"
3GPP TS 36.211 "Физические каналы и модуляция"
3GPP TS 36.212 "Мультиплексирование и кодирование канала"