В этом примере моделируется 19-сотовый кластер с тороидальным окружением, как описано в ITU-R M.2101-0. Окружение обеспечивает равномерное пересечение на границе кластера. Все соты в кластере работают в одной полосе частот с обслуживающим gNB в центре соты. Можно включить или отключить наложение, чтобы убедиться, что при наложении метрика производительности граничной ячейки становится похожей на центральную ячейку.
В примере рассматриваются эти операции в пределах gNB и пользовательского оборудования (UE).

Примеры моделей:
Межканальные помехи совместного канала с моделированием огибания для удаления краевых эффектов
Опорный сигнал демодуляции PUSCH (DM-RS) и PDSCH DM-RS
Измерение качества канала DL посредством UE на основе CSI-RS, принятого от gNB.
Конфигурация с одним входом и одним выходом (SISO) со всенаправленными антеннами.
Потери в тракте свободного пространства (FSPL) и аддитивный белый гауссов шум (AWGN).
Пример предполагает, что управляющие пакеты, такие как назначение UL, назначение DL, отчет о состоянии буфера (BSR), обратная связь PDSCH и отчет индикатора качества канала (CQI), посылаются вне полосы частот, то есть без необходимости ресурсов для передачи и гарантированного безошибочного приема.
Чтобы смоделировать поведение сотовой сети без введения краевых эффектов, в этом примере моделируется бесконечная сотовая сеть с использованием тороидального обтекания. На этом рисунке показана сетевая область 19 ячеек. В отсутствие обтекания ячейка 0 центрального кластера, показанная красным цветом, равномерно окружена и испытывает помехи со всех сторон. Краевая клетка, подобная клетке-15, испытывает сравнительно меньшую интерференцию. Окружение повторяет исходный кластер шесть раз, чтобы равномерно окружить центральный кластер.
Вся сетевая область, релевантная для моделирования, состоит из 19 ячеек (выделены жирным шрифтом).

