Этот пример демонстрирует интегрирование высокой точности 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), приняты за пределы полосы, то есть без потребности в ресурсах для передачи и гарантированного безошибочного приема.
Узел (gNB или UE) является композицией слоев NR стека. Классы helper hNRGNB.m и hNRUE.m создают узлы gNB и UE соответственно, содержащие слои RLC, MAC и PHY.
RLC работает в неподчиненном режиме (UM) с одним логическим каналом (LCH). Для слоя RLC и hNRGNB.m, и hNRUE.m используют hNRUMEntity.m, чтобы реализовать функциональность передатчика RLC и приемника.
Для 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, который содержит функциональность планирования ядра.
Пример использует 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. Для получения дополнительной информации см. 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. 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, инициализируйте информацию о качестве канала для 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
Показаны пять типов визуализации во время выполнения:
Отображение значений 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) путем изменения полей входной структуры EntityType
и SeqNumFieldLength
в configureLogicalChannel
функция hNRNode.m. Для получения дополнительной информации смотрите раздел «Дальнейшее исследование» в NR FDD Scheduling Performance Evaluation.
В примере используются эти вспомогательные функции и классы:
hWirelessNode.m: Базовый класс беспроводного узла
hNRNode.m: базовый класс узла NR как для gNB, так и для UE
hNRGNB.m: функциональность узла gNB
hNRUE.m: функциональность узла UE
helperApplication.m: функциональность слоя
hNRRLCEntity.m: Базовый класс для сущностей RLC UM и AM
hNRUMEntity.m: функциональность RLC UM
hNRAMEntity.m: функциональность RLC AM
hNRRLCDataPDUInfo.m: Создает информационный объект PDU RLC
hNRRLCBufferStatus.m: Генерирует объект информации о состоянии буфера RLC
hNRRLCDataReassembly.m: создайте информационный объект повторной сборки RLC SDU
hNRMAC.m: функциональность базового класса NR MAC
hNRGNBMAC.m: функциональность gNB MAC
hNRUEMAC.m: функциональность UE MAC
hNRScheduler.m: функциональность планировщика Core MAC
hNRSchedulerBestCQI.m: Реализует лучшую стратегию планирования CQI
hNRSchedulerProportionalFair.m: Реализует пропорциональную стратегию справедливого планирования
hNRSchedulerRoundRobin.m: Реализует стратегию кругового планирования
hNRMACBSR.m: Генерирует отчет о состоянии буфера
hNRMACBSRParser.m: Анализ отчета о состоянии буфера
hNRMACSubPDU.m: генерирует MAC subPDU
hNRMACPaddiningSubPDU.m: генерирует MAC subPDU с заполнением
hNRMACMultiplex.m: генерирует MAC PDU
hNRMACPDUParser.m: Анализирует MAC PDU
hNewHARQProcesses.m: Создает новый процесс HARQ
hUpdateHARQProcess.m: обновляет процесс HARQ
hNRPhyInterface.m: функциональность базового класса NR PHY
hNRGNBPhy.m: функциональность gNB PHY
hNRUEPhy.m: Функциональность UE PHY
hNRGNBPassthroughPhy.m: gNB прохождение PHY слоя
hNRUEPassthroughPhy.m: прохождение по UE слою
hNRPUSCHInfo.m: информационная структура PUSCH передана MAC на слой PHY
hNRPDSCHInfo.m: информационная структура PDSCH передана MAC на слой PHY
hNRRxIndicationInfo.m: Информационная структура передана слоем PHY на MAC вместе с MAC PDU
hNRUplinkGrantFormat.m: Формат гранта UL
hNRDownlinkGrantFormat.m: Формат гранта DL
hNRPacketDistribution.m: Создает объект распределения пакетов
hNRPhyRxBuffer.m: Создает объект приема сигнала PHY
hSkipWeakTimingOffset.m: Пропустить оценки смещения времени со слабой корреляцией
hNRRLCLogger.m: Реализует функции логгирования и визуализации статистики RLC
hNRSchedulingLogger.m: Реализует функции логгирования и визуализации информации о планировании
hNRPhyLogger.m: Реализует функции логгирования ошибок восходящего и нисходящего блоков и визуализации
hNRCellPerformanceWithPhysicalLayerValidateConfig.m: Проверка строения симуляции
hNRSetUpPacketDistribution.m: Настройка функциональности распределения пакетов
hNRPacketWriter.m: Захватывает пакеты MAC
hNRPacketInfo.m: Формат метаданных для захвата MAC-пакетов
hNRMetricsVisualizer.m: Реализует функциональность визуализации метрик
NRPostSimVisualization.m: Визуализация после симуляции скрипта
[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 представлению». Третья Генерация проект партнерства; Группа технических спецификаций Радиосеть доступ.