CoMP динамический выбор точки с несколькими процессами CSI

В этом примере показано, как несколько процессов Информации о состоянии канала (CSI) предоставляют сети обратную связь для операции Coordinated Multipoint (CoMP). В этом примере данные об Оборудовании пользователя (UE) передаются от одного из двух сотрудничества eNodeB как часть схемы Dynamic Point Selection (DPS). Решение передачи основано на отчетах Качественной характеристики канала (CQI) от UE.

Введение

Скоординированный многоточечный (АККОМПАНЕМЕНТ) термин, использованный, чтобы описать схемы, в которые группа базовых станций динамически сотрудничает, чтобы смягчить интерференцию, или даже превратить эту интерференцию в полезный сигнал. Группу координирования базовых станций называют набором сотрудничества. CoMP в Релизе 11 LTE спроектирован, чтобы смочь использовать в своих интересах низкую задержку и обратный рейс большой емкости между базовыми станциями в наборе сотрудничества. Поэтому данные для Оборудования пользователя (UE) могут быть доступными в одной или нескольких сотрудничающих базовых станциях.

Существует три категории нисходящего CoMP:

  • В Скоординированном Scheduling и Beamforming (CS/CB), данные UE только доступны в одной базовой станции в наборе координирования, поэтому PDSCH передается с одной базовой станции. Планирование и адаптация ссылки координируется с помощью информации с других базовых станций в наборе сотрудничества. Другие сотрудничающие базовые станции могут также скоординировать свое планирование и beamforming решения смягчить интерференцию.

  • В Динамическом выборе точки (DPS) данные UE доступны в нескольких базовых станциях в наборе координирования, но данные только передаются с одной базовой станции за один раз. Передача базовой станции к UE, названному точкой передачи (TP), может быть измененным от подкадра к подкадру, чтобы обеспечить лучшую передачу для UE с различными условиями канала. Этот сценарий наиболее вероятен в границе ячейки, где долгосрочные характеристики канала способствуют служащей базовой станции, но краткосрочные характеристики могут способствовать другим сотрудничающим базовым станциям.

  • В Объединенной передаче (JT) данные UE передаются с нескольких базовых станций одновременно. Это может быть когерентным или некогерентным. Когерентный JT совместно передачи предкода от нескольких TPS, чтобы позволить получателю достигать когерентного объединения передачи. В некогерентном JT каждый TP предварительно кодирует передачу независимо, поэтому только усиление степени доступно для получателя.

Сеть использует Информацию о состоянии канала (CSI), о которой сообщает UE или выведенную из передач восходящего канала TDD, чтобы принять решения передачи CoMP. UE возвращает несколько отчетов, каждый из которых соответствуют различным гипотезам относительно решений передачи о сотрудничающих базовых станциях. Чтобы предоставить отчет, UE сконфигурирован с процессом CSI. Процесс CSI состоит из Сигнала Ссылки CSI (CSI-RS) ресурс, ресурс Измерения интерференции CSI (CSI-IM) и механизм создания отчетов. Для создания отчетов CSI сеть может сконфигурировать UE максимум с четырьмя процессами CSI. Поскольку каждый CSI обрабатывает отчеты UE вычисленные индикаторы CSI согласно просьбе сетью:

  • Качественная характеристика канала (CQI)

  • Индикатор ранга (RI)

  • Матричный индикатор перед кодером (PMI)

Для получения дополнительной информации о создании отчетов CQI/RI/PMI смотрите, что примеры Сообщают Теста Соответствия Индикатора ранга (RI) и Сообщают Теста Соответствия Качественной характеристики канала (CQI).

Этот пример показывает простой сценарий DPS для передачи PDSCH к UE. Набор сотрудничества содержит две точки передачи, TP1 и TP2, каждый из которых способен к передаче PDSCH к UE. TP1 является служащей ячейкой для UE. Сеть выбирает точку передачи PDSCH и схему модуляции и кодирования с помощью CQI, о котором сообщает UE. Следующая схема показывает принцип операции DPS в этом примере. И точки передачи передают CSI-RS и специфичный для ячейки ссылочный сигнал (CRS). Служащая ячейка также передает нисходящую управляющую информацию для UE в PDCCH. Точка передачи PDSCH может изменить от подкадра к подкадру, чтобы использовать в своих интересах мгновенные условия канала. В схеме точка передачи PDSCH изменяет от TP1 в подкадре n к TP2 в подкадре n+1.

В этом примере процессы CSI и точки передачи сконфигурированы как требуется тестом соответствия "Требования к отчетности CQI с несколькими процессами CSI" в Разделе TS36.101 9.3.6.1 [1]. Этот пример отличается от этого теста соответствия путем выбора одной из двух возможных точек передачи PDSCH на основе самого высокого широкополосного CQI, о котором сообщают, от любой точки передачи. В этом тесте соответствия фиксируется точка передачи PDSCH. Дополнительно никакой CQI, сообщающий о задержке, не реализован.

