Интерференция NR, моделирующая с тороидальным переносом

Этот пример демонстрирует кластер с 19 ячейками с тороидальным переносом как описано в ITU-R M.2101-0. Перенос обеспечивает универсальную интерференцию в кластерном ребре. Все ячейки в кластере действуют в том же диапазоне частот с обслуживанием gNB в центре ячейки. Можно включить или отключить перенос, чтобы заметить, что с переносом, показатели производительности ячейки ребра становятся похожими на центральную ячейку.

Введение

Пример рассматривает эти операции в gNB и оборудовании пользователя (UE).

Этот пример модели:

  • Интерференция межъячейки Co-канала со всеобъемлющим моделированием для удаления краевых эффектов

  • Опорный сигнал демодуляции PUSCH (DM-RS) и PDSCH DM-RS

  • Качественное измерение канала DL UEs на основе CSI-RS получено от gNB.

  • Настройка одно входа одно выхода (SISO) со всенаправленными антеннами.

  • Потери при распространении в свободном пространстве (FSPL) и аддитивный белый Гауссов шум (AWGN).

Пример принимает, что пакеты управления, такие как присвоение UL, присвоение DL, буферный отчет о состоянии (BSR), обратная связь PDSCH, и отчет качественной характеристики канала (CQI), отправляются из полосы, то есть, без потребности ресурсов для передачи и гарантировали безошибочный прием.

Тороидальное всеобъемлющее моделирование

Чтобы симулировать поведение сотовой сети, не вводя краевые эффекты, этот пример демонстрирует бесконечную сотовую сеть при помощи тороидального переноса. Этот рисунок показывает сетевую область 19 ячеек. В отсутствие переноса ячейка 0 из центрального кластера, отображенного красным, однородно окружается и испытывает интерференцию со всех сторон. Ячейка ребра как ячейка 15 событий сравнительно меньшая интерференция. Перенос повторяет исходный кластер шесть раз, чтобы однородно окружить центральный кластер.

Целая сетевая область, важная для симуляций, является кластером 19 ячеек (показанный полужирным).

Во всеобъемлющей модели, сигнале или интерференции от любого UE до ячейки обработан, как будто это UE находится в кластере первоначальной ячейки и gNB в любом из этих семи кластеров, как задано в ITU-R M.2101-0. Расстояния использовались для расчета потери на пути от узла передатчика в (a,b) к узлу приемника в (x,y) минимум этих семи расстояний.

  • Расстояние между (x,y) и (a,b)

  • Расстояние между (x,y) и (a-3D,b-4D), где D расстояние между двумя смежными gNBs (расстояние межсайта)

  • Расстояние между (x,y) и (a+3D,b+4D)

  • Расстояние между (x,y) и (a-32D,b+72D)

  • Расстояние между (x,y) и (a+332D,b-72D)

  • Расстояние между (x,y) и (a-532D,b-12D)

  • Расстояние между (x,y) и (a-532D,b-12D)

Чтобы вычислить модифицированные расстояния между узлами из-за переноса, используйте hNRNodeDistanceCalculator помощника. Если вы отключаете перенос, то расстояние между узлами является нормальным Евклидовым расстоянием.

Стек протокола NR

Узел (gNB или UE) состоит из приложений, генерирующих трафик, слой управления линией радиосвязи (RLC), слой среднего управления доступом (MAC) и физический уровень (PHY). 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 = 3; % Simulation time, in number of 10 ms frames
simParameters.EnableWrapAround = true; % Enable wrap-around modeling
simParameters.SchedulingType = 0; % Slot-based scheduling

Задайте количество UEs в каждой ячейке, приняв, что UEs имеют последовательную радиосеть временные идентификаторы (RNTIs) от 1 к simParameters.NumUEs. Если вы изменяете количество UEs, необходимо гарантировать, что эти параметры симуляции являются массивами длины, равной значению simParameters.NumUEs: simParameters.UEDistance, ulAppDataRate, dlAppDataRate.

