NR FDD планируя оценку результатов деятельности

Это планирование моделей в качестве примера нисходящего канала (DL) и восходящего канала (UL) ресурсы и измеряет уровень сети в режиме дуплекса деления частоты (FDD). Пример включает три различных стратегии планирования, и можно также интегрировать пользовательскую стратегию планирования. Чтобы оценить производительность сети с различными шаблонами потока данных, пример также демонстрирует слой управления линией радиосвязи в неподтвержденном режиме (RLC-UM) с процедурой логического установления приоритетов канала (LCP). К модели PHY основанная на вероятности передача используется физический слой (PHY) без любой обработки сигналов. Можно переключиться на слой PHY 5G Toolbox™ для высококачественного моделирования. Эффективность стратегии планирования оценена в терминах достигнутой пропускной способности и справедливости в разделении ресурсов.

Введение

В этом примере показано, как стратегия планирования (управляемый gNB) присваивает UL и ресурсы DL среди UEs. Пример рассматривает следующие операции в gNB и UEs, которые упрощают UL и передачи DL и приемы.

Полный PUSCH или пакет PDSCH передаются в первом символе его выделенного набора символов. Приемник обрабатывает пакет в символе сразу после последнего символа в выделенном наборе символов.

Планировщики (UL и DL) запускаются каждый p пазы, чтобы присвоить UL и ресурсы DL, где p является сконфигурированной периодичностью планировщика. В каждом запуске количество запланированных пазов равно периодичности запущенного планировщика, p.

Планировщик UL

Первый паз, среди p пазов, которые будут запланированы в запуске, является самым близким предстоящим пазом, который удовлетворяет возможности времени для подготовки PUSCH UEs. Например, рисунок показывает способ, которым планировщик выбирает пазы во время двух последовательных запусков. Это принимает периодичность планировщика (p) 3 пазов. Следовательно, планировщик выполняется после каждых 3 пазов и планирует ресурсы для 3 пазов. Возможность времени для подготовки PUSCH всего UEs принята как больше, чем 1 паз (14 символов), но меньше чем 2 паза (28 символов).

  • Запуск 1: Когда планировщик запустится в начале Паза-A, он планирует 3 паза, начинающие с Паза-C, потому что для Паза-A и Вставляют-B UEs, не получают достаточно времени для подготовки PUSCH (UEs получает время 0 символов в начале Паза-A и 14 символов в начале Паза-B). Для Паза-C UEs получают 28 символов для подготовки PUSCH, и это удовлетворяет возможности времени для подготовки PUSCH. Следовательно, Паз-C, D, и E планируются в этом запуске.

  • Запуск 2: Когда планировщик запустится в начале Паза-D, он планирует следующие 3 непрерывных паза, начинающие с Паза-F (Паз-F, G, и H).

Планировщик DL

Первый паз, среди p пазов, которые будут запланированы в запуске, является мгновенным следующим пазом.

  • Запуск 1: Когда планировщик запустится в начале Паза-A, он планирует 3 непрерывных паза Slot-B, C, и D.

  • Запуск 2: Когда планировщик запустится в начале Паза-D, он планирует 3 непрерывных паза Slot-E, F, и G.

Можно выбрать любую из реализованных стратегий планирования: пропорциональная ярмарка (PF), лучший CQI или циклический алгоритм (RR). Различные поддерживаемые входные параметры к планировщику UL перечислены наряду со стратегиями планирования, которые рассматривают их.

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

Опорный сигнал демодуляции (DM-RS) не моделируется в этом примере. Однако один символ сохранен неиспользованным для него в PUSCH и присвоениях PDSCH.

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

  • Находящийся на пазе и основанный на символе DL и планирование UL.

  • Выделение, состоящее из нескольких несмежных участков, ресурсов частотного диапазона в терминах ресурса блокирует группы (RBGs).

  • Конфигурируемое расстояние между поднесущими, приводящее к различной длительности паза.

  • Асинхронный адаптивный гибридный автоматический повторный запрос (HARQ) механизм в UL и DL.

  • Несколько логических каналов (LCHs), чтобы поддержать другой вид приложений.

  • Логическое установление приоритетов канала (LCP), чтобы распределить полученное присвоение среди логических каналов на UE для UL и DL.

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

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