В модели огибания сигнал или помехи от любого UE к соте обрабатываются так, как если бы это UE находилось в исходном кластере сот и gNB в любом из семи кластеров, как определено в ITU-R M.2101-0. Расстояния, используемые для вычисления потерь в тракте от узла передатчика в ) до узла приемника в y), являются минимальными из этих семи расстояний.
Расстояние между ) и b)
Расстояние между ) и b-4D), D - расстояние между двумя соседними gNB (расстояние между площадками)
Расстояние между ) и + 4D)
Расстояние между ) и 72D)
Расстояние между ) и b-72D)
Расстояние между ) и )
Расстояние между ) и )
Для вычисления измененных расстояний между узлами из-за обтекания функция использует класс hNRNodeDityCalculator helper. Если отключить наложение, то расстояние между узлами будет нормальным евклидовым расстоянием.
Узел (gNB или UE) состоит из приложений, генерирующих трафик, уровня управления радиолинией (RLC), уровня управления доступом к среде (MAC) и физического уровня (PHY). Вспомогательные классы hNRGNB и hNRUE создают узлы gNB и UE соответственно, содержащие уровни RLC, MAC и PHY. Дополнительные сведения о каждом уровне см. в разделе «Стек протоколов NR» в примере оценки производительности ячеек NR с интеграцией физического уровня.
Конфигурирование параметров моделирования в simParameters структура.
rng('default'); % Reset the random number generator simParameters = []; % Clear the simParameters variable simParameters.NumFramesSim = 5; % Simulation time, in number of 10 ms frames simParameters.EnableWrapAround = true; % Enable wrap-around modeling simParameters.SchedulingType = 0; % Slot-based scheduling
Укажите количество UE в каждой ячейке, предполагая, что UE имеют последовательные временные идентификаторы радиосети (RNTI) из 1 кому simParameters.NumUEsCell. При изменении количества UE необходимо убедиться, что эти параметры моделирования представляют собой массивы длиной, равной значению simParameters.NumUEsCell: simParameters.UEDistance, ulPacketPeriodicity, ulPacketSizes, dlPacketPeriodicity, dlPacketSizes.
simParameters.NumUEsCell = 2; % Number of UEs in each cell simParameters.UEDistance = [150; 250]; % Distance of UE from gNB in meters simParameters.InterSiteDistance = 1732; % Distance between adjacent gNBs in meters
Установите полосу пропускания канала равной 5 МГц, а интервал между поднесущими (SCS) - 15 кГц, как определено в разделе 5,3,2 3GPP TS 38,104.
simParameters.NumRBs = 25; simParameters.SCS = 15; % kHz simParameters.DLCarrierFreq = 2.635e9; % Hz simParameters.ULCarrierFreq = 2.515e9; % Hz
Предположим, что несущие UL и DL имеют одинаковую полосу пропускания канала и определяют мощность передачи и коэффициент усиления антенны.
simParameters.DLBandwidth = 5e6; % Hz simParameters.ULBandwidth = 5e6; % Hz simParameters.UETxPower = 23; % Tx power for all the UEs in dBm simParameters.GNBTxPower = 32; % Tx power for gNBs in dBm simParameters.GNBRxGain = 8; % Receiver antenna gain at gNB in dBi
Задайте отношение сигнал-помеха-плюс-шум (SINR) к таблице отображения CQI для частоты блочных ошибок (BLER) 0,1.
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];Укажите стратегию планирования и максимальный предел для RB, выделенных для PUSCH и PDSCH. Предел передачи применяется только к новым назначениям PUSCH и PDSCH, а не к повторным передачам.
simParameters.SchedulerStrategy = 'PF'; % Supported scheduling strategies: 'PF', 'RR', and 'BestCQI' simParameters.RBAllocationLimitUL = 20; % For PUSCH simParameters.RBAllocationLimitDL = 20; % For PDSCH
Укажите идентификатор интересующей ячейки в виде целого числа от 1 до 18 включительно. В примере показаны визуализации и метрики для этой ячейки и центральной ячейки, cell-0.
simParameters.CellOfInterest = 15; % Set a value from 1 to 18. Set the value to 0 to visualize cell-0 only. validateattributes(simParameters.CellOfInterest, {'numeric'}, {'integer', 'scalar', '>=', 0, '<=', 18}, 'simParameters.CellOfInterest', 'CellOfInterest')
CQIVisualization и RBVisualization параметры управляют отображением визуализации CQI RB и визуализации назначения RB. Чтобы включить график визуализации RB, установите RBVisualization поле в true.
simParameters.CQIVisualization = true; simParameters.RBVisualization = false;
Периодическое обновление графиков выходных метрик с указанием NumMetricsSteps обновления в моделировании.
simParameters.NumMetricsSteps = 10;
Запишите журналы в MAT-файлы. В примере эти журналы используются для анализа и визуализации после моделирования.
simParameters.ParametersLogFile = 'simParameters'; % For logging the simulation parameters simParameters.SimulationLogFile = 'simulationLogs'; % For logging the simulation logs
Установка периодической схемы трафика приложения UL и DL для UE.
ulPacketPeriodicity = [10; 10]; % Periodicity, in ms, at which the UEs generate UL packets ulPacketSize = [2e4; 2e4]; % Size of generated UL packets, in bytes dlPacketPeriodicity = [10; 10]; % Periodicity, in ms, at which gNB generates DL packets dlPacketSize = [2e4; 2e4]; % Size of generated DL packets, in bytes
Вычислите производные параметры на основе основных параметров конфигурации, указанных в предыдущем разделе, и задайте некоторые специфические для примера константы.
simParameters.DuplexMode = 0; % Frequency-division duplexing (FDD) simParameters.NumClusters = 1; simParameters.NumSitesPerCluster = 19; % Number of gNBs per cluster
Установите позиции UE и gNB.
simParameters.GNBPositions = hMacrocellTopology(simParameters); simParameters.UEPositions = cell(simParameters.NumSitesPerCluster, 1); for idx = 1:simParameters.NumSitesPerCluster theta = rand(simParameters.NumUEsCell, 1)*(2*pi); % Set the UE position with respect to the gNB location simParameters.UEPositions{idx} = simParameters.GNBPositions(idx, :) + simParameters.UEDistance.*[cos(theta) sin(theta) zeros(simParameters.NumUEsCell, 1)]; end simParameters.NCellIDList = 0:simParameters.NumSitesPerCluster-1; % List of physical cell IDs
Укажите конфигурацию ресурса CSI-RS, предполагая, что все UE измеряют качество канала на одном ресурсе CSI-RS.
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
Вычислите длительность слота для выбранной SCS и количество слотов в кадре 10 мс.
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
Установите интервал, с которым в примере обновляется визуализация метрик, количество слотов. Поскольку в этом примере используется гранулярность по времени для одного слота, MetricsStepSize поле должно быть целым числом.
simParameters.MetricsStepSize = ceil(numSlotsSim / simParameters.NumMetricsSteps); if mod(numSlotsSim, simParameters.NumMetricsSteps) ~= 0 % Update the NumMetricsSteps parameter if it does not exactly divide NumSlotsSim simParameters.NumMetricsSteps = floor(numSlotsSim / simParameters.MetricsStepSize); end
Укажите один логический канал в каждом UE и задайте конфигурацию логического канала для всех узлов (UE и gNB) в примере.
numLogicalChannels = 1;
simParameters.LCHConfig.LCID = 4; % Logical channel ID (logical channel ID of data radio bearers starts from 4)Укажите направление объекта RLC как 0 для указания только DL, 1 для указания только UL, или 2 для указания как UL, так и DL.
simParameters.RLCConfig.EntityDir = 2;
Создание структуры конфигурации канала RLC.
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;
Установите максимальную длину блока данных службы RLC (SDU) в байтах, как указано в 3GPP TS 38,323, и общее количество узлов в моделировании.
simParameters.maxRLCSDULength = 9000; simParameters.MaxReceivers = simParameters.NumSitesPerCluster*(simParameters.NumUEsCell + 1); if ~isfield(simParameters, 'SchedulingType') || simParameters.SchedulingType == 0 % No scheduling type or slot-based scheduling 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
Установите топологию 19 ячеек с каждой ячейкой, состоящей из одного gNB и одного UE. Для каждой соты создайте объекты gNB и UE, инициализируйте информацию о качестве канала для UE и настройте логический канал в gNB и UE. Вспомогательные классы hNRGNB и hNRUE создают узлы gNB и UE соответственно, содержащие уровни RLC, MAC и PHY.
gNB = cell(simParameters.NumSitesPerCluster, 1); UEs = cell(simParameters.NumSitesPerCluster, simParameters.NumUEsCell);
Создайте объекты распределения пакетов DL и UL и инициализируйте объект калькулятора расстояния обхода.
dlPacketDistributionObj = hNRPacketDistribution(simParameters, 0); % 0 for DL ulPacketDistributionObj = hNRPacketDistribution(simParameters, 1); % 1 for UL distCalc = hNRNodeDistanceCalculator(simParameters); for siteIdx = 1:simParameters.NumSitesPerCluster simParameters.NCellID = simParameters.NCellIDList(siteIdx); % Cell ID simParameters.Position = simParameters.GNBPositions(siteIdx, :); simParameters.NumUEs = simParameters.NumUEsCell; % Number of UEs in a cell % 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 % Create gNB gNB{siteIdx} = hNRGNB(simParameters); addScheduler(gNB{siteIdx}, scheduler); % Add scheduler to gNB gNB{siteIdx}.PhyEntity = hNRGNBPhy(simParameters); % Create PHY layer instance configurePhy(gNB{siteIdx}, simParameters); % Configure PHY layer % Register distance calculator for wrap-around distance computations gNB{siteIdx}.DistanceCalculatorFcn = @distCalc.getDistance; setPhyInterface(gNB{siteIdx}); % Set up the interface to PHY layer for ueIdx = 1:simParameters.NumUEsCell simParameters.Position = simParameters.UEPositions{siteIdx}(ueIdx, :); % Position of UE in (x,y,z) coordinates UEs{siteIdx, ueIdx} = hNRUE(simParameters, ueIdx); UEs{siteIdx, ueIdx}.PhyEntity = hNRUEPhy(simParameters, ueIdx); % Create PHY layer instance configurePhy(UEs{siteIdx, ueIdx}, simParameters); % Configure PHY layer % Register distance calculator for wrap-around distance computations UEs{siteIdx, ueIdx}.DistanceCalculatorFcn = @distCalc.getDistance; setPhyInterface(UEs{siteIdx, ueIdx}); % Set up the interface to PHY % Set up logical channel at gNB for the UE configureLogicalChannel(gNB{siteIdx}, ueIdx, rlcChannelConfigStruct); % Set up logical channel at UE configureLogicalChannel(UEs{siteIdx, ueIdx}, ueIdx, rlcChannelConfigStruct); % Add data traffic pattern generators to gNB and UE nodes % Calculate the data rate (in kbps) of On-Off traffic pattern using % packet size (in bytes) and packet interval (in ms) ulDataRate = ceil(1000/ulPacketPeriodicity(ueIdx)) * ulPacketSize(ueIdx) * 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(ueIdx) > simParameters.maxRLCSDULength ulPacketSize(ueIdx) = 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(ueIdx), 'GeneratePacket', true, ... 'OnTime', simParameters.NumFramesSim/100, 'OffTime', 0, 'DataRate', ulDataRate); UEs{siteIdx, ueIdx}.addApplication(ueIdx, simParameters.LCHConfig.LCID, ulApp); dlDataRate = ceil(1000/dlPacketPeriodicity(ueIdx)) * dlPacketSize(ueIdx) * 8e-3; if dlPacketSize(ueIdx) > simParameters.maxRLCSDULength dlPacketSize(ueIdx) = 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(ueIdx), 'GeneratePacket', true, ... 'OnTime', simParameters.NumFramesSim/100, 'OffTime', 0, 'DataRate', dlDataRate); gNB{siteIdx}.addApplication(ueIdx, simParameters.LCHConfig.LCID, dlApp); end % Setup the UL and DL packet distribution mechanism hNRSetUpPacketDistribution(simParameters, gNB{siteIdx}, UEs(siteIdx, :), dlPacketDistributionObj, ulPacketDistributionObj); end
Настройте ведение журнала и визуализацию, указав центральную ячейку (ячейку 0) и интересующую ячейку.
cellsOfInterest = unique([0; simParameters.CellOfInterest]);
numCellsOfInterest = length(cellsOfInterest); % Number of cells that the example logs and visualizesВизуализация топологии сети
hTopologyVisualizer(simParameters);