simParameters.NumUEs = 2; % Number of UEs in each cell
simParameters.UEDistance = [150; 250]; % Distance of UEs 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];

Задайте стратегию планирования и максимальный предел на RBS, выделенном для PUSCH и PDSCH. Предел передачи применяется только к новому PUSCH и присвоениям PDSCH, а не к повторным передачам.

simParameters.SchedulerStrategy = 'PF'; % Supported scheduling strategies: 'PF', 'RR', and 'BestCQI'
simParameters.RBAllocationLimitUL = 20; % For PUSCH
simParameters.RBAllocationLimitDL = 20; % For PDSCH 

Логгирование и настройка визуализации

Задайте ID ячейки интереса как целое число между 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')

CQIVisualization и RBVisualization параметры управляют отображением визуализации CQI и визуализации присвоения RB соответственно. Чтобы включить график визуализации RB, установите RBVisualization поле к true.

simParameters.CQIVisualization = true;
simParameters.RBVisualization = false;

Установите enableTraces как true регистрировать трассировки. Если enableTraces установлен в false, затем CQIVisualization и RBVisualization отключены автоматически, и трассировки не зарегистрированы симуляция. Чтобы ускорить симуляцию, установите enableTraces к false.

enableTraces = true;

Пример периодически обновляет метрические графики. Определите номер обновлений во время симуляции.

simParameters.NumMetricsSteps = 3;

Запишите журналы в MAT-файлы. Пример использует эти журналы для постанализа методом моделирования и визуализации.

parametersLogFile = 'simParameters'; % For logging the simulation parameters
simulationLogFile = 'simulationLogs'; % For logging the simulation traces
simulationMetricsFile = 'simulationMetrics'; % For logging the simulation metrics

Настройка трафика приложения

Установите периодический UL и шаблон трафика приложения DL для UEs.

ulAppDataRate = [16e3; 16e3]; % UL application data rate in kilo bits per second (kbps)
dlAppDataRate = [16e3; 16e3]; % DL application data rate in kbps

Выведенные параметры

Вычислите выведенные параметры на основе первичных параметров конфигурации, заданных в предыдущем разделе, и установите некоторые специфичные для примера константы.

simParameters.DuplexMode = 0; % Frequency-division duplexing (FDD)
numSitesPerCluster = 19; % Number of gNBs per cluster

Установите UE и gNB положения.

simParameters.GNBPositions = hMacrocellTopology(simParameters);
simParameters.UEPositions = cell(numSitesPerCluster, 1);
for idx = 1:numSitesPerCluster
    theta = rand(simParameters.NumUEs, 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.NumUEs, 1)];
end
simParameters.NCellIDList = 0:numSitesPerCluster-1; % List of physical cell IDs

Задайте настройку ресурса CSI-RS, приняв, что все UEs измеряют качество канала на том же ресурсе CSI-RS.

csirsConfig = cell(1, numSitesPerCluster);
for cellIdx = 1:numSitesPerCluster
    % Possible row numbers for single transmit antenna case are 1 and 2
    csirsConfig{cellIdx} = nrCSIRSConfig('NID', simParameters.NCellIDList(cellIdx), 'NumRB', simParameters.NumRBs, 'RowNumber', 2, 'SubcarrierLocations', 1, 'SymbolLocations', 0);
end
csiReportConfig = struct('SubbandSize', 8, 'CQIMode', 'Subband');
simParameters.CSIReportConfig = {csiReportConfig};

Вычислите длительность паза для выбранного 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 и установите логическую настройку канала для всех узлов (UEs и gNBs) в примере.

numLogicalChannels = 1;
simParameters.LCHConfig.LCID = 4; % Logical channel ID (logical channel ID of data radio bearers starts from 4)

Задайте тип сущности RLC в области значений [0, 3]. Значения 0, 1, 2, и 3 указывают на RLC UM однонаправленная сущность DL, RLC UM однонаправленная сущность UL, RLC UM двунаправленная сущность и сущность RLC AM, соответственно.

