Оценка результатов деятельности ячейки NR с MIMO

Этот пример демонстрирует ячейку New Radio (NR) 5G с несколькими - вводит, несколько - выводят (MIMO) настройку антенны, и оценивает производительность сети. Можно настроить стратегию планирования усилить возможности MIMO и анализировать эффективность. Этот пример выполняет нисходящий канал (DL) и восходящий канал (UL) измерения канала с помощью многопортовых опорных сигналов информации о состоянии канала (CSI-RS) и звучание опорными сигналами (SRS), соответственно. gNB использует измеренные характеристики канала, чтобы принять решения планирования MIMO.

Введение

MIMO улучшает производительность сети путем улучшения пропускной способности ячейки и надежности. Пример выполняет отображение слоя и предварительное кодирование, чтобы использовать MIMO в DL и направлениях UL.

Этот пример модели:

  • Single-codeword DL пространственное мультиплексирование, чтобы выполнить многоуровневую передачу. Одно кодовая комбинация ограничивает количество слоев передачи к 4.

  • Single-codeword UL пространственное мультиплексирование. 3GPP спецификация позволяет только одно кодовую комбинацию в направлении UL, которое ограничивает количество слоев передачи к 4.

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

  • Качественное измерение канала DL UEs на основе многопортового CSI-RS получено от gNB. Та же настройка CSI-RS применяется ко всему UEs.

  • Качественное измерение канала UL gNB на основе многопортового SRS получено от UEs. Пример не поддерживает оценку ранга UL и обеспечивает ранг, который будет использоваться для оценки UL предварительное кодирование матрицы как параметр конфигурации.

  • Индикатор ранга (RI) DL, предварительное кодирование матричного индикатора (PMI) и качественная характеристика канала (CQI), сообщающая UEs. Пример поддерживает книгу шифров одно панели Типа 1 для PMI.

  • Потери при распространении в свободном пространстве (FSPL), аддитивный белый Гауссов шум (AWGN) и распространение кластеризованной линии задержки (CDL) образовывают канал модель.

Узлы отправляют пакеты управления (буферный отчет о состоянии (BSR), присвоение DL, предоставления UL, обратная связь PDSCH и отчет CSI) из полосы, без потребности ресурсов для передачи и гарантировали безошибочный прием.

MIMO

Это ключевые аспекты MIMO.

Пространственное мультиплексирование

Пространственное мультиплексирование использует MIMO, чтобы выполнить многоуровневую передачу. Минимум количества передающих и приемных антенн ограничивает количество слоев (или максимальный ранг). Слой, сопоставляющий карты процессов модулируемые символы кодовой комбинации на различные слои. Это сопоставляет каждый nth символ кодовой комбинации к nth слой. Например, этот рисунок показывает отображение кодовой комбинации на четыре слоя.

Кроме того, в направлении DL, спецификация NR также позволяет две кодовых комбинации и максимум до 8 слоев передачи. Пример в настоящее время только поддерживает одну кодовую комбинацию и для DL и для UL.

Предварительное кодирование

Предварительное кодирование, которое следует за отображением слоя, сопоставляет слои передачи с портами антенны. Предварительное кодирование применяет матрицу перед кодированием к слоям передачи и выходные потоки данных к портам антенны.

Измерение канала и создание отчетов

Это состоит из измерения канала DL и создания отчетов UEs и измерения канала UL gNB.

Измерение канала DL и создание отчетов

Создание отчетов CSI является процессом, которым UE, для передач DL, советует подходящему количеству слоев передачи (ранг), PMI и значения CQI к gNB. UE оценивает эти значения путем выполнения измерений канала на его сконфигурированных ресурсах CSI-RS. Для получения дополнительной информации смотрите 5G пример Создания отчетов CSI Нисходящего канала NR. gNB планировщик использует этот совет решить количество слоев передачи, предварительно кодируя матрицу и модуляцию и кодируя схему (MCS) для PDSCHs.

Измерение канала UL

gNB использует SRS, чтобы измерить характеристики канала UL, в некотором роде аналогичные CSI-RS базирующиеся измерения канала DL. Измерения канала UL служат важным входом к планировщику, чтобы решить количество слоев передачи, предварительно кодируя матрицу и MCS для PUSCHs.

