Этот пример демонстрирует интеграцию высокого качества 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), передаются вне полосы частот, то есть без необходимости ресурсов для передачи и гарантированного безошибочного приема.
Узел (gNB или UE) представляет собой композицию слоев стека NR. Вспомогательные классы hNRGNB.m и hNRUE.m создают узлы gNB и UE соответственно, содержащие уровни RLC, MAC и PHY.

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




Показаны пять типов визуализации во время выполнения:
Отображение значений 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) путем изменения полей структуры ввода. 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» Проект партнерства третьего поколения; Техническая спецификация на сеть радиодоступа группы.