exponenta event banner

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

Этот пример демонстрирует интеграцию высокого качества 5G Toolbox™ физический слой в 5G узел New Radio (NR). Модели a в качестве примера 5G НОМЕР клетки, состоящей из ряда пользовательского оборудования (UE), соединились с gNB. Стек NR на узлах включает в себя уровни управления радиолинией (RLC), управления доступом к среде (MAC) и физические уровни (PHY). В примере также моделируются нарушения канала, которые можно настроить. Для более быстрого моделирования, ориентированного на MAC, можно переключиться на уровень PHY или интегрироваться с пользовательским уровнем PHY.

Введение

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

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

Примеры моделей:

  • Планирование DL и UL на основе слотов и символов.

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

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

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

  • Опорный сигнал демодуляции PUSCH (DM-RS) и PDSCH DM-RS.

  • Измерение качества канала DL посредством UE на основе CSI-RS, принятого от gNB. По умолчанию элемент ресурса CSI-RS передается в каждом слоте для каждого ресурсного блока (RB) в полосе пропускания DL для всех UE. Одна и та же конфигурация CSI-RS применима ко всем UE. В примере не моделируется зондирующий опорный сигнал (SRS) для измерения качества канала UL. Предполагается, что качество канала UL совпадает с качеством канала DL, измеренным на CSI-RS.

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

  • Конфигурация антенны с одним входом и одним выходом (SISO).

  • Одна часть полосы пропускания по всей несущей.

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

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

Узел (gNB или UE) представляет собой композицию слоев стека NR. Вспомогательные классы hNRGNB.m и hNRUE.m создают узлы gNB и UE соответственно, содержащие уровни RLC, MAC и PHY.

Уровень RLC

RLC работает в неподтвержденном режиме (UM) с одним логическим каналом (LCH). Для уровня RLC как hNRGNB.m, так и hNRUE.m используют hNRUMentity.m для реализации функциональных возможностей как передатчика, так и приемника RLC.

Уровень MAC

Для уровня MAC hNRGNB.m использует вспомогательный класс hNRGNBMAC.m для реализации функциональных возможностей MAC gNB, а hNRUE.m использует hNRUEMAC.m для реализации функциональных возможностей MAC UE. MAC gNB имеет планировщики UL и DL, которые назначают ресурсы UL и DL соответственно UE. Для получения дополнительной информации о планировании UL и DL для назначения ресурсов PUSCH и PDSCH см. пример оценки эффективности планирования NR FDD. Планировщики реализованы в классах hNRschedulerRoundRobin.m (Круговая стратегия), hNRschedulerFair.m (Пропорциональная справедливая стратегия) и hNRSchedulerBestCQI.m (Лучшая стратегия CQI). Все эти планировщики наследуются от базового класса hNRScheduler.m, который содержит основные функции планирования.

PHY-моделирование уровня и канала

В примере используется 5G Toolbox™ для операций уровня PHY UE и gNB. На стороне передачи операции включают в себя обработку физического уровня транспортного блока, принятого от MAC, и его передачу. На стороне приема выполняется обработка принятого сигнала и отправка декодированной информации в MAC. Для получения дополнительной информации о цепочках обработки PDSCH и PUSCH см. пример пропускной способности NR PDSCH и пример пропускной способности NR PUSCH соответственно. Для уровня PHY hNRGNB.m использует класс hNRGNBPhy.m для реализации функциональных возможностей уровня PHY gNB, а hNRUE.m использует hNRUEPhy.m для реализации функциональных возможностей уровня PHY UE. Для нарушений канала в примере моделируются FSPL, AWGN и модель канала распространения CDL.

В примере используется таблица поиска для отображения принятого сигнала на отношение помех и шумов (SINR) к индексу CQI для частоты блочных ошибок (BLER) 0,1. Справочная таблица соответствует столу CQI согласно 3GPP таблица 5.2.2.1-3 TS 38.214. Для получения дополнительной информации о процессе создания этой справочной таблицы, обратитесь к 5G НОМЕР Передачи информации из космоса CSI Сообщение о примере.

Интерфейс MAC-PHY