Стек протокола NR

Узел (gNB или UE) является составом слоев стека NR. Классы помощника hNRGNB.m и hNRUE.m создают gNB и узлы UE, соответственно, содержа управление линией радиосвязи (RLC), среднее управление доступом (MAC) и физический уровень (PHY). Для получения дополнительной информации смотрите Оценку результатов деятельности Ячейки NR с примером Интегрирования Физического уровня.

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

Сконфигурируйте параметры симуляции в simParameters структура.

rng('default'); % Reset the random number generator
simParameters = []; % Clear the simParameters variable
simParameters.NumFramesSim = 10; % Simulation time in terms of number of 10 ms frames
simParameters.SchedulingType = 0; % Set the value to 0 (slot based scheduling) or 1 (symbol based scheduling)

Задайте количество UEs в ячейке, приняв, что UEs имеют последовательную радиосеть временные идентификаторы (RNTIs) от 1 к simParameters.NumUEs. Если вы изменяете количество UEs, гарантируете, что эти параметры симуляции являются массивами длины, равной значению simParameters.NumUEs: dlAppDataRate, ulAppDataRate, simParameters.UETxAnts, simParameters.UERxAnts, simParameters.ULRankIndicator

simParameters.NumUEs = 4;
% Assign position to the UEs assuming that the gNB is at (0, 0, 0). N-by-3
% matrix where 'N' is the number of UEs. Each row has (x, y, z) position of a
% UE (in meters)
simParameters.UEPosition = [300 0 0;
                            700 0 0;
                            1200 0 0;
                            3000 0 0];
% Validate the UE positions
validateattributes(simParameters.UEPosition, {'numeric'}, {'nonempty', 'real', 'nrows', simParameters.NumUEs, 'ncols', 3, 'finite'}, 'simParameters.UEPosition', 'UEPosition');

Задайте количества антенны в gNB и UEs.

simParameters.GNBTxAnts = 16;
simParameters.GNBRxAnts = 8;
simParameters.UETxAnts = [4; 4; 4; 4];
simParameters.UERxAnts = [2; 2; 2; 2];
% Validate the number of transmitter and receiver antennas at UE
validateattributes(simParameters.UETxAnts, {'numeric'}, {'nonempty', 'integer', 'nrows', simParameters.NumUEs, 'ncols', 1, 'finite'}, 'simParameters.UETxAnts', 'UETxAnts')
validateattributes(simParameters.UERxAnts, {'numeric'}, {'nonempty', 'integer', 'nrows', simParameters.NumUEs, 'ncols', 1, 'finite'}, 'simParameters.UERxAnts', 'UERxAnts')

Установите полосу пропускания канала на 5 МГц и расстояние между поднесущими (SCS) к 15 кГц, как задано в 3GPP Раздел TS 38.104 5.3.2.

simParameters.NumRBs = 25;
simParameters.SCS = 15; % kHz
simParameters.DLBandwidth = 5e6; % Hz
simParameters.ULBandwidth = 5e6; % Hz
simParameters.DLCarrierFreq = 2.646e9; % Hz
simParameters.ULCarrierFreq = 2.535e9; % Hz

Задайте настройку SRS для каждого UE. Пример принимает полную полосу пропускания SRS и номер расчески передачи как 4, таким образом, до 4 UEs являются частотой, мультиплексированной в том же символе SRS путем предоставления различного смещения расчески. Когда количество UEs - больше чем 4, они присвоены различные смещения паза SRS.

simParameters.SRSSubbandSize = 4;
srsConfig = cell(1, simParameters.NumUEs);
combNumber = 4; % SRS comb number
for ueIdx = 1:simParameters.NumUEs
    % Ensure non-overlapping SRS resources when there are more than 4 UEs by giving different offset
    srsPeriod = [10 3+floor((ueIdx-1)/4)];
    srsBandwidthMapping = nrSRSConfig.BandwidthConfigurationTable{:,2};
    csrs = find(srsBandwidthMapping <= simParameters.NumRBs, 1, 'last') - 1;
    % Set full bandwidth SRS
    srsConfig{ueIdx} = nrSRSConfig('NumSRSPorts', 4, 'SymbolStart', 13, 'SRSPeriod', srsPeriod, 'KTC', combNumber, 'KBarTC',  mod(ueIdx-1, combNumber), 'BSRS', 0, 'CSRS', csrs);