Регистрировать и визуализировать метрики PHY и MAC в массивах ячеек.
simSchedulingLogger = cell(numCellsOfInterest, 1); % Cell array for PHY metrics logging and visualization simPhyLogger = cell(numCellsOfInterest, 1); visualizer = cell(numCellsOfInterest, 1); for siteIdx = 1:numCellsOfInterest simParameters.NCellID = cellsOfInterest(siteIdx); simParameters.CellOfInterest = simParameters.NCellID; % Create an object for MAC scheduling information visualization and logging simSchedulingLogger{siteIdx} = hNRSchedulingLogger(simParameters); % Create an object for PHY layer metrics logging simPhyLogger{siteIdx} = hNRPhyLogger(simParameters); % Create visualization object for MAC and PHY metrics visualizer{siteIdx} = hNRMetricsVisualizer(simParameters, 'MACLogger', simSchedulingLogger{siteIdx}, 'PhyLogger', simPhyLogger{siteIdx}); end
Моделирование выполняется по слоту. Для каждой соты в каждом слоте выполняются следующие операции:
Запуск уровней MAC и PHY gNB
Запуск уровней MAC и PHY UE
Регистрировать и визуализировать метрики для каждого уровня
Передайте таймер для узлов и отправляйте триггер на уровни приложений и RLC каждые миллисекунды. Прикладной уровень и уровень RLC выполняют запланированные операции на основе триггера таймера 1 мс.
slotNum = 0; numSymbolsSim = numSlotsSim * 14; % Simulation time in units of symbol duration % Run processing loop for symbolNum = 1 : tickGranularity : numSymbolsSim if mod(symbolNum - 1, 14) == 0 slotNum = slotNum + 1; end % Because all the cells operate on the same SCS, slot durations do not vary for siteIdx = 1:simParameters.NumSitesPerCluster % For each site run(gNB{siteIdx}); % Run MAC and PHY layers of UEs for ueIdx = 1:simParameters.NumUEsCell run(UEs{siteIdx, ueIdx}); end cellIdx = find((siteIdx-1) == cellsOfInterest, 1); if ~isempty(cellIdx) % MAC logging logCellSchedulingStats(simSchedulingLogger{cellIdx}, symbolNum, gNB{siteIdx}, UEs(siteIdx, :)); % PHY logging logCellPhyStats(simPhyLogger{cellIdx}, symbolNum, gNB{siteIdx}, UEs(siteIdx, :)); end end for siteIdx = 1:simParameters.NumSitesPerCluster % Advance timer ticks for gNB and UEs by the number of symbols per slot advanceTimer(gNB{siteIdx}, tickGranularity); for ueIdx = 1:simParameters.NumUEsCell advanceTimer(UEs{siteIdx, ueIdx}, tickGranularity); end end for idx = 1:numCellsOfInterest % 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{idx}); end end % CQI grid visualization (if enabled) if simParameters.CQIVisualization if mod(slotNum, numSlotsFrame) == 0 % Plot at frame boundary plotCQIRBGrids(simSchedulingLogger{idx}); 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{idx}, slotNum); end end end end