rng('default'); % Reset the random number generator
simParameters = []; % Clear the simulation parameters
simParameters.NumFramesSim = 100; % Simulation time in terms of number of 10 ms frames

Задайте количество UEs в ячейке, приняв, что UEs имеют последовательную радиосеть временные идентификаторы (RNTIs) от 1 к simParameters.NumUEs. Если вы изменяете количество UEs, гарантируете что количество строк в simParameters.UEPosition параметр равняется значению simParameters.NumUEs.

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 = [100 0 0;
                            250 0 0;
                            700 0 0;
                            750 0 0];
% Validate the UE positions
validateattributes(simParameters.UEPosition, {'numeric'}, {'nonempty', 'real', 'nrows', simParameters.NumUEs, 'ncols', 3, 'finite'}, 'simParameters.UEPosition', 'UEPosition');

Установите полосу пропускания канала на 30 МГц и расстояние между поднесущими (SCS) к 15 кГц, как задано в 3GPP Раздел TS 38.104 5.3.2. Полная полоса пропускания принята, чтобы быть выделенной для PUSCH/PDSCH.

simParameters.DLBandwidth = 30e6; % Hz
simParameters.ULBandwidth = 30e6; % Hz
simParameters.NumRBs = 160;
simParameters.SCS = 15; % kHz
simParameters.DLCarrierFreq = 2.635e9; % Hz
simParameters.ULCarrierFreq = 2.515e9; % Hz

Сконфигурируйте параметры, чтобы обновить качество канала UL в gNB и качество канала DL в gNB и UE. Условия канала периодически улучшаются или ухудшаются CQIDelta каждый channelUpdatePeriodicity секунды для всего RBS UE. Улучшаются ли условия канала для конкретного UE или ухудшаются, случайным образом определяется.

RBCQI = RBCQI +/- CQIDelta

simParameters.ChannelUpdatePeriodicity = 0.2; % In sec
simParameters.CQIDelta = 2;

Сконфигурируйте отображение между расстоянием от gNB (первый столбец в метрах) и максимальным достижимым значением UL CQI (второй столбец). Например, если UE на расстоянии в 700 метров от gNB, он может достигнуть максимального значения CQI 10, когда расстояние находится в пределах [501, 800] область значений метров, согласно отображению. Установите расстояние в увеличивающемся порядке и максимальном достижимом значении CQI в порядке убывания. Это отображение только применимо, когда передача PHY используется.

simParameters.CQIvsDistance = [
    200  15;
    500  12;
    800  10;
    1000  8;
    1200  7];

Задайте периодичность BSR и настройку сущности HARQ.

simParameters.BSRPeriodicity = 5; % In ms
simParameters.EnableHARQ = true; % Flag to enable or disable HARQ. If disabled, there are no retransmissions
simParameters.NumHARQ = 16; % Number of HARQ processes

Сконфигурируйте периодичность запуска планировщика (в терминах количества пазов), тип планировщика (находящийся на пазе или основанный на символе), и стратегия планировщика, используемая для выделения ресурсов PUSCH/PDSCH. Когда пропорциональное справедливое планирование будет сконфигурировано, задайте параметр скользящего среднего значения в области значений [0, 1], чтобы вычислить среднюю скорость передачи данных для UE в UL и направлениях DL. Значение параметров ближе к 1 подразумевает больше веса на мгновенной скорости передачи данных. Значение параметров ближе к 0 подразумевает больше веса на прошлой скорости передачи данных.

AverageDataRate = ((1 - MovingAvgDataRateWeight) * PastDataRate) + (MovingAvgDataRateWeight * InstantaneousDataRate)

simParameters.SchedulerPeriodicity = 4; % Value must be less than the number of slots in a 10 ms frame
simParameters.SchedulingType = 0; % Set the value to 0 (slot-based scheduling) or 1 (symbol-based scheduling)
simParameters.SchedulerStrategy = 'PF'; % Supported scheduling strategies: 'PF', 'RR' and 'BestCQI'
simParameters.MovingAvgDataRateWeight = 0.5;