end
simParameters.SRSConfig = srsConfig;

Задайте настройку CSI-RS.

csirs = nrCSIRSConfig('NID', 1, 'NumRB', simParameters.NumRBs, 'RowNumber', 11, 'SubcarrierLocations', [1 3 5 7], 'SymbolLocations', 0, 'CSIRSPeriod', [5 2]);
simParameters.CSIRSConfig = {csirs};

Задайте настройку отчета CSI.

csiReportConfig.PanelDimensions = [8 1]; % [N1 N2] as per 3GPP TS 38.214 Table 5.2.2.2.1-2
csiReportConfig.CQIMode = 'Subband'; % 'Wideband' or 'Subband'
csiReportConfig.PMIMode = 'Subband'; % 'Wideband' or 'Subband'
csiReportConfig.SubbandSize = 4; % Refer TS 38.214 Table 5.2.1.4-2 for valid subband sizes
% Set codebook mode as 1 or 2. It is applicable only when the number of transmission layers is 1 or 2 and
% number of CSI-RS ports is greater than 2
csiReportConfig.CodebookMode = 1; 
simParameters.CSIReportConfig = {csiReportConfig};

Установите ранг UL использоваться для предварительного кодирования вычисление MCS и матрица. Пример не поддерживает оценку ранга UL. Для каждого UE определенного, номер, меньше чем или равный минимуму передающих антенн UE и gNB's, получает антенны.

simParameters.ULRankIndicator = [2 2 2 2];

Укажите, что сигнал к интерференции плюс шумовое отношение (SINR) к CQI индексирует таблицу отображения для частоты появления ошибочных блоков (BLER) 0,1. Интерполяционная таблица соответствует таблице CQI согласно 3GPP таблица 5.2.2.1-3 TS 38.214.

simParameters.DownlinkSINR90pc = [-3.4600 1.5400 6.5400 11.0500 13.5400 16.0400 17.5400 20.0400 22.0400 24.4300 26.9300 27.4300 29.4300 32.4300 35.4300];
simParameters.UplinkSINR90pc = [-5.4600 -0.4600 4.5400 9.0500 11.5400 14.0400 15.5400 18.0400 20.0400 22.4300 24.9300 25.4300 27.4300 30.4300 33.4300];

Задайте степень передачи и усиление антенны.

simParameters.UETxPower = 23; % Tx power for all the UEs in dBm
simParameters.GNBTxPower = 34; % Tx power for gNB in dBm
simParameters.GNBRxGain = 11; % Rx gain for gNB in dBi

Задайте стратегию планирования и максимальный предел на RBS, выделенном для PDSCH и PUSCH. Предел передачи применяется только к новым передачам а не к повторным передачам.

simParameters.SchedulerStrategy = 'PF'; % Supported scheduling strategies: 'PF', 'RR', and 'BestCQI'
simParameters.RBAllocationLimitUL = 15; % For PUSCH
simParameters.RBAllocationLimitDL = 15; % For PDSCH

Логгирование и настройка визуализации

CQIVisualization и RBVisualization параметры управляют отображением визуализации CQI и визуализации присвоения RB соответственно. Чтобы включить график визуализации RB, установите RBVisualization поле к true.

simParameters.CQIVisualization = true;
simParameters.RBVisualization = false;

Установите enableTraces к true регистрировать трассировки. Если enableTraces установлен в false, затем CQIVisualization и RBVisualization отключены автоматически, и трассировки не зарегистрированы симуляция. Чтобы ускорить симуляцию, установите enableTraces к false.

enableTraces = true;

Пример периодически обновляет метрические графики. Определите номер обновлений во время симуляции.

simParameters.NumMetricsSteps = 10;

Запишите журналы в MAT-файлы. Пример использует эти журналы для постанализа методом моделирования и визуализации.

parametersLogFile = 'simParameters'; % For logging the simulation parameters
simulationLogFile = 'simulationLogs'; % For logging the simulation traces
simulationMetricsFile = 'simulationMetrics'; % For logging the simulation metrics