Ниже приведены основные вызовы интерфейса между уровнем MAC и уровнем PHY. Дополнительные сведения см. в разделе hNRPhyInterface.m.

  • txDataRequest: Запрос от MAC к PHY на передачу либо PDSCH (посредством gNB), либо PUSCH (посредством UE). MAC вызывает этот запрос в начале времени передачи. В этом примере время обработки PHY не моделируется.

  • rxDataRequest: Запрос от MAC к PHY на прием PUSCH (посредством gNB) или PDSCH (посредством UE). MAC вызывает этот запрос в начале времени приема.

  • dlControlRequest: Запрос от MAC к PHY для передач или приемов без передачи данных по нисходящей линии связи. Для gNB этот запрос посылается MAC gNB для передач DL. Для UE он посылается UE MAC для приема DL. MAC посылает запрос в начале слота DL для всех запланированных передач или приемов DL в слоте. Этот интерфейс используется для всех передач и приемов DL, за исключением PDSCH. txDataRequest и rxDataRequest используются для PDSCH. В этом примере MAC gNB использует этот интерфейс для передачи CSI-RS, а MAC UE использует его для приема CSI-RS.

  • registerMACInterfaceFcn: Одноразовый вызов установки для регистрации обратного вызова MAC функционирует в PHY. PHY использует обратные вызовы для передачи информации в стек в MAC. gNB PHY использует обратный вызов для отправки декодированных пакетов UL в MAC. UE PHY использует обратные вызовы для передачи декодированных пакетов DL и качества канала DL, измеренного на CSI-RS, в MAC.

Подключаемый PHY

Вы можете подключить и использовать различные варианты уровня PHY в вашей системе. В прогоне моделирования все узлы используют один и тот же вариант уровня PHY. MAC не знает о типе уровня PHY ниже, поскольку MAC использует интерфейс MAC-PHY для взаимодействия с уровнем PHY. По умолчанию в примере используется 5G Toolbox™ для моделирования слоя PHY. Сведения об использовании уровня PHY, проходящего по каналу, см. в примерах NR PUSCH FDD Scheduling Performance Evaluation и NR TDD Symbol Based Scheduling Performance Evaluation. Транзитный PHY-уровень не выполняет обработку пакетов на физическом уровне.

Конфигурация сценария

Задайте параметры для моделирования.

rng('default'); % Reset the random number generator
simParameters = []; % Clear the simParameters variable
simParameters.NumFramesSim = 30; % 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)

% Number of UEs in the simulation. UEs are assumed to have sequential radio
% network temporary identifiers (RNTIs) from 1 to NumUEs. If you change the
% number of UEs, ensure that the following simulation parameters are array
% of length equal to NumUEs: simParameters.UEDistance,
% simParameters.ULPacketPeriodicityUEs, simParameters.ULPacketSizesUEs,
% simParameters.DLPacketPeriodicityUEs, simParameters.DLPacketSizesUEs
simParameters.NumUEs = 4;
simParameters.UEDistance = [100; 400; 1500; 1000];

% Set the channel bandwidth to 5 MHz and subcarrier spacing (SCS) to 15
% kHz as defined in 3GPP TS 38.104 Section 5.3.2
% RB count for 5 MHz band with 15 kHz SCS. The complete
% bandwidth is assumed to be allotted for PUSCH/PDSCH
simParameters.NumRBs = 25;
simParameters.SCS = 15; % kHz
simParameters.DLCarrierFreq = 2.635e9; % Hz
simParameters.ULCarrierFreq = 2.515e9; % Hz
% The UL and DL carriers are assumed to have symmetric channel
% bandwidth
simParameters.DLBandwidth = 5e6; % Hz
simParameters.ULBandwidth = 5e6; % Hz

simParameters.UETxPower = 23; % Tx power for all the UEs in dBm
simParameters.GNBTxPower = 29; % Tx power for gNB in dBm
simParameters.GNBRxGain = 11; % Receiver antenna gain at gNB

% SINR to CQI mapping table for 0.1 BLER
simParameters.SINR90pc = [-5.46 -0.46 4.54 9.05 11.54 14.04 15.54 18.04 ...
    20.04 22.43 24.93 25.43 27.43 30.43 33.43];

simParameters.SchedulerStrategy = 'PF'; % Supported scheduling strategies: 'PF', 'RR', and 'BestCQI'
% Maximum limit on the RBs allotted for PUSCH and PDSCH
% Transmission limit is applicable for new PUSCH and PDSCH assignments and
% not for the retransmissions
simParameters.RBAllocationLimitUL = 15; % For PUSCH
simParameters.RBAllocationLimitDL = 15; % For PDSCH