Задайте параметр подготовки PUSCH. gNB гарантирует, что присвоение PUSCH получено в UEs, по крайней мере, PUSCHPrepTime перед временем передачи.

simParameters.PUSCHPrepTime = 200; % In microseconds 

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

simParameters.RBAllocationLimitUL = 100; % For PUSCH
simParameters.RBAllocationLimitDL = 100; % For PDSCH

Логическая настройка канала

Загрузите логическую таблицу настройки канала. Каждая строка в таблице представляет один логический канал и имеет эти свойства как столбцы.

  • RNTI - Радиосеть временный идентификатор UE.

  • LogicalChannelID - Логический идентификатор канала.

  • LCGID - Логический идентификатор группы канала.

  • SeqNumFieldLength - Задает длину поля порядкового номера. Это берет или 6 или 12.

  • MaxTxBufferSDUs - Максимальный buffer size Tx в терминах количества более высоких модулей эксплуатационных данных слоя (SDUs).

  • ReassemblyTimer - Задает таймер повторной сборки (в мс).

  • EntityType - Задает тип сущности RLC. Это принимает значения 0, 1, и 2, который указывает, является ли сущность RLC UM однонаправленным DL, однонаправленным UL или двунаправленным UM, соответственно.

  • Приоритет - Приоритет логического канала.

  • PBR - Приоритизированный битрейт (в килобайтах в секунду).

  • BSD - Длительность размера блока (в мс).

load('NRFDDRLCChannelConfig.mat')
simParameters.RLCChannelConfig = RLCChannelConfig;

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

Загрузите таблицу конфигурации приложения, содержащую эти поля. Каждая строка в таблице представляет одно приложение и имеет эти свойства как столбцы.

  • DataRate - Скорость генерации трафика приложения (в килобитах в секунду).

  • PacketSize - Размер пакета (в байтах).

  • HostDevice - Задает устройство (UE или gNB), на котором приложение установлено с заданной настройкой. Устройство принимает значения 0 или 1. Значения указывают, что приложение сконфигурировано на gNB стороне или стороне UE, соответственно.

  • RNTI - Радиосеть временный идентификатор UE. Это идентифицирует UE, для которого установлено приложение.

  • LCID - Логический идентификатор канала.

load('NRFDDAppConfig.mat');
% Validate the host device type for the applications configured
validateattributes(AppConfig.HostDevice, {'numeric'}, {'nonempty', 'integer', '>=', 0, '<=', 1}, 'AppConfig.HostDevice', 'HostDevice');

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

CQIVisualization и RBVisualization параметры управляют отображением визуализации CQI и визуализации присвоения RB соответственно. По умолчанию эти графики отключены. Можно включить им путем установки соответствующих флагов на истину.

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

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

enableTraces = true;

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

simParameters.NumMetricsSteps = 20;

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

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

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

На основе первичных параметров конфигурации вычислите выведенные параметры. Кроме того, подайте некоторый пример определенные константы.

simParameters.DuplexMode = 0; % FDD
% Size of sub-band for CQI reporting in terms of number of RBs (Only used
% when 5G Toolbox™ PHY layer processing is enabled)
simParameters.SubbandSize = 16;
simParameters.NumCells = 1; % Number of cells
simParameters.NCellID = 1; % Physical cell ID
simParameters.GNBPosition = [0 0 0]; % Position of gNB in (x,y,z) coordinates

Вычислите количество пазов и символов в симуляции.

numSlotsSim = (simParameters.NumFramesSim * 10 * simParameters.SCS)/15; % Number of slots in the simulation
numSymbolsSim = numSlotsSim * 14; % Number of symbols in the simulation (assuming normal cyclic prefix)

Вычислите максимальное достижимое значение CQI для UEs на основе их расстояния от gNB.

maxUECQIs = zeros(simParameters.NumUEs, 1); % To store the maximum achievable CQI value for UEs
for ueIdx = 1:simParameters.NumUEs
    ueDistance = norm(simParameters.UEPosition(ueIdx, :) - simParameters.GNBPosition);
    % Based on the distance of the UE from gNB, find matching row in
    % CQIvsDistance mapping
    matchingRowIdx = find(simParameters.CQIvsDistance(:, 1) > ueDistance);
    if isempty(matchingRowIdx)
        maxUECQIs(ueIdx) = simParameters.CQIvsDistance(end, 2);
    else
        maxUECQIs(ueIdx) = simParameters.CQIvsDistance(matchingRowIdx(1), 2);
    end