Настройка трафика приложения

Установите периодический DL и шаблон трафика приложения UL для UEs.

dlAppDataRate = [40e3; 30e3; 20e3; 20e3]; % DL application data rate in kilo bits per second (kbps)
ulAppDataRate = [40e3; 30e3; 20e3; 20e3]; % UL application data rate in kbps
% Validate the DL application data rate
validateattributes(dlAppDataRate, {'numeric'}, {'nonempty', 'vector', 'numel', simParameters.NumUEs, 'finite', '>', 0}, 'dlAppDataRate', 'dlAppDataRate');
% Validate the UL application data rate
validateattributes(ulAppDataRate, {'numeric'}, {'nonempty', 'vector', 'numel', simParameters.NumUEs, 'finite', '>', 0}, 'ulAppDataRate', 'ulAppDataRate');

Выведенные параметры

Вычислите выведенные параметры на основе первичных параметров конфигурации, заданных в предыдущем разделе, и установите некоторые специфичные для примера константы.

simParameters.DuplexMode = 0; % FDD (Value as 0) or TDD (Value as 1)
simParameters.NCellID = 1; % Physical cell ID
simParameters.Position = [0 0 0]; % Position of gNB in (x,y,z) coordinates

Сконфигурируйте модель канала

channelModelUL = cell(1, simParameters.NumUEs);
channelModelDL = cell(1, simParameters.NumUEs);
waveformInfo = nrOFDMInfo(simParameters.NumRBs, simParameters.SCS);
for ueIdx = 1:simParameters.NumUEs
    % Configure the uplink channel model
    channel = nrCDLChannel;
    channel.DelayProfile = 'CDL-C';
    channel.DelaySpread = 300e-9;
    channel.CarrierFrequency = simParameters.ULCarrierFreq;
    [channel.TransmitAntennaArray.Size, channel.ReceiveAntennaArray.Size] = hArrayGeometry(simParameters.UETxAnts(ueIdx), simParameters.GNBRxAnts, 'uplink');
    channel.SampleRate = waveformInfo.SampleRate;
    channelModelUL{ueIdx} = channel;

    % Configure the downlink channel model
    channel = nrCDLChannel;
    channel.DelayProfile = 'CDL-C';
    channel.DelaySpread = 300e-9;
    channel.CarrierFrequency = simParameters.DLCarrierFreq;
    [channel.TransmitAntennaArray.Size, channel.ReceiveAntennaArray.Size] = hArrayGeometry(simParameters.GNBTxAnts, simParameters.UERxAnts(ueIdx), 'downlink');
    channel.SampleRate = waveformInfo.SampleRate;
    channelModelDL{ueIdx} = channel;
end

Вычислите длительность паза для выбранного SCS и количества пазов в системе координат на 10 мс.

slotDuration = 1/(simParameters.SCS/15); % In ms
numSlotsFrame = 10/slotDuration; % Number of slots in a 10 ms frame
numSlotsSim = simParameters.NumFramesSim * numSlotsFrame; % Number of slots in the simulation

Установите интервал, в котором пример обновляет метрическую визуализацию в терминах количества пазов. Поскольку этот пример использует гранулярность времени одного паза, MetricsStepSize поле должно быть целым числом.

simParameters.MetricsStepSize = ceil(numSlotsSim / simParameters.NumMetricsSteps);
if mod(numSlotsSim, simParameters.NumMetricsSteps) ~= 0
    % Update the NumMetricsSteps parameter if NumSlotsSim is not
    % completely divisible by it
    simParameters.NumMetricsSteps = floor(numSlotsSim / simParameters.MetricsStepSize);
end

Задайте один логический канал для каждого UE и установите логическую настройку канала для всех узлов (UEs и gNBs) в примере.

numLogicalChannels = 1; 
simParameters.LCHConfig.LCID = 4;

Задайте тип сущности RLC в области значений [0, 3]. Значения 0, 1, 2, и 3 указывают на RLC UM однонаправленная сущность DL, RLC UM однонаправленная сущность UL, RLC UM двунаправленная сущность и сущность RLC AM, соответственно.

simParameters.RLCConfig.EntityType = 2;