% Logging and Visualization Configuration
% The parameters CQIVisualization and RBVisualization control the display
% of these visualizations: (i) CQI visualization of RBs (ii) RB assignment
% visualization. By default, the 'RBVisualization' plot is disabled. You
% can enable it by setting to 'true'
simParameters.CQIVisualization = true;
simParameters.RBVisualization = false;
% The output metrics plots are updated periodically NumMetricsSteps times within the simulation duration
simParameters.NumMetricsSteps = 20;
% MAT-files to write the logs into. They are used for post simulation analysis and visualization
simParameters.ParametersLogFile = 'simParameters'; % For logging the simulation parameters
simParameters.SimulationLogFile = 'simulationLogs'; % For logging the simulation logs

% Enable packet capture (PCAP)
simParameters.PCAPLogging = false; % Set the value to true to enable packet capture for UEofInterest
simParameters.UEofInterest = 1; % Log the packets of UE with this RNTI

% Set the periodic UL and DL application traffic pattern for UEs
simParameters.ULPacketPeriodicityUEs = [10; 20; 20; 30]; % Periodicity (in ms) at which the UL packets are generated by UEs
simParameters.ULPacketSizesUEs = [8000; 8000; 7500; 8500]; % Size of the UL packets (in bytes) generated by UEs
simParameters.DLPacketPeriodicityUEs = [10; 20; 30; 30]; % Periodicity (in ms) at which the DL packets are generated for UEs at gNB
simParameters.DLPacketSizesUEs = [10000; 9000; 7500; 7500]; % Size of the DL packets generated (in bytes) for UEs at gNB
% Validate the simulation configuration
hNRCellPerformanceWithPhysicalLayerValidateConfig(simParameters);

Производные параметры

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

simParameters.DuplexMode = 0; % FDD
simParameters.NCellID = 1; % Physical cell ID
simParameters.Position = [0 0 0]; % Position of gNB in (x,y,z) coordinates
simParameters.CSIRSRowNumber = 2; % Possible row numbers for single transmit antenna case are 1 and 2
simParameters.SubbandSize = 8; % Size of sub-band for CQI reporting in terms of number of RBs
simParameters.ChannelModelType = 'CDL'; % To model CDL propagation channel
% gNB ensures that PUSCH assignment is received at UEs PUSCHPrepTime ahead
% of the transmission time
simParameters.PUSCHPrepTime = 200; % In microseconds
% Slot duration for the selected SCS and number of slots in a 10 ms frame
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

% Interval at which metrics visualization updates in terms of number of
% slots. As one slot is the finest time-granularity of the simulation, make
% sure that MetricsStepSize is an integer
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

numLogicalChannels = 1; % Only 1 logical channel is assumed in each UE in this example
% Logical channel id (logical channel ID of data radio bearers starts from 4) 
simParameters.LCHConfig.LCID = 4;

% RLC entity direction. Value 0 represents DL only, 1
% represents UL only and 2 represents both UL and DL
% direction. Setting entity direction to have both UL and DL
simParameters.RLCConfig.EntityDir = 2;

% Create RLC channel configuration structure
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.EntityDir;
rlcChannelConfigStruct.LogicalChannelID = simParameters.LCHConfig.LCID;

% Maximum RLC SDU length (in bytes) as per 3GPP TS 38.323
simParameters.maxRLCSDULength = 9000;

if ~isfield(simParameters, 'SchedulingType') || simParameters.SchedulingType == 0 % If no scheduling type is specified or slot based scheduling is specified
    rbAssignmentPlotPeriodicity = numSlotsFrame; % Update RB assignment visualization every frame (10 ms)
    tickGranularity = 14;
    simParameters.PUSCHMappingType = 'A';
    simParameters.PDSCHMappingType = 'A';
else % Symbol based scheduling
    rbAssignmentPlotPeriodicity = 1; % Update RB assignment visualization every slot
    tickGranularity = 1;
    simParameters.PUSCHMappingType = 'B';
    simParameters.PDSCHMappingType = 'B';
end

Настройка gNB и UE

Создайте объекты gNB и UE, инициализируйте информацию о качестве канала для UE и настройте логический канал в 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