end

Задайте начальный UL и качество канала DL как N-by-P матрица, где 'N' является количеством UEs, и 'P' является количеством RBS в полосе пропускания несущей.

simParameters.InitialChannelQualityDL = zeros(simParameters.NumUEs, simParameters.NumRBs); % To store current DL CQI values on the RBs for different UEs
for ueIdx = 1:simParameters.NumUEs
    % Assign random CQI values for the RBs, limited by the maximum achievable CQI value
    simParameters.InitialChannelQualityDL(ueIdx, :) = randi([1 maxUECQIs(ueIdx)], 1, simParameters.NumRBs);
end
% Initially, DL and UL CQI values are assumed to be equal
simParameters.InitialChannelQualityUL = simParameters.InitialChannelQualityDL;

Получите логическую информацию канала, сопоставленную на UE. Эта информация помогает в метрическом логгировании RLC и визуализации.

lchInfo = repmat(struct('RNTI', [], 'LCID', [], 'EntityDir', []), [simParameters.NumUEs 1]);
for ueIdx = 1:simParameters.NumUEs
    lchInfo(ueIdx).RNTI = ueIdx;
    lchInfo(ueIdx).LCID = simParameters.RLCChannelConfig.LogicalChannelID(simParameters.RLCChannelConfig.RNTI == ueIdx);
    lchInfo(ueIdx).EntityDir = simParameters.RLCChannelConfig.EntityType(simParameters.RLCChannelConfig.RNTI == ueIdx);
end

Установите гранулярность метки деления симуляции (в терминах символов OFDM) и тип отображения согласно сконфигурированному типу планирования.

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

Установите интервал, в котором пример обновляет метрическую визуализацию в терминах количества пазов. Поскольку этот пример использует гранулярность времени одного паза, 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

gNB и Setup UEs

Создайте gNB и объекты UE, инициализируйте информацию о качестве канала для UEs и настройте логический канал в gNB и UE. Классы помощника hNRGNB.m и hNRUE.m создают gNB и узлы UE соответственно, содержа слои среднего управления доступом (MAC) и RLC. Для слоя МАКа hNRGNB.m использует класс помощника hNRGNBMAC.m, чтобы реализовать функциональность gNB MAC, и hNRUE.m использует hNRUEMAC.m, чтобы реализовать функциональность УИ МАКА. Планировщики реализованы в hNRSchedulerRoundRobin.m (RR), hNRSchedulerProportionalFair.m (PF), hNRSchedulerBestCQI.m (Лучший CQI). Все планировщики наследовались базовому классу hNRScheduler.m, который содержит базовую функциональность планирования. Для слоя RLC и hNRGNB.m и hNRUE.m используют hNRUMEntity.m, чтобы реализовать функциональность передатчика RLC и приемника. Слой Passthrough PHY для UE и gNB реализован в hNRUEPassThroughPhy.m и hNRGNBPassThroughPhy.m, соответственно.

simParameters.Position = simParameters.GNBPosition;
gNB = hNRGNB(simParameters); % Create gNB node

% Create and add 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

gNB.PhyEntity = hNRGNBPassThroughPhy(simParameters); % Add passthrough PHY
configurePhy(gNB, simParameters);
setPhyInterface(gNB); % Set the interface to PHY layer

% Create the set of UE nodes
UEs = cell(simParameters.NumUEs, 1); 
for ueIdx=1:simParameters.NumUEs
    simParameters.Position = simParameters.UEPosition(ueIdx, :); % Position of UE
    UEs{ueIdx} = hNRUE(simParameters, ueIdx);
    UEs{ueIdx}.PhyEntity = hNRUEPassThroughPhy(simParameters, ueIdx); % Add passthrough PHY
    configurePhy(UEs{ueIdx}, simParameters);
    setPhyInterface(UEs{ueIdx}); % Set the interface to PHY layer
    
    % Initialize the UL CQI values at gNB scheduler
    channelQualityInfoUL = struct('RNTI', ueIdx, 'CQI', simParameters.InitialChannelQualityUL(ueIdx, :));
    updateChannelQualityUL(gNB.MACEntity.Scheduler, channelQualityInfoUL);
    
    % Initialize the DL CQI values at gNB scheduler
    channelQualityInfoDL = struct('RNTI', ueIdx, 'CQI', simParameters.InitialChannelQualityDL(ueIdx, :));
    updateChannelQualityDL(gNB.MACEntity.Scheduler, channelQualityInfoDL);
 
    % Initialize the DL CQI values at UE for packet error probability estimation
    updateChannelQualityDL(UEs{ueIdx}.MACEntity, channelQualityInfoDL);