Создайте конфигурационную структуру канала RLC.

rlcChannelConfigStruct.LCGID = 1; % Mapping between logical channel and logical channel group ID
rlcChannelConfigStruct.Priority = 1; % Priority of each logical channel
rlcChannelConfigStruct.PBR = 8; % Prioritized bitrate (PBR), in kilobytes per second, of each logical channel
rlcChannelConfigStruct.BSD = 10; % Bucket size duration (BSD), in ms, of each logical channel
rlcChannelConfigStruct.EntityType = simParameters.RLCConfig.EntityType;
rlcChannelConfigStruct.LogicalChannelID = simParameters.LCHConfig.LCID;

Установите тип отображения согласно сконфигурированному типу планирования.

if ~isfield(simParameters, 'SchedulingType') || simParameters.SchedulingType == 0 % If no scheduling type is specified or slot based scheduling is specified
    simParameters.PUSCHMappingType = 'A';
    simParameters.PDSCHMappingType = 'A';
else % Symbol based scheduling
    simParameters.PUSCHMappingType = 'B';
    simParameters.PDSCHMappingType = 'B';
end

gNB и Setup UEs

Создайте gNB и объекты UE, инициализируйте информацию о качестве канала для UEs и настройте логический канал в gNB и UE. Классы помощника hNRGNB.m и hNRUE.m создают gNB узел и узел UE, соответственно, каждый содержащий RLC, MAC и PHY.

gNB = hNRGNB(simParameters); % Create gNB node
% Create scheduler
switch(simParameters.SchedulerStrategy)
    case 'RR' % Round robin scheduler
        scheduler = hNRSchedulerRoundRobin(simParameters);
    case 'PF' % Proportional fair scheduler
        scheduler = hNRSchedulerProportionalFair(simParameters);
    case 'BestCQI' % Best CQI scheduler
        scheduler = hNRSchedulerBestCQI(simParameters);
end
addScheduler(gNB, scheduler); % Add scheduler to gNB
simParameters.ChannelModel = channelModelUL;
gNB.PhyEntity = hNRGNBPhy(simParameters); % Create the PHY instance
configurePhy(gNB, simParameters); % Configure the PHY
setPhyInterface(gNB); % Set the interface to PHY

% Create the set of UE nodes
UEs = cell(simParameters.NumUEs, 1);
ueParam = simParameters;
for ueIdx=1:simParameters.NumUEs
    ueParam.Position = simParameters.UEPosition(ueIdx, :); % Position of the UE
    ueParam.UERxAnts = simParameters.UERxAnts(ueIdx);
    ueParam.UETxAnts = simParameters.UETxAnts(ueIdx);
    ueParam.SRSConfig = simParameters.SRSConfig{ueIdx};
    ueParam.CSIReportConfig = simParameters.CSIReportConfig{1}; % Assuming same CSI Report configuration for all UEs
    ueParam.ChannelModel = channelModelDL{ueIdx};
    UEs{ueIdx} = hNRUE(ueParam, ueIdx);
    UEs{ueIdx}.PhyEntity = hNRUEPhy(ueParam, ueIdx); % Create the PHY instance
    configurePhy(UEs{ueIdx}, ueParam); % Configure the PHY
    setPhyInterface(UEs{ueIdx}); % Set up the interface to PHY
    
    % Set up logical channel at gNB for the UE
    configureLogicalChannel(gNB, ueIdx, rlcChannelConfigStruct);
    % Set up logical channel at UE
    configureLogicalChannel(UEs{ueIdx}, ueIdx, rlcChannelConfigStruct);
    
    % Set up application traffic
    % Create an object for on-off network traffic pattern for the specified
    % UE and add it to the gNB. This object generates the downlink data
    % traffic on the gNB for the UE
    dlApp = networkTrafficOnOff('GeneratePacket', true, ...
        'OnTime', simParameters.NumFramesSim*10e-3, 'OffTime', 0, 'DataRate', dlAppDataRate(ueIdx));
    addApplication(gNB, ueIdx, simParameters.LCHConfig.LCID, dlApp);
    % Create an object for on-off network traffic pattern and add it to the
    % specified UE. This object generates the uplink data traffic on the UE
    ulApp = networkTrafficOnOff('GeneratePacket', true, ...
        'OnTime', simParameters.NumFramesSim*10e-3, 'OffTime', 0, 'DataRate', ulAppDataRate(ueIdx));
    addApplication(UEs{ueIdx}, ueIdx, simParameters.LCHConfig.LCID, ulApp);