Средства управления симуляцией

В этом примере точка передачи PDSCH может быть или динамически выбрана или зафиксирована к служащей ячейке, TP1, с помощью параметра dpsOperation. Используйте этот параметр, чтобы исследовать удар DPS на пропускной способности.

dpsOperation = true; % Enable DPS {true,false}
totSubframes = 150;  % Number of subframes to simulate

Настройки точки передачи

Две точки передачи заданы и сконфигурированы согласно Таблице 9.3.6.1-1 [1] TS36.101: TP1 является макро-ячейкой (служащая ячейка), и TP2 является сотрудничающей базовой станцией, такой как удаленная радио-голова. Массив структур enb содержит параметры для обеих точек передачи.

% Transmission point 1 cell-wide settings
enb = struct;
enb.NDLRB = 50;
enb.CellRefP = 2;
enb.DuplexMode = 'FDD';
enb.CFI = 3;
enb.CyclicPrefix = 'Normal';
enb.NFrame = 0;
enb.NCellID = 0;

% PDSCH configuration for transmission mode 10 (TM10)
enb.PDSCH.TxScheme = 'Port7-14';
enb.PDSCH.NLayers = 1;
enb.PDSCH.RNTI = 1;
enb.PDSCH.NSCID = 0;
enb.PDSCH.Modulation = {'16QAM'};
enb.PDSCH.Rho = 0;
enb.PDSCH.RV = 0;
enb.PDSCH.NTurboDecIts = 5;
enb.PDSCH.PRBSet = (0:enb.NDLRB-1).';
enb.PDSCH.NTxAnts = 4;
enb.PDSCH.W = lteCSICodebook(enb.PDSCH.NLayers,enb.PDSCH.NTxAnts,0).';
enb.PDSCH.AltCodebook4Tx = 'Off';
enb.PDSCH.CSI = 'On';

Настройка для TP2 основана на TP1. Различные специфичные для ячейки настройки сконфигурированы как требуется.

enb = repmat(enb,2,1);
enb(2).NCellID = 6;
enb(2).PDSCH.NTxAnts = 2;
enb(2).PDSCH.W = lteCSICodebook(enb(2).PDSCH.NLayers,enb(2).PDSCH.NTxAnts,0).';

Гипотеза передачи, ресурсы CSI и процессы CSI

Когда два DPS использования точек передачи координирования, PDSCH может быть передан или от TP1 или от TP2. Когда PDSCH передается одной точкой передачи к UE, например, TP1, существует две опции передачи для другой точки передачи, TP2. Право преимущественной покупки должно служить другому UEs использование тех же ресурсов, таким образом, вмешивающихся в передачу PDSCH от TP1. Вторая опция должна отключить звук передачи в этих ресурсах, таким образом, не вмешивающихся в передачу PDSCH от TP1. Эти опции сгруппированы в гипотезы передачи. В этом примере четыре гипотезы передачи тестируются сетью:

               TP1 Hypothesis       TP2 Hypothesis
------------------------------------------------------
Hypothesis 0:  Transmitting PDSCH   Muting
Hypothesis 1:  Muting               Transmitting PDSCH
Hypothesis 2:  Transmitting PDSCH   Interfering
Hypothesis 3:  Interfering          Transmitting PDSCH

Несмотря на то, что четыре гипотезы тестируются в этом примере, передачи PDSCH, сделанные к UE, только сопоставимы с гипотезами 2 или 3.

Чтобы предоставить сети CSI для этих гипотез передачи, два ресурса CSI-RS и три ресурса CSI-IM сконфигурированы в UE. Процессы CSI используют эти ресурсы, чтобы сообщить о CSI для каждой гипотезы.

В следующих разделах ресурсы и процессы CSI сконфигурированы, чтобы протестировать эти четыре гипотезы передачи.

Ресурсы CSI-RS

Уникальный CSI-RS передается каждой сотрудничающей базовой станцией. UE сконфигурирован с двумя ресурсами CSI-RS, чтобы обеспечить качественные оценки канала, один для каждой точки передачи:

  • CSI-RS № 0: передача от TP1

  • CSI-RS № 1: передача от TP2

Каждый CSI-RS задан настройкой, периодом и идентичностью скремблирования CSI-RS. Количество портов ссылки CSI является количеством антенн передачи. Для этой симуляции периоды CSI-RS и ресурсов CSI-IM должны быть тем же самым. Они параметризованы SimCSIPeriod.

SimCSIPeriod = [5 1]; % [Tcsi-rs Dcsi-rs]