simParameters.RLCConfig.EntityType = 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.EntityType;
rlcChannelConfigStruct.LogicalChannelID = simParameters.LCHConfig.LCID;

Установите максимальную длину модуля эксплуатационных данных (SDU) RLC, в байтах, как задано в 3GPP TS 38.323 и общее количество узлов в симуляции.

maxRLCSDULength = 9000;
simParameters.MaxReceivers = numSitesPerCluster*(simParameters.NumUEs + 1); % Number of nodes
if ~isfield(simParameters, 'SchedulingType') || simParameters.SchedulingType == 0 % No scheduling type or slot-based scheduling
    tickGranularity = 14;
    simParameters.PUSCHMappingType = 'A';
    simParameters.PDSCHMappingType = 'A';
else % Symbol-based scheduling
    tickGranularity = 1;
    simParameters.PUSCHMappingType = 'B';
    simParameters.PDSCHMappingType = 'B';
end

Многоэлементный Setup

Настройте топологию с 19 ячейками с каждой ячейкой, состоящей из одного gNB и одного UE. Для каждой ячейки создайте gNB и объекты UE, инициализируйте информацию о качестве канала для UEs и настройте логический канал в gNB и UEs. hNRGNB и hNRUE классы помощника создают gNB и узлы UE соответственно, содержа RLC, MAC и слои PHY.

gNB = cell(numSitesPerCluster, 1);
UEs = cell(numSitesPerCluster, simParameters.NumUEs);

Создайте DL и пакетные объекты распределения UL, и инициализируйте всеобъемлющий объект калькулятора расстояния.

% Create packet distribution object
packetDistributionObj = hNRPacketDistribution(simParameters);
distCalcFcn = hNRNodeDistanceCalculator(simParameters.InterSiteDistance); % Function handle to calculate wrap-around distances
cellParam = simParameters;
for siteIdx = 1:numSitesPerCluster
    cellParam.NCellID = simParameters.NCellIDList(siteIdx); % Cell ID
    cellParam.Position = simParameters.GNBPositions(siteIdx, :);
    cellParam.CSIRSConfig = csirsConfig(siteIdx);
    % Create scheduler
    switch(simParameters.SchedulerStrategy)
        case 'RR' % Round robin scheduler
            scheduler = hNRSchedulerRoundRobin(cellParam);
        case 'PF' % Proportional fair scheduler
            scheduler = hNRSchedulerProportionalFair(cellParam);
        case 'BestCQI' % Best CQI scheduler
            scheduler = hNRSchedulerBestCQI(cellParam);
    end
    
    % Create gNB
    gNB{siteIdx} = hNRGNB(cellParam);
    addScheduler(gNB{siteIdx}, scheduler); % Add scheduler to gNB
    gNB{siteIdx}.PhyEntity = hNRGNBPhy(cellParam); % Create PHY layer instance
    configurePhy(gNB{siteIdx}, cellParam); % Configure PHY layer
    if simParameters.EnableWrapAround
        % Register distance calculator at gNB for wrap-around distance computations
        gNB{siteIdx}.DistanceCalculatorFcn = distCalcFcn;
    end
    setPhyInterface(gNB{siteIdx}); % Set up the interface to PHY layer

    ueParam = cellParam;
    for ueIdx = 1:simParameters.NumUEs
        ueParam.Position = simParameters.UEPositions{siteIdx}(ueIdx, :); % Position of UE in (x,y,z) coordinates
        ueParam.CSIReportConfig = csiReportConfig;
        UEs{siteIdx, ueIdx} = hNRUE(ueParam, ueIdx);
        UEs{siteIdx, ueIdx}.PhyEntity = hNRUEPhy(ueParam, ueIdx); % Create PHY layer instance
        configurePhy(UEs{siteIdx, ueIdx}, ueParam); % Configure PHY layer
        if simParameters.EnableWrapAround
            % Register distance calculator at the UEs for wrap-around distance computations
            UEs{siteIdx, ueIdx}.DistanceCalculatorFcn = distCalcFcn;
        end
        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
        % 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', maxRLCSDULength, 'GeneratePacket', true, ...
            'OnTime', simParameters.NumFramesSim/100, 'OffTime', 0, 'DataRate', ulAppDataRate(ueIdx));
        UEs{siteIdx, ueIdx}.addApplication(ueIdx, simParameters.LCHConfig.LCID, ulApp);

        % 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', maxRLCSDULength, 'GeneratePacket', true, ...
            'OnTime', simParameters.NumFramesSim/100, 'OffTime', 0, 'DataRate', dlAppDataRate(ueIdx));
        gNB{siteIdx}.addApplication(ueIdx, simParameters.LCHConfig.LCID, dlApp);
    end
    % Setup the UL and DL packet distribution mechanism
    hNRSetUpPacketDistribution(cellParam, gNB{siteIdx}, UEs(siteIdx, :), packetDistributionObj);