end

Настройте пакетный механизм распределения.

simParameters.MaxReceivers = simParameters.NumUEs + 1; % Number of nodes
% Create packet distribution object
packetDistributionObj = hNRPacketDistribution(simParameters);
hNRSetUpPacketDistribution(simParameters, gNB, UEs, packetDistributionObj);

Обработка цикла

Запустите символ симуляции символом, чтобы выполнить эти операции.

  • Запустите gNB.

  • Запустите UEs.

  • Регистрируйте и визуализируйте метрики для каждого слоя.

  • Усовершенствуйте таймер для узлов и отправьте триггер в приложение и слои RLC каждая миллисекунда. Приложение и слои RLC выполняют их запланированные операции на основе триггера таймера на 1 мс.

Создайте объекты регистрировать и визуализировать трассировки MAC и трассировки PHY.

if enableTraces
    % Create an object for MAC traces logging
    simSchedulingLogger = hNRSchedulingLogger(simParameters);
    % Create an object for PHY traces logging
    simPhyLogger = hNRPhyLogger(simParameters);
    % Create an object for CQI and RB grid visualization
    if simParameters.CQIVisualization || simParameters.RBVisualization
        gridVisualizer = hNRGridVisualizer(simParameters, 'MACLogger', simSchedulingLogger);
    end
end

Создайте объект для MAC и метрической визуализации PHY.

nodes = struct('UEs', {UEs}, 'GNB', gNB);
metricsVisualizer = hNRMetricsVisualizer(simParameters, 'Nodes', nodes, 'EnableSchedulerMetricsPlots', true, 'EnablePhyMetricsPlots', true);

Запустите цикл обработки.

slotNum = 0;
numSymbolsSim = numSlotsSim * 14; % Simulation time in units of symbol duration (assuming normal cyclic prefix)

tickGranularity = 1;
% Execute all the symbols in the simulation
for symbolNum = 1 : tickGranularity : numSymbolsSim    
    if mod(symbolNum - 1, 14) == 0
        slotNum = slotNum + 1;
    end
    % Run the gNB
    run(gNB);
    
    % Run the UEs
    for ueIdx = 1:simParameters.NumUEs
        run(UEs{ueIdx});
    end
    
    if enableTraces
        % MAC logging
        logCellSchedulingStats(simSchedulingLogger, symbolNum, gNB, UEs);
        % PHY logging
        logCellPhyStats(simPhyLogger, symbolNum, gNB, UEs);
    end
    
    % Visualization    
    % Check slot boundary
    if symbolNum > 1 && ((simParameters.SchedulingType == 1 && mod(symbolNum, 14) == 0) || (simParameters.SchedulingType == 0 && mod(symbolNum-1, 14) == 0))
        % If the update periodicity is reached, plot scheduler metrics and PHY metrics at slot boundary
        if mod(slotNum, simParameters.MetricsStepSize) == 0
            plotLiveMetrics(metricsVisualizer);
        end
    end
    
    % Advance timer ticks for gNB and UEs
    advanceTimer(gNB, tickGranularity);
    for ueIdx = 1:simParameters.NumUEs
        advanceTimer(UEs{ueIdx}, tickGranularity);
    end
end

Figure Channel Quality Visualization contains objects of type heatmap, uigridlayout. The chart of type heatmap has title Channel Quality Visualization for Cell ID - 1.

Получите метрики симуляции и сохраните его в MAT-файле. Метрики симуляции сохранены в MAT-файле с именем файла как simulationMetricsFile.

metrics = getMetrics(metricsVisualizer);
save(simulationMetricsFile, 'metrics');