% CSI-RS resource: {CSI-RS #0, CSI-RS #1}
SimCSIRS.CSIRSConfig = [0 5];                       % CSI-RS configuration
SimCSIRS.CSIRSPeriod = {SimCSIPeriod,SimCSIPeriod}; % CSI-RS period
SimCSIRS.NCSIID = [10 16];                          % CSI-RS scrambling identity
SimCSIRS.CSIRefP = [enb(1).PDSCH.NTxAnts enb(2).PDSCH.NTxAnts];

Ресурсы CSI-IM

Ресурсы CSI-IM описывают набор Элементов Ресурса (REs), по которому средняя степень измеряется UE. Эти измерения используются, чтобы оценить интерференцию для вычислений CSI. Три CSI-IM требуется, чтобы измерять интерференцию, когда TPS передает:

  • CSI-IM № 0: Измерьте фоновый шум, когда оба TPS будут отключены звук

  • CSI-IM № 1: Измерьте интерференцию TP2

  • CSI-IM № 2: Измерьте интерференцию TP1

Каждый CSI-IM задан настройкой и периодом. Обратите внимание, что настройки отличаются от настроек CSI-RS, но периоды являются тем же самым.

% CSI-IM resource: {CSI-IM #0, CSI-IM #1, CSI-IM #2}
SimCSIIM.ZeroPowerCSIRSConfig = [2 6 1];
SimCSIIM.ZeroPowerCSIRSPeriod = {SimCSIPeriod,SimCSIPeriod,SimCSIPeriod};

Процессы CSI

Четыре процесса сконфигурированы, чтобы протестировать четыре гипотезы передачи. Они используют CSI-RS и ресурсы CSI-IM, описанные выше:

            TP1 Hypothesis      TP2 Hypothesis      CSI-RS     CSI-IM
------------------------------------------------------------------------
Process 0:  Transmitting PDSCH  Muting              CSI-RS #0  CSI-IM #0
Process 1:  Muting              Transmitting PDSCH  CSI-RS #1  CSI-IM #0
Process 2:  Transmitting PDSCH  Interfering         CSI-RS #0  CSI-IM #1
Process 3:  Interfering         Transmitting PDSCH  CSI-RS #1  CSI-IM #2

Процесс задан ресурсом CSI-RS, ресурсом CSI-IM и режимом создания отчетов. Режим создания отчетов CSI, режим создания отчетов PMI и ограничение подмножества книги шифров для каждого процесса сконфигурированы согласно Таблице 9.3.6.1-1 [1] TS36.101. Ограничение подмножества книги шифров для каждого процесса ограничивает выбор PMI одной PMI поэтому, создание отчетов PMI и RI не требуется.

% {CSI Process #0, CSI Process #1, CSI Process #2, CSI Process #3}
SimCSIProcess.CSIRSResource  = [1 2 1 2]; % CSI-RS resources index (1 based)
SimCSIProcess.CSIIMResource  = [1 1 2 3]; % CSI-IM resources index (1 based)
SimCSIProcess.CSIMode        = {'PUCCH 1-1','PUSCH 3-1','PUSCH 3-1','PUSCH 3-1'}; % CSI reporting modes
SimCSIProcess.PMIMode        = {'Wideband' ,'Wideband' ,'Wideband','Wideband'};   % PMI reporting modes
SimCSIProcess.CodebookSubset = {'0x0000000000000001','000001','0x0000000000000001','000001'}; % Codebook subset restrictions

В этой симуляции только две из этих четырех гипотез реализованы сетью; передача PDSCH или от TP1 или от TP2 с другим вмешательством TP. Поэтому только обратная связь от процессов CSI 2 и 3 используется в решении передачи.

Исчезающий канал и настройка ОСШ

ОСШ для каждой передачи к UE задан в Таблице 9.3.6.1-1 [1] TS36.101. Шумовая степень задана с помощью Noc.

snrTP = [11 8]; % SNR of received transmission from TP1 and TP2
Noc = -98;      % dBm/15kHz average power spectral density

Исчезающий канал сконфигурирован между TP1 и UE, и TP2 и UE. Массив структур chcfg параметризовал каналы от TP1 и TP2.

% Channel between TP1 and UE
ofdmInfo = lteOFDMInfo(enb(1));
chcfg = struct;
chcfg.DelayProfile = 'EPA';
chcfg.NRxAnts = 2;
chcfg.DopplerFreq = 5;
chcfg.MIMOCorrelation = 'Low';
chcfg.SamplingRate = ofdmInfo.SamplingRate;
chcfg.InitPhase = 'Random';
chcfg.ModelType = 'GMEDS';
chcfg.NTerms = 16;
chcfg.NormalizeTxAnts = 'On';
chcfg.NormalizePathGains = 'On';
chcfg.Seed = 1;

% Channel between TP2 and UE
chcfg = repmat(chcfg,2,1);
chcfg(2).Seed = 2;

% Calculate the size of the received waveform
rxWaveformSize = [chcfg(1).SamplingRate*1e-3+15 chcfg(1).NRxAnts];

Настройка оценки канала

Два ссылочных сигнала должны использоваться UE: CSI-RS и DM-RS. Две отдельных настройки оценки канала требуются, чтобы оценивать каждый ссылочный сигнал. Здесь кубичная интерполяция будет использоваться с окном усреднения 1 2 REs. Это конфигурирует средство оценки канала, чтобы использовать специальный режим, который гарантирует способность к despread, и ортогонализируйте CSI-RS и передачи DMRS.

% CSI-RS estimation
ceccsi.FreqWindow = 1;
ceccsi.TimeWindow = 2;
ceccsi.InterpType = 'cubic';
ceccsi.PilotAverage = 'UserDefined';
ceccsi.InterpWinSize = 1;
ceccsi.InterpWindow = 'Causal';
ceccsi.Reference = 'CSIRS';

% DM-RS estimation
cecdmrs = ceccsi;
cecdmrs.Reference = 'DMRS';

Параметризация точки передачи для оценки CSI и создания отчетов

В этом разделе точки передачи параметризованы от сконфигурированных ресурсов CSI-RS и ресурсов CSI-IM для генерации CSI-RS и отображения PDSCH. Соответствующие параметры устанавливаются в массиве конфигурационной структуры enb.

Ресурсы CSI-RS

Обе точки передачи параметризованы со всем CSI-RS, сконфигурированным в UE.

% Set TP1 and TP2 CSI-RS configuration
for enbIdx = 1:2
    enb(enbIdx).CSIRefP = SimCSIRS.CSIRefP;
    enb(enbIdx).CSIRSConfig = SimCSIRS.CSIRSConfig;
    enb(enbIdx).CSIRSPeriod = SimCSIRS.CSIRSPeriod;
    enb(enbIdx).NCSIID = SimCSIRS.NCSIID;
end

Ресурсы ZP RS CSI

Ресурсы Zero Power (ZP) CSI-RS препятствуют тому, чтобы PDSCH был сопоставлен с набором REs. Поэтому ZP CSI-RS используется, чтобы отключить звук REs в каждом TP передача PDSCH, чтобы позволить сконфигурированному CSI-IM измерять интерференцию для различных гипотез.

Схема ниже иллюстрирует, как ZP CSI-RS сконфигурирован, чтобы позволить ресурсам CSI-IM измерять интерференцию. CSI-IM № 0 измеряет шум, когда никакой TP не передает в ресурсе 2. Поэтому, чтобы предотвратить передачу TPS в этом ресурсе, ZP CSI-RS сконфигурирован в ресурсе 2 для обоих TPS. Это останавливает PDSCH, сопоставляемый с этим ресурсом, отключая звук передачи. ZP CSI-RS для каждого TP также сконфигурирован, чтобы сопоставить вокруг CSI-RS TP координирования, чтобы предотвратить интерференцию. CSI-IM № 1 и CSI-IM № 2 измеряет отдельную интерференцию, вызванную TP2 и TP1 в ресурсах 6 и 1. Поэтому ZP CSI-RS для TP1 сконфигурирован, чтобы предотвратить передачу PDSCH в ресурсе 6, чтобы позволить измерение с CSI-IM № 1. ZP CSI-RS для TP2 сконфигурирован, чтобы предотвратить передачу PDSCH в ресурсе 1, чтобы позволить измерение с CSI-IM № 2.

ZP CSI-RS сконфигурирован с 16-битным битовым массивом. Каждый бит управляет, должен ли набор REs быть отключен звук (1) или нес отключенным звуком (0). Для каждой точки передачи настройка ZP CSI-RS создается из необходимых настроек CSI-IM и настройки CSI-RS, используемой точкой передачи координирования.

% ZP CSI-RS resource for TP1
zp1 = '0000000000000000';                          % Assume all CSI configurations unmuted
zp1(SimCSIIM.ZeroPowerCSIRSConfig([1 2])+1) = '1'; % Mute CSI-IM #0,1 (background & TP2 interference)
zp1(SimCSIRS.CSIRSConfig(2)+1) = '1';              % Mute CSI-RS #1 (TP2 transmission)

% Add ZP CSI-RS resource to TP1 parameters
enb(1).ZeroPowerCSIRSConfig = zp1;
enb(1).ZeroPowerCSIRSPeriod = SimCSIPeriod;

% ZP CSI-RS resource for TP2
zp2 = '0000000000000000';                          % Assume all CSI configurations unmuted
zp2(SimCSIIM.ZeroPowerCSIRSConfig([1 3])+1) = '1'; % Mute CSI-IM #0,2 (background & TP1 interference)
zp2(SimCSIRS.CSIRSConfig(1)+1) = '1';              % Mute CSI-RS #0 (TP1 transmission)

% Add ZP CSI-RS resource to TP2 parameters
enb(2).ZeroPowerCSIRSConfig = zp2;
enb(2).ZeroPowerCSIRSPeriod = SimCSIPeriod;

Параметризация UE для оценки CSI и создания отчетов

В этом примере CSI-RS, CSI-IM и процессы CSI представлены в UE как массивы структур. Каждый элемент массива структур конфигурирует один ресурс или процесс. Этот раздел создает эти массивы структур из сконфигурированных ресурсов CSI-RS и ресурсов CSI-IM.

Массив структур csirs содержит параметризацию ресурса CSI-RS. Это основано на параметрах служащей ячейки, но параметры CSI-RS сконфигурированы, чтобы использовать соответствующий ресурс, данный в настройках симуляции.

numCSIRS = numel(SimCSIRS.CSIRSConfig);
csirs = repmat(enb(1),numCSIRS,1);
for idx = 1:numCSIRS
    csirs(idx).CSIRefP = SimCSIRS.CSIRefP(idx);
    csirs(idx).CSIRSConfig = SimCSIRS.CSIRSConfig(idx);
    csirs(idx).CSIRSPeriod = SimCSIRS.CSIRSPeriod{idx};
    csirs(idx).NCSIID = SimCSIRS.NCSIID(idx);
end

Массив структур csiim содержит параметризацию ресурса CSI-IM. Это основано на параметрах служащей ячейки, но параметры CSI-IM сконфигурированы, чтобы использовать соответствующий ресурс, дают в настройках симуляции. Когда ресурс CSI-IM является настройкой ZP CSI-RS CSIRSPeriod параметр устанавливается на 'Off' таким образом, только ZP CSI-RS REs используется, чтобы измерить интерференцию.

numCSIIM = numel(SimCSIIM.ZeroPowerCSIRSConfig);
csiim = repmat(enb(1),numCSIIM,1);
for idx = 1:numCSIIM
    csiim(idx).ZeroPowerCSIRSConfig = SimCSIIM.ZeroPowerCSIRSConfig(idx);
    csiim(idx).ZeroPowerCSIRSPeriod = SimCSIIM.ZeroPowerCSIRSPeriod{idx};
    csiim(idx).CSIRSPeriod = 'Off';
end

Массив структур process содержит параметризацию процесса CSI. Это основано на параметрах служащей ячейки. Параметры CSIRSIdx и CSIIMIdx используются, чтобы индексировать CSI-RS и ресурсы CSI-IM для вычисления CSI. Режимы создания отчетов сконфигурированы для каждого процесса от настроек симуляции. CQI, о котором сообщает UE для каждого процесса CSI, выбран с помощью предполагаемого Сигнала для Интерференции плюс Шумовое Отношение (SINR). Самые низкие SINRs, рекомендуемые достигнуть 90%-й пропускной способности для каждого индекса CQI в этом сценарии, заданы векторным SINRs. Этот вектор используется, чтобы параметризовать выбор CQI для каждого процесса CSI.

SINRs = [1.3 1.3 2.3 3.7 5 6.8 9.2 10.9 13 14.8 17.1 18.9 21 23.9 24.3];
numCSIProcesses = numel(SimCSIProcess.CSIRSResource);
process = repmat(enb(1),numCSIProcesses,1);
for idx = 1:numCSIProcesses
    % Index CSI-RS and CSI-IM resources used by the process
    process(idx).CSIRSIdx = SimCSIProcess.CSIRSResource(idx);
    process(idx).CSIIMIdx = SimCSIProcess.CSIIMResource(idx);

    % Reporting configuration
    process(idx).PDSCH.CSIMode = SimCSIProcess.CSIMode{idx};
    process(idx).PDSCH.PMIMode = SimCSIProcess.PMIMode{idx};
    process(idx).PDSCH.CodebookSubset = SimCSIProcess.CodebookSubset{idx};
    process(idx).PDSCH.SINRs90pc = SINRs;

    % CSI-RS configuration for CSI estimation
    process(idx).CSIRefP = SimCSIRS.CSIRefP(process(idx).CSIRSIdx);
    process(idx).CSIRSConfig = SimCSIRS.CSIRSConfig(process(idx).CSIRSIdx);
    process(idx).CSIRSPeriod = SimCSIRS.CSIRSPeriod(process(idx).CSIRSIdx);
    process(idx).NCSIID = SimCSIRS.NCSIID(process(idx).CSIRSIdx);
end

Setup симуляции

Необходимая степень сигнала удовлетворить ОСШ для каждого TP вычисляется ниже.

% Convert to linear and Watts
nocLin = 10.^(Noc/10)*(1e-3); % linear in Watts
% Take into account number of antennas and FFT (OFDM) scaling
No = sqrt(nocLin/(2*double(ofdmInfo.Nfft)));
NocW = 10.^((Noc-30)/10); % convert to W/15kHz

% SINR = Es/Noc TS 36.101 Sec. 8.1.1
NocTot = NocW; % W/15kHz
snrLin = 10.^(snrTP/10);
Es = snrLin*NocTot; % W/15kHz

% Amplitude scaling factors
K = sqrt(Es);

Переменные, требуемые для симуляции, инициализируются в этом разделе.

% Set the random number seed
rng('default');

% Initialize containers which store the channel estimates interference
% measurements for CSI-RS and CSI-IM resources
csirshest = cell(numCSIRS,1);
csiimnest = zeros(numCSIIM,1);

% Initialize a buffer to store CQI reports for each process. Size buffer
% for subband CQI reporting.
numCSIReports = ceil(totSubframes/SimCSIPeriod(1));
pmiInfo = ltePMIInfo(process(1),setfield(process(1).PDSCH,'PMIMode','Subband')); %#ok<SFLD>
cqiBuffer = ones(numCSIReports,pmiInfo.NSubbands+1,numCSIProcesses);

% Initialize buffers to store the CRC, BER and TP selected
crcBuffer = cell(totSubframes,1);
berBuffer =  zeros(totSubframes,2);
tpBuffer = zeros(totSubframes,1);

csiReportIdx = 1; % Index of CSI report
lastOffset = 0;   % Initialize overall frame timing offset
frameOffset = 0;  % Initialize frame timing offset

Цикл симуляции

Симуляция является подкадром подкадром запуска. Для каждого подкадра выполняются следующие шаги:

  • Форма волны области времени rxWaveform инициализируется с шумом. Полученная форма волны от TP1 и TP2 будет добавлена к этому.

  • TP PDSCH выбран с помощью широкополосного CQI, о котором сообщает UE.

  • Для каждого TP в свою очередь подкадр сгенерирован содержащий соответствующую синхронизацию и ссылочные сигналы и TM10 OCNG.

  • PDSCH для UE сгенерирован или от TP1 или от TP2 в одном поддиапазоне.

  • Эти два подкадра являются модулируемым OFDM, прошел через исчезающий канал и объединился.

  • Полученная форма волны в UE синхронизируется, и OFDM демодулируется.

  • Сконфигурированный CSI-RS и измерения CSI-IM выполняются UE

  • Отчет CSI сгенерирован с помощью CSI-RS и ресурсов CSI-IM для сконфигурированных процессов CSI.

  • PDSCH демодулируется.

for nsf = 0:totSubframes-1
    % Initialize UE receive waveform with noise
    rxWaveform = No*complex(randn(rxWaveformSize),randn(rxWaveformSize));

    % Select PDSCH TP based on the highest reported wideband CQI
    bufferIdx = mod(csiReportIdx-2,numCSIReports)+1; % Buffered CQI to use
    if dpsOperation
        widebandCQI = permute(cqiBuffer(:,1,:),[1 3 2]);
        if (widebandCQI(bufferIdx,3)>=widebandCQI(bufferIdx,4))
            pdschTransmissionPoint = 1; % TP1
        else
            pdschTransmissionPoint = 2; % TP2
        end
    else
        pdschTransmissionPoint = 1; %#ok<UNRCH> % TP1
    end

    % Generate TP1 and TP2 transmissions.
    % Each transmission contains cell-specific reference signal,
    % synchronizing signals, CSI-RS and TM10 OCNG. One transmission
    % contains the PDSCH for the UE.
    for enbIdx = 1:2
        % Update subframe number for each transmission
        enb(enbIdx).NSubframe = nsf;

        % Turn off the CSI resource not transmitted by this TP
        tpenb = enb(enbIdx);
        tpenb.CSIRSPeriod{mod(enbIdx,2)+1} = 'Off';

        % Blank subframe; CRS, PSS and SSS
        sf = lteResourceGrid(tpenb,tpenb.PDSCH.NTxAnts);
        crsInd = lteCellRSIndices(tpenb); % Cell-specific reference signal
        sf(crsInd) = lteCellRS(tpenb);
        pssInd = ltePSSIndices(tpenb);    % Primary synchronizing signal
        sf(pssInd) = ltePSS(tpenb);
        sssInd = lteSSSIndices(tpenb);    % Secondary synchronizing signal
        sf(sssInd) = lteSSS(tpenb);

        % CSI-RS resource
        csitp = tpenb;
        csitp.ZeroPowerCSIRSPeriod = 'Off';
        csiInd = lteCSIRSIndices(csitp);
        sf(csiInd) = lteCSIRS(csitp);

        % TM10 OCNG transmitted apart from subframes containing PSS/SSS/PBCH
        if isempty(pssInd)
            tpenb.PDSCH.RNTI = 0;

            % Add OCNG at DMRS locations
            oncngInd = lteDMRSIndices(tpenb,tpenb.PDSCH);
            ocngSym = lteDMRS(tpenb,tpenb.PDSCH);
            sf(oncngInd) = ocngSym;

            % Add OCNG for PDSCH symbols
            [oncngInd,ocngInfo] = ltePDSCHIndices(tpenb,tpenb.PDSCH,tpenb.PDSCH.PRBSet);
            ocngSym = ltePDSCH(tpenb,tpenb.PDSCH,randi([0 1],ocngInfo.G,1));
            sf(oncngInd) = ocngSym;
        end

        % PDSCH and DMRS Transmission to UE from either TP1 or TP2.
        % The transport block size and modulation scheme for transmission
        % are selected using the reported CQI for the appropriate CSI
        % process. The PDSCH must be mapped around the ZP CSI-RS configured
        % for the UE and the ZP CSI-RS of the TP. Only transmit PDSCH for
        % subframes not containing CSI resources or PSS/SSS as per TS36.101
        % Table 9.3.6.1-1.
        if ~isempty(pssInd)||~isempty(csiInd)
            tbs = 0; % Transport block size is 0 as no PDSCH transmitted
        elseif (pdschTransmissionPoint==enbIdx)
            tpBuffer(nsf+1) = pdschTransmissionPoint;
            % Get relevant configuration for transmission point and CQI to
            % use.
            txenb = enb(enbIdx);
            cqi = cqiBuffer(bufferIdx,:,enbIdx+2);

            % Select subband for PDSCH transmission.
            % The PDSCH is transmitted in the highest differential CQI
            % subband. Subbands less than full size are excluded.
            partialSubband = (pmiInfo.k*pmiInfo.NSubbands>txenb.NDLRB);
            [~,idx] = max(cqi(2:(end-partialSubband))); % Maximum differential
            sbCandidates = find(cqi(2:(end-partialSubband))==cqi(idx+1));
            sb = sbCandidates(randi([1 numel(sbCandidates)],1,1));
            cqi = cqi(1)+cqi(1+sb); % Calculate SB PMI from wideband and differential
            txenb.PDSCH.PRBSet = ((sb-1)*pmiInfo.k+(0:(pmiInfo.k-1))).'; % PRB allocation for subband

            % Select MCS according to CQI using TS36.101 Table A.4-1 CSI
            % RMC RC.12 FDD (MCS.13), which defines the relationship
            % between CQI indices and MCS indices
            imcsTable = [-1 0 0 1 3 5 7 10 12 14 17 19 21 22 24 25];
            imcs = imcsTable(cqi+1);

            % Determine TBS and modulation order, fixed RI (1) and PMI (0).
            % Generate PDSCH for only a non-zero transport block size.
            [itbs,modulation] = lteMCS(imcs);
            tbs = double(lteTBS(size(txenb.PDSCH.PRBSet,1),itbs));
            if any(tbs)
                if ~iscell(modulation)
                    modulation = {modulation};
                end
                txenb.PDSCH.NLayers = 1;
                txenb.PDSCH.Modulation = modulation;
                txenb.PDSCH.W = lteCSICodebook(txenb.PDSCH.NLayers,txenb.PDSCH.NTxAnts,0).';

                % PDSCH mapping
                [pdschInd,pdschInfo] = ltePDSCHIndices(txenb,txenb.PDSCH,txenb.PDSCH.PRBSet);

                % Generate DL-SCH data
                txtrblk = arrayfun(@(x)randi([0 1],x,1),tbs,'UniformOutput',false);
                cw = lteDLSCH(txenb,txenb.PDSCH,pdschInfo.G,txtrblk);

                % Generate PDSCH symbols with cell identity of serving cell
                % for correct scrambling
                txenb.NCellID = enb(1).NCellID;
                pdschSym = ltePDSCH(txenb,txenb.PDSCH,cw);

                % Create UE specific DMRS configuration to allow for
                % scrambling code to change depending on transmission point
                txenb.NCellID = enb(1).NCellID;
                if pdschTransmissionPoint == 2
                    txenb.NCellID = enb(2).NCellID;
                end
                dmrsInd = lteDMRSIndices(txenb,txenb.PDSCH);
                dmrsSym = lteDMRS(txenb,txenb.PDSCH);

                % Map PDSCH and DMRS
                sf(pdschInd) = pdschSym;
                sf(dmrsInd) = dmrsSym;
            end
        end

        % OFDM modulate, pass through a fading channel, scale for SNR and
        % add to existing receive waveform
        txWaveform = lteOFDMModulate(tpenb,sf);
        txWaveform = [txWaveform; zeros(15,size(txWaveform,2))]; %#ok<AGROW>
        chcfg(enbIdx).InitTime = nsf/1e3;
        rxWaveform = rxWaveform + K(enbIdx)*lteFadingChannel(chcfg(enbIdx),txWaveform);
    end

    % Receiver Synchronization and OFDM demodulation
    % Synchronize using the PSS/SSS of the serving cell (TP1) and OFDM
    % demodulate
    if ~isempty(pssInd)
        frameOffset = lteDLFrameOffset(enb(1),rxWaveform);
        if (frameOffset > 25)
            frameOffset = lastOffset;
        end
        lastOffset = frameOffset;
    end
    rxWaveform = rxWaveform(1+frameOffset:end,:);
    rxsf = lteOFDMDemodulate(enb(1),rxWaveform);

    % Calculate CSI-RS Estimates
    % Generate channel estimates for CSI-RS resources configured at the UE.
    for idx = 1:numCSIRS
        % Calculate channel estimate
        csirs(idx).NSubframe = nsf;
        csirshest{idx} = lteDLChannelEstimate(csirs(idx),csirs(idx).PDSCH,ceccsi,rxsf);
    end

    % Calculate interference using CSI-IM
    % For each CSI-IM resource calculate the energy in resource elements.
    % This is the noise+interference estimate.
    for idx = 1:numCSIIM
        % Calculate noise and interference estimate
        csiim(idx).NSubframe = nsf;
        imIndices = lteCSIRSIndices(csiim(idx));
        imSym = lteExtractResources(imIndices,rxsf);
        csiimnest(idx) = mean(abs(imSym(:)).^2);
    end

    % CSI Process Reporting
    % When estimated CSI resource elements are not zero calculate CSI
    if ~isempty(csiInd)
        % For each CSI process calculate CSI feedback
        for idx = 1:numCSIProcesses
            % Update subframe number
            process(idx).NSubframe = nsf;

            % Extract CSI-RS estimate and CSI-IM estimate for process
            hest = csirshest{process(idx).CSIRSIdx};
            nest = csiimnest(process(idx).CSIIMIdx);

            % Calculate CQI/PMI/RI, condition CQI on PMI/RI selection
            [ri,PMISet] = lteRISelect(process(idx),process(idx).PDSCH,hest,nest);
            process(idx).PDSCH.PMISet = PMISet;
            process(idx).PDSCH.NLayers = ri;
            process(idx).PDSCH.NCodewords = min(ri,2);
            [cqi,sinrs] = lteCQISelect(process(idx),process(idx).PDSCH,hest,nest);
            cqiBuffer(csiReportIdx,1:numel(cqi),idx) = cqi;
        end

        % New CSI report
        csiReportIdx = csiReportIdx+1;
    end

    % PDSCH Demodulation
    % If the transport block size is not 0, a PDSCH exists to decode
    if any(tbs)
        % Estimate channel using DMRS. To use the correct scrambling
        % sequence for the DMRS use the configuration for the active TP.
        [dmrshest,dmrsnest] = lteDLChannelEstimate(txenb,txenb.PDSCH,cecdmrs,rxsf);

        % Extract PDSCH symbols from received grid and channel estimate
        [sym,symhest] = lteExtractResources(pdschInd,rxsf,dmrshest);

        % Scale the received symbols by the PDSCH power factor Rho and
        % decode the PDSCH with the CellID for the serving cell
        sym = sym*(10^(-txenb.PDSCH.Rho/20));
        txenb.NCellID = enb(1).NCellID;
        [cws,recsym] = ltePDSCHDecode(txenb,txenb.PDSCH,sym,symhest,dmrsnest);
        % Scale cws by 1/K(1) to avoid numerical issues with DLSCH decoding
        cws = cellfun(@(x) x*(1/K(1)),cws,'UniformOutput',false);
        [trblk,crc] = lteDLSCHDecode(txenb,txenb.PDSCH,tbs,cws,[]);

        % Store CRC and BER
        crcBuffer{nsf+1} = double(crc);
        berBuffer(nsf+1,:) = [sum(trblk{1}~=txtrblk{1}),numel(trblk{1})];
    end
end

Заключение и результаты

Частота появления ошибочных блоков (BLER) и пропускная способность PDSCH отображена на время симуляции. Две фигуры также создаются:

Первая фигура строит широкополосный CQI, о котором сообщают, для каждого процесса CSI по длительности симуляции. CQI, о которых сообщают, процесса 0 и процесса 1 показывают, что условия канала способствуют TP1 в течение середины симуляции, но TP2 в противном случае, когда CQI, о котором сообщают, превышает, чем TP1. CQI, о которых сообщают, процессов 2 и 3 показывают подобный шаблон, но CQI, о котором сообщают, ниже, чем для процессов 0 и 1. Это вызвано тем, что эти процессы принимают добавленную интерференцию от TPS.

Вторая фигура строит выбранную точку передачи PDSCH, и широкополосный CQI, о котором сообщают, этих двух процессов раньше принимал решение точки передачи. Этот рисунок показывает, что TP1 был выбран для передачи PDSCH в течение середины симуляции, когда CQI, о котором сообщают, способствовал этой точке передачи.

hCoMPResults(totSubframes,SimCSIPeriod,crcBuffer,berBuffer,cqiBuffer,tpBuffer);
BLER: 0.044444 (target is 0.1)
Throughput: 266.875 kbps

Этот пример показал, как несколько процессов CSI обеспечивают обратную связь для операции DPS CoMP. Данные UE были переданы от одного из двух сотрудничества eNodeB, на основе широкополосного CQI, о котором сообщает UE. Это примеры симулировали сценарий границы ячейки, где DPS обеспечивает усиление пропускной способности для UE. Попытайтесь отключить DPS установкой dpsOperation = false и отметьте уменьшение в пропускной способности.

Приложение

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

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

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

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

  3. Эрик Дэхлмен, 4G: LTE/LTE-Advanced для Мобильной Широкополосной связи, Elsevier 2014

  4. Joydeep Acharya, неоднородные сети в усовершенствованном LTE, Вайли 2014