for idx = 1:numCellsOfInterest [dlStats, ulStats] = getPerformanceIndicators(simSchedulingLogger{idx}); [logInfo.BLERLogs, logInfo.AvgBLERLogs] = getBLERLogs(simPhyLogger{idx}); % Block Error rate logs fprintf('\n\nMetrics for cell %d :\n\n', cellsOfInterest(idx)); fprintf('Peak UL throughput: %0.2f Mbps. Achieved average UL Throughput: %0.2f Mbps', ulStats(1, 1), ulStats(2, 1)); fprintf('\nPeak DL throughput: %0.2f Mbps. Achieved average DL Throughput: %0.2f Mbps', dlStats(1, 1), dlStats(2, 1)); fprintf('\nAchieved average UL Goodput: %0.2f Mbps. Achieved average DL Goodput: %0.2f Mbps', ulStats(5, 1), dlStats(5, 1)); 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)); 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)); disp(['Block error rate for each UE in the uplink direction: [' num2str(round(logInfo.AvgBLERLogs(:, 2)', 2)) ']']); disp(['Block error rate for each UE in the downlink direction: [' num2str(round(logInfo.AvgBLERLogs(:, 1)', 2)) ']']); end
Metrics for cell 0 :
Peak UL throughput: 31.11 Mbps. Achieved average UL Throughput: 2.48 Mbps
Peak DL throughput: 31.11 Mbps. Achieved average DL Throughput: 3.19 Mbps
Achieved average UL Goodput: 2.48 Mbps. Achieved average DL Goodput: 3.10 Mbps
Peak UL spectral efficiency: 6.22 bits/s/Hz. Achieved average UL spectral efficiency: 0.50 bits/s/Hz
Peak DL spectral efficiency: 6.22 bits/s/Hz. Achieved average DL spectral efficiency: 0.64 bits/s/Hz
Block error rate for each UE in the uplink direction: [0 0]
Block error rate for each UE in the downlink direction: [0.04 0.04]
Metrics for cell 15 :
Peak UL throughput: 31.11 Mbps. Achieved average UL Throughput: 2.69 Mbps
Peak DL throughput: 31.11 Mbps. Achieved average DL Throughput: 3.33 Mbps
Achieved average UL Goodput: 2.68 Mbps. Achieved average DL Goodput: 3.24 Mbps
Peak UL spectral efficiency: 6.22 bits/s/Hz. Achieved average UL spectral efficiency: 0.54 bits/s/Hz
Peak DL spectral efficiency: 6.22 bits/s/Hz. Achieved average DL spectral efficiency: 0.67 bits/s/Hz
Block error rate for each UE in the uplink direction: [0 0.05]
Block error rate for each UE in the downlink direction: [0.04 0.06]
Для центральной ячейки (ячейки 0) и интересующей ячейки визуализация времени выполнения показывает:
Отображение значений CQI: Для получения подробной информации см. описание рисунка «Визуализация качества канала» в примере планирования NR PUSCH FDD.
Отображение назначения сети ресурсов для UE: 2D Временная частотная сетка показывает распределение ресурсов для UE. Эту визуализацию можно включить в разделе Конфигурация регистрации и визуализации. Для получения дополнительной информации см. описание рисунка «Распределение матрицы ресурсов» в примере планирования NR PUSCH FDD.
Отображение графиков метрик планирования DL и UL: Для получения подробной информации см. описание рисунка «Показатели производительности планировщика нисходящей линии связи» в примере оценки эффективности планирования NR FDD.
Отображение частоты ошибок блоков DL и UL: Для получения подробной информации см. описание рисунка «Частота ошибок блоков (BLER)» в примере «Оценка производительности ячеек NR с интеграцией физического уровня».
Результаты моделирования показывают, что центральная ячейка и граничная ячейка имеют аналогичные показатели производительности с наложением. Ниже приведены результаты моделирования без обхода. Можно наблюдать значительную разницу в производительности между центральной и краевой ячейками.