gNB.PhyEntity = hNRGNBPhy(simParameters); % Create the PHY layer instance
configurePhy(gNB, simParameters); % Configure the PHY layer
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.UEDistance(ueIdx) 0 0]; % Position of UE
    UEs{ueIdx} = hNRUE(simParameters, ueIdx);
    UEs{ueIdx}.PhyEntity = hNRUEPhy(simParameters, ueIdx); % Create the PHY layer instance
    configurePhy(UEs{ueIdx}, simParameters); % Configure the PHY layer
    setPhyInterface(UEs{ueIdx}); % Set up the interface to PHY layer

    % Setup logical channel at gNB for the UE
    configureLogicalChannel(gNB, ueIdx, rlcChannelConfigStruct);
    % Setup logical channel at UE
    configureLogicalChannel(UEs{ueIdx}, ueIdx, rlcChannelConfigStruct);

    % Add data traffic pattern generators to gNB and UE nodes
    ulPacketSize = simParameters.ULPacketSizesUEs(ueIdx);
    % Calculate the data rate (in kbps) of On-Off traffic pattern using
    % packet size (in bytes) and packet interval (in ms)
    ulDataRate = ceil(1000/simParameters.ULPacketPeriodicityUEs(ueIdx)) * ulPacketSize * 8e-3;
    % Limit the size of the generated application packet to the maximum RLC
    % SDU size. The maximum supported RLC SDU size is 9000 bytes
    if ulPacketSize > simParameters.maxRLCSDULength
        ulPacketSize = simParameters.maxRLCSDULength;
    end

    % 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('PacketSize', ulPacketSize, 'GeneratePacket', true, ...
        'OnTime', simParameters.NumFramesSim/100, 'OffTime', 0, 'DataRate', ulDataRate);
    UEs{ueIdx}.addApplication(ueIdx, simParameters.LCHConfig.LCID, ulApp);

    dlPacketSize = simParameters.DLPacketSizesUEs(ueIdx);
    dlDataRate = ceil(1000/simParameters.DLPacketPeriodicityUEs(ueIdx)) * dlPacketSize *8e-3;
    if dlPacketSize > simParameters.maxRLCSDULength
        dlPacketSize = simParameters.maxRLCSDULength;
    end

    % 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('PacketSize', dlPacketSize, 'GeneratePacket', true, ...
        'OnTime', simParameters.NumFramesSim/100, 'OffTime', 0, 'DataRate', dlDataRate);
    gNB.addApplication(ueIdx, simParameters.LCHConfig.LCID, dlApp);
end
% Setup the UL and DL packet distribution mechanism
simParameters.MaxReceivers = simParameters.NumUEs;
% Create DL packet distribution object
dlPacketDistributionObj = hNRPacketDistribution(simParameters, 0); % 0 for DL
% Create UL packet distribution object
ulPacketDistributionObj = hNRPacketDistribution(simParameters, 1); % 1 for UL
hNRSetUpPacketDistribution(simParameters, gNB, UEs, dlPacketDistributionObj, ulPacketDistributionObj);

% Enable PCAP logging
if simParameters.PCAPLogging
    % To generate unique file name for every simulation run
    ueCapturefileName = strcat('CellID-', num2str(simParameters.NCellID), '_ue-',num2str(simParameters.UEofInterest), '_', num2str(now));
    enablePacketLogging(UEs{simParameters.UEofInterest}.PhyEntity, ueCapturefileName);
    
    % Uncomment the below code to enable packet capture at gNB
    % gnbCapturefileName = strcat('CellID-', num2str(simParameters.NCellID), '_gNB-', num2str(now));
    % enablePacketLogging(gNB.PhyEntity, gnbCapturefileName);
end

Цикл обработки

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

  • Запуск уровней MAC и PHY gNB

  • Запуск уровней MAC и PHY UE

  • Ведение журнала и визуализация на уровне

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

% Create an object for MAC (UL & DL) scheduling information visualization and logging
simSchedulingLogger = hNRSchedulingLogger(simParameters);
% Create an object for PHY metrics logging
simPhyLogger = hNRPhyLogger(simParameters);
% Create visualization object for MAC and PHY metrics
visualizer = hNRMetricsVisualizer(simParameters, 'MACLogger', simSchedulingLogger, 'PhyLogger', simPhyLogger);