В конце симуляции достигнутое значение для индикатора производительности системы сравнивается с их теоретическими пиковыми значениями (рассматривающий нулевые издержки). Отображенные показатели эффективности являются достигнутой скоростью передачи данных (UL и DL), достиг спектрального КПД (UL и DL), и BLER, наблюдаемый для UEs (DL и UL). Пиковые значения вычисляются согласно 3GPP TR 37.910. Количество слоев, используемых для пикового DL и вычисления скорости передачи данных UL, взято в качестве среднего значения максимальных слоев, возможных для каждого UE в соответствующем направлении. Максимальное количество слоев DL, возможных для UE, является минимумом своих антенн Rx и антенн Tx gNB. Точно так же максимальное количество слоев UL, возможных для UE, является минимумом своих антенн Tx и антенн Rx gNB.

displayPerformanceIndicators(metricsVisualizer);
Peak UL Throughput: 124.42 Mbps. Achieved Cell UL Throughput: 27.44 Mbps
Achieved UL Throughput for each UE: [9.66        9.22        8.12        0.44]
Achieved Cell UL Goodput: 27.44 Mbps
Achieved UL Goodput for each UE: [9.66        9.22        8.12        0.44]
Peak UL spectral efficiency: 24.88 bits/s/Hz. Achieved UL spectral efficiency for cell: 5.49 bits/s/Hz 

Peak DL Throughput: 62.21 Mbps. Achieved Cell DL Throughput: 36.06 Mbps
Achieved DL Throughput for each UE: [10.73         9.85         9.14         6.34]
Achieved Cell DL Goodput: 36.06 Mbps
Achieved DL Goodput for each UE: [10.73         9.85         9.14         6.34]
Peak DL spectral efficiency: 12.44 bits/s/Hz. Achieved DL spectral efficiency for cell: 7.21 bits/s/Hz

Block error rate for each UE in the uplink direction: [0  0  0  0]
Block error rate for each UE in the downlink direction: [0  0  0  0]

Визуализация симуляции

Пять типов показанной визуализации во время выполнения:

  • Отображение значений CQI для UEs по полосе пропускания PUSCH/PDSCH: Для получения дополнительной информации см. 'Качественное описание' Визуализации Канала фигуры в NR PUSCH FDD, Планируя пример.

  • Отображение присвоения сетки ресурса на UEs: 2D сетка частоты времени показывает распределение ресурсов UEs. Можно включить эту визуализацию в разделе 'Scenario Configuration'. Для получения дополнительной информации см. 'описание' Выделения Сетки Ресурса фигуры в NR PUSCH FDD, Планируя пример.

  • Отображение UL планирование метрических графиков: Для получения дополнительной информации см. 'Восходящее описание' показателей производительности Планировщика фигуры в NR FDD, Планируя пример Оценки результатов деятельности.

  • Отображение DL планирование метрических графиков: Для получения дополнительной информации см. 'Нисходящее описание' показателей производительности Планировщика фигуры в NR FDD, Планируя пример Оценки результатов деятельности.

  • Отображение DL и Частот появления ошибочных блоков UL: Эти два подграфика, отображенные в 'Частоте появления ошибочных блоков (BLER), который Визуализация' показывает частоте появления ошибочных блоков (для каждого UE) наблюдаемый в восходящих и нисходящих направлениях как симуляция, прогрессируют. График обновляется каждый metricsStepSize пазы.

Журналы симуляции

Параметры, используемые для симуляции и журналов симуляции, сохранены в MAT-файлах для анализа методом моделирования сообщения и визуализации. Параметры симуляции сохранены в MAT-файле с именем файла как значение параметра конфигурации parametersLogFile. На журналы временного шага, планируя журналы присвоения и журналы BLER сохранены в MAT-файле simulationLogFile. После симуляции откройте файл, чтобы загрузить DLTimeStepLogs, ULTimeStepLogs, SchedulingAssignmentLogs, BLERLogs в рабочей области.

Журналы временного шага: И DL и журналы временного шага UL следуют за тем же форматом. Для получения дополнительной информации формата журнала, смотрите раздел 'Simulation Logs' NR PUSCH FDD, Планируя пример.

Планирование журналов присвоения: информация всех присвоений планирования и сопутствующей информации зарегистрирована этот файл. Для получения дополнительной информации формата журнала, смотрите раздел 'Simulation Logs' NR FDD, Планируя пример Оценки результатов деятельности.