Параметры, используемые для моделирования, и журналы моделирования сохраняются в MAT-файлах для анализа и визуализации после моделирования. Параметры моделирования сохраняются в MAT-файле с именем файла в качестве значения параметра конфигурации. simParameters.ParametersLogFile. Для получения дополнительной информации см. пример NR Intercell Interference Modeling.
% Get the logs if(simParameters.DuplexMode == 0) % FDD logInfo = struct('NCellID', [], 'DLTimeStepLogs', [], 'ULTimeStepLogs', [], 'SchedulingAssignmentLogs', [], 'BLERLogs', [], 'AvgBLERLogs', []); else logInfo = struct('TimeStepLogs', [], 'SchedulingAssignmentLogs', [], 'BLERLogs', [], 'AvgBLERLogs', []); end simulationLogs = cell(simParameters.NumSitesPerCluster, 1); for siteIdx = 1:numCellsOfInterest logInfo.NCellID = cellsOfInterest(siteIdx); if(simParameters.DuplexMode == 0) % FDD [logInfo.DLTimeStepLogs, logInfo.ULTimeStepLogs] = getSchedulingLogs(simSchedulingLogger{siteIdx}); else % TDD logInfo.TimeStepLogs = getSchedulingLogs(simSchedulingLogger{siteIdx}); end logInfo.SchedulingAssignmentLogs = getGrantLogs(simSchedulingLogger{siteIdx}); % Scheduling assignments log [logInfo.BLERLogs, logInfo.AvgBLERLogs] = getBLERLogs(simPhyLogger{siteIdx}); % Block error rate logs simulationLogs{siteIdx, 1} = logInfo; end save(simParameters.ParametersLogFile, 'simParameters'); % Save simulation parameters in a MAT-file save(simParameters.SimulationLogFile, 'simulationLogs'); % Save simulation logs in a MAT-file
[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» Проект партнерства третьего поколения; Техническая спецификация на сеть радиодоступа группы.