% Run processing loop
slotNum = 0;
numSymbolsSim = numSlotsSim * 14; % Simulation time in units of symbol duration
% 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
    
    % MAC logging
    logCellSchedulingStats(simSchedulingLogger, symbolNum, gNB, UEs);
    
    % PHY logging
    logCellPhyStats(simPhyLogger, symbolNum, gNB, UEs);
    
    % Visualization
    % Check slot boundary
    if symbolNum > 1 && ((simParameters.SchedulingType == 1 && mod(symbolNum, 14) == 0) || (simParameters.SchedulingType == 0 && mod(symbolNum-1, 14) == 0))
        % RB assignment visualization (if enabled)
        if simParameters.RBVisualization
            if mod(slotNum, rbAssignmentPlotPeriodicity) == 0
                % Plot at slot boundary, if the update periodicity is reached
                plotRBGrids(simSchedulingLogger);
            end
        end
        % CQI grid visualization (if enabled)
        if simParameters.CQIVisualization
            if mod(slotNum, numSlotsFrame) == 0 % Plot at frame boundary
                plotCQIRBGrids(simSchedulingLogger);
            end
        end
        % If the update periodicity is reached, plot scheduler metrics and PHY metrics visualization
        % at slot boundary
        if mod(slotNum, simParameters.MetricsStepSize) == 0
            plotMetrics(visualizer, slotNum);
        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

Figure Channel Quality Visualization contains an axes and other objects of type uicontrol. The axes with title Channel Quality Visualization for Cell ID - 1 contains 80 objects of type rectangle.

Визуализация моделирования

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

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

  • Отображение назначения сети ресурсов для UE: 2D Временная частотная сетка показывает распределение ресурсов для UE. Эту визуализацию можно включить в разделе Конфигурация сценария. Для получения дополнительной информации см. описание рисунка «Распределение матрицы ресурсов» в примере планирования NR PUSCH FDD.

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

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

  • Отображение частоты ошибок блоков DL и UL: две подграфики, отображаемые в «Block Error Rate (BLER) Visualization», показывают частоту ошибок блоков (для каждого UE), наблюдаемую в восходящем и нисходящем направлениях, по мере продвижения моделирования. График обновляется каждый metricsStepSize слоты.

Журналы моделирования

Параметры, используемые для моделирования, и журналы моделирования сохраняются в MAT-файлах для анализа и визуализации после моделирования. Параметры моделирования сохраняются в MAT-файле с именем файла в качестве значения параметра конфигурации. simParameters.ParametersLogFile. В MAT-файле сохраняются журналы каждого шага времени, журналы назначения планирования и журналы BLER. simParameters.SimulationLogFile. После моделирования откройте файл для загрузки DLTimeStepLogs, ULTimeStepLogs SchedulingAssignmentLogs, и RLCLogs в рабочей области.

Регистрации временного шага: И DL и регистрации временного шага УЛ. следуют за тем же форматом. Для получения подробной информации о формате журнала см. раздел «Журналы моделирования» в NR PUSCH FDD Scheduling.

Журналы назначений планирования: В этот файл заносится информация обо всех назначениях планирования и соответствующая информация. Для получения подробной информации о формате журнала см. раздел «Журналы моделирования» в примере оценки производительности планирования NR FDD.

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

Каждая строка журнала представляет один слот. Столбец содержит информационный вектор длиной, равной количеству UE. Информация о UE имеет индекс, равный его RNTI.

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

simulationLogs = cell(1,1);
if(simParameters.DuplexMode == 0) % FDD
    logInfo = struct('DLTimeStepLogs', [], 'ULTimeStepLogs', [], 'SchedulingAssignmentLogs', [], 'BLERLogs', [], 'AvgBLERLogs', []);
else
    logInfo = struct('TimeStepLogs', [], 'SchedulingAssignmentLogs', [], 'BLERLogs', []);
