Оценка эффективности камер NR с интегрированием на физическом слое

Этот пример демонстрирует интегрирование высокой точности 5G Toolbox™ физическим уровнем в 5G узел New Radio (NR). Пример моделирует 5G камеру NR, состоящую из набора пользовательского оборудования (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 стека. Классы helper 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 использует helper class hNRGNBMAC.m для реализации функциональности gNB MAC и hNRUE.m использует hNRUEMAC.m для реализации функциональности UE MAC. gNB MAC имеет UL и DL планировщики, которые присваивают UL и DL ресурсы, соответственно, UE. Для получения дополнительной информации о планировании UL и DL для назначения ресурсов PUSCH и PDSCH см. пример оценки эффективности планирования FDD NR. Планировщики осуществлены в hNRSchedulerRoundRobin.m (Коллективная стратегия), hNRSchedulerProportionalFair.m (Пропорциональная справедливая стратегия), и hNRSchedulerBestCQI.m (Лучшая стратегия CQI) классы помощника. Все эти планировщики наследуются от базового класса hNRScheduler.m, который содержит функциональность планирования ядра.

PHY- Слоя и канальное Моделирование

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

Пример использует интерполяционную таблицу, чтобы сопоставить принятый сигнал с отношением интерференции и шума (SINR) к индексу CQI для 0,1 блоки блочной ошибки (BLER). Интерполяционная таблица соответствует таблице CQI согласно 3GPP TS 38.214 таблица 5.2.2.1-3. Для получения дополнительной информации о процессе генерации этой интерполяционной таблицы см. 5G NR Nownlink CSI Reporting примера.

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

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

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

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

  • dlControlRequest: Запрос от MAC к PHY для передачи или приема без неданных по нисходящей линии связи. Для gNB этот запрос отправляется GNB MAC для передач DL. Для UE он отправляется UE MAC для приемов DL. MAC отправляет запрос в начале паза DL для всех запланированных передач или приемов DL в пазе. Этот интерфейс используется для всех передач и приемов DL, кроме PDSCH. txDataRequest и rxDataRequest используются для PDSCH. В этом примере gNB MAC использует этот интерфейс для отправки CSI-RS, а UE MAC использует его для получения 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, NR FDD и NR TDD Symbol Scheduling Эффективности Evaluation. Пройденный слой не делает никакой обработки пакетов физического слоя.

Сценарные Строения

Установите параметры для симуляции.

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 Setup

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

  • Layer-specific логгирование и визуализация

  • Продвигайте таймер для узлов. Каждые 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: Для получения дополнительной информации смотрите описание 'Uplink Scheduler Эффективности Metrics' рисунка в примере NR FDD Scheduling Эффективности Evaluation.

  • Отображение графиков метрик планирования DL: Для получения дополнительной информации смотрите описание фигуры 'Nowlink Scheduler Performance Metrics' в примере оценки эффективности планирования NR FDD.

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

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

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

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

Журналы назначения расписания: Информация обо всех назначениях расписания и связанной информации регистрируется в этом файле. Для получения дополнительной информации о формате журнала смотрите раздел 'Simulation Logs' в примере оценки эффективности планирования NR FDD.

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

Каждая строка журнала представляет один паз. Столбец содержит информационный вектор длины, равной количеству 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-сфокусированных симуляций можно использовать слой passthrough PHY путем установки объекта слоя PHY passthrough на узлы. Для g NB создайте объект типа h NRGNBP assthrough Phy, а для UE создайте объект типа h NRUEP assthrough Phy. Для получения дополнительной информации смотрите раздел «gNB и UE настройки» в примере планирования Эффективности оценки NR FDD.

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

Использование RLC AM

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

Приложение

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

Ссылки

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

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

[3] 3GPP TS 38.321. "NR; Спецификация протокола управления средним доступом (MAC). "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

[4] 3GPP TS 38.322. "NR; Спецификация протокола Radio Ссылки Control (RLC). "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

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

[6] 3GPP TS 38.331. "NR; Спецификация протокола управления радиоресурсами (RRC). "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

[7] 3GPP TR 37,910. «Исследование по самооценке к IMT-2020 представлению». Третья Генерация проект партнерства; Группа технических спецификаций Радиосеть доступ.

Похожие темы