Журналы BLER: информация о Блочной ошибке наблюдается в DL и направлении UL. Для получения дополнительной информации формата журнала, смотрите раздел 'Simulation Logs' в Оценке результатов деятельности Ячейки NR с примером Интегрирования Физического уровня.

if enableTraces
    simulationLogs = cell(1,1);
    if simParameters.DuplexMode == 0 % FDD
        logInfo = struct('DLTimeStepLogs', [], 'ULTimeStepLogs', [], 'SchedulingAssignmentLogs', [], 'BLERLogs', [], 'AvgBLERLogs', []);
        [logInfo.DLTimeStepLogs, logInfo.ULTimeStepLogs] = getSchedulingLogs(simSchedulingLogger);
    else % TDD
        logInfo = struct('TimeStepLogs', [], 'SchedulingAssignmentLogs', [], 'BLERLogs', [], 'AvgBLERLogs', []);
        logInfo.TimeStepLogs = getSchedulingLogs(simSchedulingLogger);
    end
    [logInfo.BLERLogs, logInfo.AvgBLERLogs] = getBLERLogs(simPhyLogger); % BLER logs
    logInfo.SchedulingAssignmentLogs = getGrantLogs(simSchedulingLogger); % Scheduling assignments log
    simulationLogs{1} = logInfo;
    save(parametersLogFile, 'simParameters'); % Save simulation parameters in a MAT-file
    save(simulationLogFile, 'simulationLogs'); % Save simulation logs in a MAT-file
end

Можно запустить скрипт NRPostSimVisualization, чтобы получить визуализацию постсимуляции журналов. Для получения дополнительной информации об опциях, чтобы запустить этот скрипт, обратитесь к NR FDD, Планируя пример Оценки результатов деятельности.

Дальнейшее исследование

Можно использовать этот пример, чтобы далее исследовать пользовательское планирование.

Пользовательское планирование

Можно изменить существующую стратегию планирования реализовать пользовательскую. Включите Пользовательский Планировщик в примере Симуляции Уровня системы, объясняет, как создать пользовательскую стратегию планирования и включить ее в симуляцию уровня системы. Настройка MIMO добавляет больше полей к структуре присвоения планирования. Заполните поля планирования присвоений со значениями для предварительного кодирования матрицы, количества слоев согласно вашей пользовательской стратегии планирования. Для получения дополнительной информации об информационных полях присвоения планирования, см. описание scheduleDLResourcesSlot и scheduleULResourcesSlot функции в hNRScheduler.m файле помощника.

Планировщик DL в примере выбирает ранг и предварительно кодирующий матрицу, о которой UE сообщает в CSI. Можно также настроить это поведение, чтобы выбрать любой ранг и матрицу перед кодированием путем переопределения функционального selectDLRankAndPrecodingMatrix в вашем пользовательском планировщике. Для получения дополнительной информации см. описание selectDLRankAndPrecodingMatrix функция в hNRScheduler.m файле. Можно сделать подобную индивидуальную настройку для направления UL путем переопределения selectULRankAndPrecodingMatrix функция в hNRScheduler.m.

Импорт трассировок луча

Можно изменить этот пример, чтобы настроить параметры модели канала CDL при помощи выхода анализа трассировки лучей. Обратитесь к скрипту CellPerformanceWithRayTrace.m, который демонстрирует этот рабочий процесс. Скрипт следует за Индивидуальной настройкой Модели Канала CDL с примером Трассировки лучей, чтобы сконфигурировать 'Пользовательский' профиль задержки объекта nrCDLChannel.

Ссылки

[1] 3GPP TS 38.104. “NR; передача радио Базовой станции (BS) и прием”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[2] 3GPP TS 38.214. “NR; процедуры Физического уровня для данных”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[3] 3GPP TS 38.321. “NR; спецификация протокола Среднего управления доступом (MAC)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[4] 3GPP TS 38.322. “NR; спецификация протокола Управления линией радиосвязи (RLC)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[5] 3GPP TS 38.323. “NR; спецификация Пакетного протокола сходимости данных (PDCP)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[6] 3GPP TS 38.331. “NR; спецификация протокола Радио-управления ресурсами (RRC)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[7] 3GPP TR 37.910. “Исследование сам оценка к представлению IMT-2020”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

Похожие темы