end
[dlStats, ulStats] = getPerformanceIndicators(simSchedulingLogger);
[logInfo.BLERLogs, logInfo.AvgBLERLogs] = getBLERLogs(simPhyLogger); % Block Error rate logs
fprintf('Peak UL throughput: %0.2f Mbps. Achieved average UL Throughput: %0.2f Mbps', ulStats(1, 1), ulStats(2, 1));
Peak UL throughput: 31.11 Mbps. Achieved average UL Throughput: 5.70 Mbps
fprintf('\nPeak DL throughput: %0.2f Mbps. Achieved average DL Throughput: %0.2f Mbps', dlStats(1, 1), dlStats(2, 1));
Peak DL throughput: 31.11 Mbps. Achieved average DL Throughput: 5.84 Mbps
fprintf('\nAchieved average UL Goodput: %0.2f Mbps. Achieved average DL Goodput: %0.2f Mbps', ulStats(5, 1), dlStats(5, 1));
Achieved average UL Goodput: 5.65 Mbps. Achieved average DL Goodput: 5.83 Mbps
fprintf('\nPeak UL spectral efficiency: %0.2f bits/s/Hz. Achieved average UL spectral efficiency: %0.2f bits/s/Hz ', ulStats(3, 1), ulStats(4, 1));
Peak UL spectral efficiency: 6.22 bits/s/Hz. Achieved average UL spectral efficiency: 1.14 bits/s/Hz 
fprintf('\nPeak DL spectral efficiency: %0.2f bits/s/Hz. Achieved average DL spectral efficiency: %0.2f bits/s/Hz', dlStats(3, 1), dlStats(4, 1));
Peak DL spectral efficiency: 6.22 bits/s/Hz. Achieved average DL spectral efficiency: 1.17 bits/s/Hz
disp(['Block error rate for each UE in the uplink direction: [' num2str(round(logInfo.AvgBLERLogs(:, 2)', 2)) ']']);
Block error rate for each UE in the uplink direction: [0.01        0.04        0.06           0]
disp(['Block error rate for each UE in the downlink direction: [' num2str(round(logInfo.AvgBLERLogs(:, 1)', 2)) ']']);
Block error rate for each UE in the downlink direction: [0.01           0        0.01        0.01]

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

% Read the logs and save them in MAT-files
if(simParameters.DuplexMode == 0) % FDD
    [logInfo.DLTimeStepLogs, logInfo.ULTimeStepLogs] = getSchedulingLogs(simSchedulingLogger);
else % TDD
    logInfo.TimeStepLogs = getSchedulingLogs(simSchedulingLogger);
end
logInfo.SchedulingAssignmentLogs = getGrantLogs(simSchedulingLogger); % Scheduling assignments log
simulationLogs{1} = logInfo;
save(simParameters.ParametersLogFile, 'simParameters'); % Save simulation parameters in a MAT-file
save(simParameters.SimulationLogFile, 'simulationLogs'); % Save simulation logs in a MAT-file

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

Этот пример можно использовать для дальнейшего изучения этих параметров.

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

Существующую стратегию планирования можно изменить для реализации пользовательской стратегии. См. раздел «Дальнейшее изучение» в примере оценки эффективности планирования NR FDD, чтобы увидеть соответствующие шаги.

Использование сквозного физического уровня

Для моделирования, ориентированного на MAC, можно использовать слой PHY, устанавливая объект PHY на узлах. Для gNB создайте объект типа hNRGNBPassthroughPhy, а для UE создайте объект типа hNRUEPassthRoughthPhy. Для получения более подробной информации см. раздел «Настройка gNB и UE» в примере оценки эффективности планирования NR FDD.

На основе описанных параметров моделирования в примере оценивается производительность системы, измеренная с помощью различных метрик. Различные визуализации показывают производительность системы во время выполнения. Более тщательный анализ после моделирования с использованием сохраненных журналов позволяет получить подробную картину операций по каждому слоту.

Использовать RLC AM

Можно также переключить режим работы объекта RLC из режима единой системы обмена сообщениями в режим подтверждения (AM) путем изменения полей структуры ввода. EntityType и SeqNumFieldLength в configureLogicalChannel функция hNRNode.m. Для получения более подробной информации см. раздел «Дальнейшее исследование» в NR FDD Scheduling Performance Evaluation.

Приложение

В примере используются следующие вспомогательные функции и классы:

  • HStartNode.m: базовый класс беспроводного узла

  • hNRNode.m: базовый класс узла NR как для gNB, так и для UE

  • hNRGNB.m: функциональность узла gNB

  • hNRUE.m: функциональные возможности узла UE

  • helperApplication.m: Функциональные возможности прикладного уровня

  • hNRRLEntity.m: Базовый класс для объектов RLC UM и AM

  • hNRUMEntity.m: Функциональные возможности RLC UM

  • hNRAMEntity.m: функциональные возможности RLC AM

  • hNRRLCDataPDUInfo.m: Создание информационного объекта PDU RLC

  • hNRRLCBufferStatus.m: Создает объект информации о состоянии буфера RLC

  • hNRRLCDataRecembly.m: Создание информационного объекта RLC SDU для повторной сборки

  • hNRMAC.m: функциональность базового класса NR MAC

  • hNRGNBMAC.m: функциональность MAC gNB

  • hNRUEMAC.m: Функциональность MAC UE

  • hNRscheduler.m: Основные функции планировщика MAC

  • hNRschedulerBestCQI.m: Реализует лучшую стратегию планирования CQI

  • hNRschedulerHair.m: Реализует стратегию пропорционального справедливого планирования

  • hNRRschedulerRoundRobin.m: Реализует стратегию циклического планирования

  • hNRMACBSR.m: Создание отчета о состоянии буфера

  • hNRMACBSRParser.m: Анализ отчета о состоянии буфера

  • hNRMACSubPDU.m: Создание подPDU MAC

  • hNRMACPaddingSubPDU.m: Создание подPDU MAC с дополнением

  • hNRMACMultiplex.m: генерирует PDU MAC

  • hNRMACPDUParser.m: Синтаксический анализ MAC PDU

  • hNewHARQPprocesses.m: Создание нового процесса HARQ

  • hStartHARQProcess.m: Обновление процесса HARQ

  • hNRPhyInterface.m: Функциональность базового класса NR PHY

  • hNRGNBPhy.m: Функциональность PHY gNB

  • hNRUEPhy.m: Функциональность PHY UE

  • hNRGNBPassthroughPhy.m: gNB сквозной слой PHY

  • hNRUEPassthroughPhy.m: UE через слой PHY

  • hNRPUSCHInfo.m: Информационная структура PUSCH, передаваемая MAC на уровень PHY

  • hNRPDSCHInfo.m: информационная структура PDSCH передается MAC на уровень PHY

  • hNRRxInfo.m: Информационная структура, передаваемая PHY-уровнем MAC вместе с MAC PDU

  • hNRUplinkGrantFormat.m: формат предоставления UL

  • HNRDownlinkGrantFormat.m: формат гранта DL

  • hNRPacketDistribution.m: Создание объекта распространения пакетов

  • hNRPhyRxBuffer.m: Создает объект буфера приема PHY-сигнала

  • hSkipWeakTimingOffset.m: Пропускать оценки смещения времени со слабой корреляцией

  • hNRRLCLogger.m: Реализует функции регистрации и визуализации статистики RLC

  • hNRRschedulingLogger.m: Реализует функции регистрации и визуализации информации планирования

  • hNRPhyLogger.m: Реализует функции регистрации и визуализации частоты ошибок блоков восходящего и нисходящего каналов

  • hNRC ellPerformureWivePhysicalLeyValidateConfig.m: Проверяет конфигурацию моделирования

  • hNRSetUpPacketDistribution.m: Настройка функциональности распределения пакетов

  • hNRPacketWriter.m: Захватывает пакеты MAC

  • hNRPacketInfo.m: формат метаданных для захвата MAC-пакетов

  • hNRMetricalVisualizer.m: Реализует функции визуализации метрик

  • NRPostSimVisualization.m: Сценарий визуализации после моделирования

Ссылки

[1] 3GPP TS 38.104. "НР; радиопередача и прием базовой станции (BS). "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

[2] 3GPP TS 38.214. "НР; Процедуры физического уровня для данных. "Проект партнерства третьего поколения; Техническая спецификация на сеть радиодоступа группы.

[3] 3GPP TS 38.321. "НР; Спецификация протокола управления доступом к среде (MAC). "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

[4] 3GPP TS 38.322. "НР; Спецификация протокола управления радиоканалом (RLC). "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

[5] 3GPP TS 38.323. "НР; Спецификация протокола конвергенции пакетных данных (PDCP). "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

[6] 3GPP TS 38.331. "НР; Спецификация протокола управления радиоресурсами (RRC). "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

[7] 3GPP TR 37.910. «Исследование по самооценке в направлении представления IMT-2020» Проект партнерства третьего поколения; Техническая спецификация на сеть радиодоступа группы.

Связанные темы