Этот пример моделирует кластер с 19 ячейками с тороидальным обертыванием, как описано в M.2101-0 ITU-R. Обтекание обеспечивает равномерную интерференцию на краю кластера. Все камеры в кластере работают в одной полосе частот с обслуживающим 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 в любом из семи кластеров, как указано в M.2101-0 ITU-R. Расстояния, используемые для вычисления потерь пути от узла передатчика на к узлу приемника в это минимум из этих семи расстояний.
Расстояние между ними и
Расстояние между ними и , где - расстояние между двумя соседними gNB (расстояние между узлами)
Расстояние между ними и
Расстояние между ними и
Расстояние между ними и
Расстояние между ними и
Расстояние между ними и
Чтобы вычислить измененные расстояния между узлами из-за переноса, функция использует класс помощи hNRNodeDistanceCalculator. Если вы отключаете перенос, то расстояние между узлами является нормальным евклидовым расстоянием.
Узел (gNB или UE) состоит из приложений, генерирующих трафик, уровня управления радиоканалом (RLC), уровня управления доступом к среде (MAC) и физического уровня (PHY). Классы helper hNRGNB и hNRUE создают узлы gNB и UE, соответственно, содержащие слои RLC, MAC и PHY. Для получения дополнительной информации о каждом слое см. раздел 'NR Protocol Stack' в примере оценки эффективности камер 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 включительно. Пример показывает визуализацию и метрики для этой камеры и центральной камеры, камеры -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')
The 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. Классы helper 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. Эту визуализацию можно включить в разделе Logging and Visualization Configuration. Для получения дополнительной информации см. описание рисунка «Распределение ресурсной сетки» в примере планирования FDD PUSCH NR.
Отображение графиков метрик планирования DL и UL: Для получения дополнительной информации смотрите описание рисунка «Метрики эффективности планировщика нисходящего канала» в примере оценки эффективности планирования FDD NR.
Отображение частот ошибок блоков DL и UL: Для получения дополнительной информации смотрите описание рисунка «Block Error Rate (BLER) Visualization» в примере оценки эффективности камер NR с интегрированием физического слоя.
Результаты симуляции показывают, что центральная камера и пограничная камера имеют одинаковые показатели эффективности с переносом вокруг. Ниже приведены результаты симуляции без переноса. Можно наблюдать значительное различие в эффективности между центральной камерой и пограничной камерой.
Параметры, используемые для симуляции и журналов симуляции, сохраняются в MAT-файлах для постсимуляционного анализа и визуализации. Параметры симуляции сохраняются в MAT-файле с именем файла в качестве значения параметра конфигурации simParameters.ParametersLogFile
. Для получения дополнительной информации см. пример моделирования интерференций NR Intercell.
% 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. "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 представлению». Третья Генерация проект партнерства; Группа технических спецификаций Радиосеть доступ.