end

Настройте логгирование и визуализацию, задав центральную ячейку (ячейка 0) и ячейка интереса.

cellsOfInterest = unique([0; simParameters.CellOfInterest]);
numCellsOfInterest = length(cellsOfInterest); % Number of cells that the example logs and visualizes

Визуализируйте сетевую топологию

hTopologyVisualizer(simParameters);          

Figure Topology Visualization contains an axes object. The axes object with title Network Topology Visualization contains 76 objects of type line, text. This object represents UE Positions.

Регистрируйте и визуализируйте MAC и метрики PHY и трассировки.

simSchedulingLogger = cell(numCellsOfInterest, 1);
simPhyLogger = cell(numCellsOfInterest, 1);
metricsVisualizer = cell(numCellsOfInterest, 1);

for siteIdx = 1:numCellsOfInterest
    simParameters.NCellID = cellsOfInterest(siteIdx);
    if enableTraces
        % Create an object for MAC scheduling traces logging
        simSchedulingLogger{siteIdx} = hNRSchedulingLogger(simParameters);
        % Create an object for PHY layer traces logging
        simPhyLogger{siteIdx} = hNRPhyLogger(simParameters);

        if simParameters.CQIVisualization || simParameters.RBVisualization
            gridVisualizer = hNRGridVisualizer(simParameters, 'CellOfInterest', simParameters.NCellID, 'MACLogger', simSchedulingLogger{siteIdx});
        end
    end

    % Create visualization object for MAC and PHY metrics 
    nodes = struct('UEs', {UEs(simParameters.NCellID+1, :)}, 'GNB', gNB{simParameters.NCellID+1});
    metricsVisualizer{siteIdx} = hNRMetricsVisualizer(simParameters, 'Nodes', nodes, 'CellOfInterest', simParameters.NCellID, ...
        'EnableSchedulerMetricsPlots', true, 'EnablePhyMetricsPlots', true);
end

Обработка цикла

Симуляция является пазом запуска пазом. Для каждой ячейки, в каждом пазе, выполняются эти операции:

  • Запустите слои MAC и PHY gNB

  • Запустите слои MAC и PHY UEs

  • Регистрируйте и визуализируйте метрики для каждого слоя

  • Усовершенствуйте таймер для узлов и отправьте триггер в приложение и слои RLC каждая миллисекунда. Прикладной уровень и слой RLC выполняют их запланированные операции на основе триггера таймера на 1 мс.

slotNum = 0;
numSymbolsSim = numSlotsSim * 14; % Simulation time in units of symbol duration (assuming normal cyclic prefix)