end

% Setup logical channels
for lchInfoIdx = 1:size(simParameters.RLCChannelConfig, 1)
    rlcChannelConfigStruct = table2struct(simParameters.RLCChannelConfig(lchInfoIdx, :));
    ueIdx = simParameters.RLCChannelConfig.RNTI(lchInfoIdx);
    % Setup the logical channel at gNB and UE
    gNB.configureLogicalChannel(ueIdx, rlcChannelConfigStruct);
    UEs{ueIdx}.configureLogicalChannel(ueIdx, rlcChannelConfigStruct);
end

% Add data traffic pattern generators to gNB and UE nodes
for appIdx = 1:size(AppConfig, 1)
    
    % Create an object for On-Off network traffic pattern
    app = networkTrafficOnOff('PacketSize', AppConfig.PacketSize(appIdx), 'GeneratePacket', true, ...
            'OnTime', simParameters.NumFramesSim/100, 'OffTime', 0, 'DataRate', AppConfig.DataRate(appIdx));

    if AppConfig.HostDevice(appIdx) == 0
        % Add traffic pattern that generates traffic on downlink
        addApplication(gNB, AppConfig.RNTI(appIdx), AppConfig.LCID(appIdx), app);
    else
        % Add traffic pattern that generates traffic on uplink
        addApplication(UEs{AppConfig.RNTI(appIdx)}, AppConfig.RNTI(appIdx), AppConfig.LCID(appIdx), app);
    end
end

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

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

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

  • Запустите слои MAC и PHY gNB

  • Запустите слои MAC и PHY UEs

  • Слой определенное логгирование и визуализация

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

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

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

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

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

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

slotNum = 0;