% 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:numSitesPerCluster % For each site
        run(gNB{siteIdx});

        % Run MAC and PHY layers of UEs
        for ueIdx = 1:simParameters.NumUEs
            run(UEs{siteIdx, ueIdx});
        end

        if enableTraces
            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
    end
    
    for siteIdx = 1:numSitesPerCluster
        % Advance timer ticks for gNB and UEs by the number of symbols per slot
        advanceTimer(gNB{siteIdx}, tickGranularity);
        for ueIdx = 1:simParameters.NumUEs
            advanceTimer(UEs{siteIdx, ueIdx}, tickGranularity);
        end
    end
    
    % Visualization
    for idx = 1:numCellsOfInterest
        % Check slot boundary
        if symbolNum > 1 && ((simParameters.SchedulingType == 1 && mod(symbolNum, 14) == 0) || (simParameters.SchedulingType == 0 && mod(symbolNum-1, 14) == 0))
            % If the update periodicity is reached, plot scheduler metrics and PHY metrics at slot boundary
            if mod(slotNum, simParameters.MetricsStepSize) == 0
                plotLiveMetrics(metricsVisualizer{idx});
            end
        end
    end
end

Figure Channel Quality Visualization contains objects of type heatmap, uigridlayout. The chart of type heatmap has title Channel Quality Visualization for Cell ID - 0.

Figure Channel Quality Visualization contains objects of type heatmap, uigridlayout. The chart of type heatmap has title Channel Quality Visualization for Cell ID - 15.

Получите метрики симуляции simParameters.CellOfInterest и сохраните его в MAT-файле. Метрики симуляции сохранены в MAT-файле с именем файла как simulationMetricsFile. В конце симуляции достигнутое значение для индикаторов производительности системы сравнивается с их теоретическими пиковыми значениями (рассматривающий нулевые издержки). Отображенные показатели эффективности являются достигнутой скоростью передачи данных (UL и DL), достиг спектрального КПД (UL и DL), и BLER, наблюдаемый для UEs (DL и UL). Пиковые значения вычисляются согласно 3GPP TR 37.910.

metricsList = cell(numCellsOfInterest, 1);
metricStruct = struct('NCellID',[], 'Metrics',[]);
for siteIdx = 1:numCellsOfInterest
    metricStruct.NCellID = cellsOfInterest(siteIdx);
    metricStruct.Metrics = getMetrics(metricsVisualizer{siteIdx});
    metricsList{siteIdx} = metricStruct;
    % Display the performance indicators
    fprintf('\n\nMetrics for cell %d :\n\n', metricStruct.NCellID);
    displayPerformanceIndicators(metricsVisualizer{siteIdx})
end
Metrics for cell 0 :
Peak UL Throughput: 31.11 Mbps. Achieved Cell UL Throughput: 3.20 Mbps
Achieved UL Throughput for each UE: [2.05        1.15]
Achieved Cell UL Goodput: 3.20 Mbps
Achieved UL Goodput for each UE: [2.05        1.15]
Peak UL spectral efficiency: 6.22 bits/s/Hz. Achieved UL spectral efficiency for cell: 0.64 bits/s/Hz 

Peak DL Throughput: 31.11 Mbps. Achieved Cell DL Throughput: 4.35 Mbps
Achieved DL Throughput for each UE: [2.64        1.71]
Achieved Cell DL Goodput: 3.94 Mbps
Achieved DL Goodput for each UE: [2.57        1.37]
Peak DL spectral efficiency: 6.22 bits/s/Hz. Achieved DL spectral efficiency for cell: 0.79 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.037       0.074]
Metrics for cell 15 :
Peak UL Throughput: 31.11 Mbps. Achieved Cell UL Throughput: 3.34 Mbps
Achieved UL Throughput for each UE: [2.22        1.12]
Achieved Cell UL Goodput: 3.34 Mbps
Achieved UL Goodput for each UE: [2.22        1.12]
Peak UL spectral efficiency: 6.22 bits/s/Hz. Achieved UL spectral efficiency for cell: 0.67 bits/s/Hz 

Peak DL Throughput: 31.11 Mbps. Achieved Cell DL Throughput: 4.59 Mbps
Achieved DL Throughput for each UE: [2.87        1.71]
Achieved Cell DL Goodput: 4.24 Mbps
Achieved DL Goodput for each UE: [2.87        1.37]
Peak DL spectral efficiency: 6.22 bits/s/Hz. Achieved DL spectral efficiency for cell: 0.85 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       0.074]
save(simulationMetricsFile, 'metricsList');

Визуализация симуляции

Для центральной ячейки (ячейка 0) и ячейка интереса, визуализация времени выполнения показывает:

  • Отображение значений CQI: Для получения дополнительной информации см. 'Качественное описание' Визуализации Канала фигуры в NR PUSCH FDD, Планируя пример.

  • Отображение присвоения сетки ресурса на UEs: 2D сетка частоты времени показывает распределение ресурсов UEs. Можно включить эту визуализацию в разделе 'Logging and Visualization Configuration'. Для получения дополнительной информации см. 'описание' Выделения Сетки Ресурса фигуры в NR PUSCH FDD, Планируя пример.

  • Отображение DL и UL планирование метрических графиков: Для получения дополнительной информации см. 'Нисходящее описание' показателей производительности Планировщика фигуры в NR FDD, Планируя пример Оценки результатов деятельности.

  • Отображение DL и Частот появления ошибочных блоков UL: Для получения дополнительной информации смотрите 'Частоту появления ошибочных блоков (BLER) Визуализация' описание фигуры в Оценке результатов деятельности Ячейки NR с примером Интегрирования Физического уровня.

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

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

Параметры, используемые для симуляции и журналов симуляции, сохранены в MAT-файлах для постанализа методом моделирования и визуализации. Параметры симуляции сохранены в MAT-файле с именем файла как значение параметра конфигурации parametersLogFile. Для получения дополнительной информации смотрите, что Интерференция Межъячейки NR Моделирует пример.

if enableTraces
    % Get the logs
    simulationLogs = cell(numSitesPerCluster, 1);
    for siteIdx = 1:numCellsOfInterest
        if(simParameters.DuplexMode == 0) % FDD
            logInfo = struct('NCellID', [], 'DLTimeStepLogs', [], 'ULTimeStepLogs', [], 'SchedulingAssignmentLogs', [], 'BLERLogs', [], 'AvgBLERLogs', []);
            [logInfo.DLTimeStepLogs, logInfo.ULTimeStepLogs] = getSchedulingLogs(simSchedulingLogger{siteIdx});
        else % TDD
            logInfo = struct('TimeStepLogs', [], 'SchedulingAssignmentLogs', [], 'BLERLogs', [], 'AvgBLERLogs', []);
            logInfo.TimeStepLogs = getSchedulingLogs(simSchedulingLogger{siteIdx});
        end
        logInfo.NCellID = cellsOfInterest(siteIdx);
        logInfo.SchedulingAssignmentLogs = getGrantLogs(simSchedulingLogger{siteIdx}); % Scheduling assignments log
        [logInfo.BLERLogs, logInfo.AvgBLERLogs] = getBLERLogs(simPhyLogger{siteIdx}); % BLER logs
        simulationLogs{siteIdx, 1} = logInfo;
    end
    save(parametersLogFile, 'simParameters'); % Save simulation parameters in a MAT-file
    save(simulationLogFile, 'simulationLogs'); % Save simulation logs in a MAT-file
end

Ссылки

[1] 3GPP TS 38.104. “NR; передача радио Базовой станции (BS) и прием”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[2] 3GPP TS 38.214. “NR; процедуры Физического уровня для данных”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[3] 3GPP TS 38.321. “NR; спецификация протокола Среднего управления доступом (MAC)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[4] 3GPP TS 38.322. “NR; спецификация протокола Управления линией радиосвязи (RLC)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[5] 3GPP TS 38.323. “NR; спецификация Пакетного протокола сходимости данных (PDCP)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[6] 3GPP TS 38.331. “NR; спецификация протокола Радио-управления ресурсами (RRC)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

[7] 3GPP TR 37.910. “Исследование сам оценка к представлению IMT-2020”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

Похожие темы