% Execute all the symbols in the simulation
for symbolNum = 1 : tickGranularity : numSymbolsSim
    if mod(symbolNum - 1, 14) == 0
        slotNum = slotNum + 1;
    end
    
    % Run MAC and PHY of gNB
    run(gNB);
    
    % Run MAC and PHY of UEs
    for ueIdx = 1:simParameters.NumUEs
        run(UEs{ueIdx});
    end

    if enableTraces
        % RLC logging (only at slot boundary)
        if (simParameters.SchedulingType == 1 && mod(symbolNum, 14) == 0) || (simParameters.SchedulingType == 0 && mod(symbolNum-1, 14) == 0)
            logCellRLCStats(simRLCLogger, gNB, UEs);
        end

        % MAC logging
        logCellSchedulingStats(simSchedulingLogger, 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 RLC metrics and scheduler metrics at slot boundary
        if mod(slotNum, simParameters.MetricsStepSize) == 0
            plotLiveMetrics(metricsVisualizer);
        end
    end
    
    % Advance timer ticks for gNB and UEs by 14 symbols
    advanceTimer(gNB, tickGranularity);
    for ueIdx = 1:simParameters.NumUEs
        advanceTimer(UEs{ueIdx}, tickGranularity);
    end
end

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

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

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

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

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

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

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

  • Отображение DL планирование метрических графиков: Как метрические графики UL, 'Нисходящие показатели производительности Планировщика' отображают соответствующие подграфики для направления DL. Показатели производительности строят обновление для каждого metricsStepSize пазы.

  • Отображение метрических графиков RLC: 'Метрический рисунок' Визуализации RLC показывает количество байтов, переданных слоем RLC (на логический канал) для каждого UE. Метрики RLC строят обновления для каждого metricsStepSize пазы.

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

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

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

Планирование журналов присвоения: информация всех присвоений планирования и сопутствующей информации зарегистрирована этот файл. Таблица показывает демонстрационные записи в журнале.

Журналы RLC: Для получения дополнительной информации о формате журнала RLC смотрите, что NR PUSCH FDD Планирует.

Можно запустить скрипт NRPostSimVisualization, чтобы получить визуализацию симуляции сообщения журналов. В скрипте симуляции сообщения вам предоставляют переменную isLogReplay, который предоставляет эти возможности визуализировать 'Выделение Сетки Ресурса' и 'Качественные фигуры' Визуализации Канала.

  • Установите isLogReplay к истине для воспроизведения журналов симуляции.

  • Установите isLogReplay ко лжи, чтобы анализировать детали конкретной системы координат. В окне 'Resource Grid Allocation', вход номер системы координат, чтобы визуализировать присвоение ресурса для целой системы координат. Номер системы координат, введенный здесь, управляет номером системы координат для 'Качественной Визуализации Канала', фигурируют также.

if enableTraces
    % Get the logs
    simulationLogs = cell(1,1);
    logInfo = struct('DLTimeStepLogs',[], 'ULTimeStepLogs',[], 'SchedulingAssignmentLogs',[] ,'RLCLogs',[]);
    [logInfo.DLTimeStepLogs, logInfo.ULTimeStepLogs] = getSchedulingLogs(simSchedulingLogger);
    logInfo.SchedulingAssignmentLogs = getGrantLogs(simSchedulingLogger); % Scheduling assignments log
    logInfo.RLCLogs = getRLCLogs(simRLCLogger);
    simulationLogs{1} = logInfo;
    save(parametersLogFile, 'simParameters'); % Save simulation parameters in a MAT-file
    save(simulationLogFile, 'simulationLogs'); % Save simulation logs in a MAT-file
end

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

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

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

Можно изменить существующую стратегию планирования реализовать пользовательскую. Включите Пользовательский Планировщик в примере Симуляции Уровня системы, объясняет, как создать пользовательскую стратегию планирования и включить ее в симуляцию уровня системы.

Используйте физический уровень 5G Toolbox™

Можно также переключиться от слоя PHY передачи до обработки физического уровня 5G Toolbox™ путем создания объектов PHY с помощью hNRGNBPhy.m и hNRUEPhy.m. Для получения дополнительной информации см. раздел 'gNB and UEs Setup' Оценки результатов деятельности Ячейки NR с Интегрированием Физического уровня.

На основе выбранной стратегии планирования этот пример показывает присвоение UL и ресурсов DL к нескольким UEs gNB. Отображение визуализации во время выполнения сетки ресурса дает подробную информацию о RBS, выделенном каждому UE и ID процесса HARQ, присвоенному для передачи. UL и DL планирование эффективности анализируются на основе графиков во время выполнения пропускной способности и полезной пропускной способности, справедливости доли ресурса и незаконченного буферного состояния на UEs. Более полный анализ методом моделирования сообщения при помощи сохраненных журналов дает подробное изображение операций, происходящих на на базис паза.

Используйте RLC AM

Можно также переключить рабочий режим сущности RLC от UM до подтвержденного режима (AM) путем изменения входных полей EntityType структуры и SeqNumFieldLength в configureLogicalChannel функция hNRNode.m. Установите EntityType к 3 и SeqNumFieldLength к или 12 или 18. Можно также добавить и установить следующие поля на входную структуру исследовать функциональность RLC AM:

  • PollRetransmitTimer: Таймер, используемый стороной передачи сущности RLC AM для того, чтобы ретранслировать опрос

  • PollPDU: Параметр, используемый стороной передачи сущности RLC AM, чтобы инициировать опрос на основе количества PDUs

  • PollByte: Параметр, используемый стороной передачи сущности RLC AM, чтобы инициировать опрос на основе количества байтов SDU

  • MaxRetransmissions: Максимальное количество повторных передач, соответствующих SDU RLC, включая его сегменты

  • StatusProhibitTimer: Таймер, используемый стороной получения сущности RLC AM для того, чтобы запретить частую передачу состояния PDUs

Ссылки

[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.331. “NR; спецификация протокола Радио-управления ресурсами (RRC)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

Похожие темы