Распределение ресурсов NR PUSCH и DM-RS и опорные сигналы PT-RS

Этот пример показывает аспекты частоты времени нового радио (NR) физический восходящий канал совместно использованный канал (PUSCH), связанный опорный сигнал демодуляции (DM-RS) и опорный сигнал отслеживания фазы (PT-RS). Пример показывает, как распределение ресурсов PUSCH влияет на структуру частоты времени DM-RS и PT-RS.

Введение

В 5G NR PUSCH является физическим восходящим каналом, который несет пользовательские данные. DM-RS и PT-RS являются опорными сигналами, сопоставленными с PUSCH. DM-RS используется для оценки канала как часть когерентной демодуляции PUSCH. Чтобы компенсировать общую ошибку фазы (CPE), 3GPP 5G, NR ввел PT-RS. Шум фазы, произведенный в локальных генераторах, вводит значительное ухудшение на mmWave частотах. Это производит CPE и интерференцию межпоставщика услуг (ICI). CPE приводит к идентичному вращению полученного символа в каждой поднесущей. ICI приводит к потере ортогональности между поднесущими. PT-RS используется в основном, чтобы оценить и минимизировать эффект CPE на производительности системы.

Структура частоты времени опорных сигналов зависит от типа формы волны, сконфигурированной для PUSCH, как задано в Разделах TS 38.211 6.4.1.1 и 6.4.1.2 [1]. То, когда преобразовывают предварительное кодирование, отключено, сконфигурированная форма волны является циклическим префиксным ортогональным делением частоты, мультиплексирующим (CP-OFDM). То, когда преобразовывают предварительное кодирование, включено, сконфигурированная форма волны является ортогональным делением частоты распространения дискретного преобразования Фурье, мультиплексирующим (DFT-s-OFDM).

5G Toolbox™ обеспечивает функции для физического моделирования слоя (PHY) с различными уровнями гранулярности. Уровни гранулярности лежат в диапазоне от функций уровня канала PHY, которые выполняют транспортную и физическую обработку канала к отдельным функциям этапа обработки канала, выполняющим кодирование контроля циклическим избыточным кодом (CRC), сегментацию блока кода, кодирование канала низкой проверки четности плотности (LDPC), и так далее. Тулбокс предоставляет функциональности опорных сигналов, сопоставленной PUSCH как функции nrPUSCHDMRS, nrPUSCHDMRSIndices, nrPUSCHPTRS, и nrPUSCHPTRSIndices.

PUSCH

PUSCH является физическим каналом, который несет пользовательские данные. Ресурсы, выделенные для PUSCH, в части пропускной способности (BWP) поставщика услуг, как задано в Разделе TS 38.214 6.1.2 [2]. Ресурсы во временном интервале для передачи PUSCH планируются нисходящей управляющей информацией (DCI) в присвоении ресурса области поля Time. Это поле указывает на смещение паза K0, начальный символ S, продолжительность выделения L и тип отображения PUSCH. Допустимые комбинации S и L показывают в Таблице 1.

Ресурсы в частотном диапазоне для передачи PUSCH планируются DCI в полевом присвоении ресурса Частотного диапазона. Это поле указывает, является ли распределение ресурсов блоков ресурса (RBS) непрерывным или состоящим из нескольких несмежных участков, на основе типа выделения. RBS выделил, в BWP.

5G Toolbox™ обеспечивает nrCarrierConfig и nrPUSCHConfig объекты установить параметры, связанные с PUSCH в BWP.

% Setup the carrier with 15 kHz subcarrier spacing and 10 MHz bandwidth 
carrier = nrCarrierConfig;
carrier.SubcarrierSpacing = 15;
carrier.CyclicPrefix = 'normal';
carrier.NSizeGrid = 52;
carrier.NStartGrid = 0;

% Configure the physical uplink shared channel parameters
pusch = nrPUSCHConfig;
pusch.NSizeBWP = [];   % Empty implies that the value is equal to NSizeGrid
pusch.NStartBWP = [];  % Empty implies that the value is equal to NStartGrid
pusch.PRBSet = 0:25;   % Allocate half of the carrier bandwidth
pusch.SymbolAllocation = [0 14]; % Symbol allocation [S L]
pusch.MappingType = 'A'; % PUSCH mapping type ('A' or 'B')
pusch.TransmissionScheme = 'nonCodebook'; % ('codebook' or 'nonCodebook')
% The following parameters are applicable when TransmissionScheme is set
% to 'codebook'
pusch.NumAntennaPorts = 4;
pusch.TPMI = 0;

RS DM для CP-OFDM

DM-RS используется, чтобы оценить радио-канал. DM-RS присутствует только в RBS, запланированном для PUSCH. Структура DM-RS спроектирована, чтобы поддержать различные сценарии развертывания и варианты использования.

Параметры то время управления ресурсы

Параметры, которые управляют ресурсами времени DM-RS:

  • Выделение символа PUSCH

  • Отображение типа

  • Скачкообразное движение частоты внутрипаза

  • Тип DM-RS положение

  • Длина DM-RS

  • DM-RS дополнительное положение

Выделение символа PUSCH указывает на местоположения символа OFDM, выделенные для передачи PUSCH в пазе. Тип отображения указывает на первое местоположение символа DM-RS OFDM и длительность символов OFDM (ld). Для отображения типа A, ld длительность между первым символом OFDM паза и последним символом OFDM выделенных ресурсов PUSCH. Для отображения типа B, ld длительность выделенных ресурсов PUSCH. Когда скачкообразное движение частоты внутрипаза включено, ld длительность на транзитный участок. Символы DM-RS присутствуют в каждом транзитном участке, когда скачкообразное движение частоты внутрипаза включено. Когда скачкообразное движение частоты внутрипаза включено, DM-RS является отдельным символом с максимальным количеством дополнительных положений или 0 или 1. Местоположения символа DM-RS даны таблицами 6.4.1.1.3-3, 6.4.1.1.3-4 TS 38.211, и 6.4.1.1.3-6. Рисунок 1 показывает местоположения символа DM-RS для PUSCH занятие 14 символов с PUSCH отображение типа A, скачкообразное движение частоты внутрипаза включило, и количество DM-RS дополнительные позиции как 1. Рисунок показывает, что DM-RS присутствует в каждом транзитном участке. Местоположения символов DM-RS в каждом транзитном участке зависят от количества символов OFDM, выделенных для PUSCH в каждом транзитном участке.

Для получения дополнительной информации на других параметрах DM-RS, смотрите Распределение ресурсов NR PDSCH и DM-RS и Опорные сигналы PT-RS.

% Assign intra-slot frequency hopping for PUSCH
pusch.FrequencyHopping = 'intraSlot'; % 'neither', 'intraSlot', 'interSlot'
pusch.SecondHopStartPRB = 26;

% Set the parameters that control the time resources of DM-RS
pusch.DMRS.DMRSTypeAPosition = 2;      % 2 or 3
pusch.DMRS.DMRSLength = 1;             % 1 or 2 (single-symbol or double-symbol)
pusch.DMRS.DMRSAdditionalPosition = 1; % 0...3 (Number of additional DM-RS positions)

Параметры та частота управления ресурсы

Параметры, которые управляют ресурсами частоты DM-RS:

  • Тип настройки DM-RS

  • Порты антенны DM-RS

Тип настройки указывает на плотность частоты DM-RS и сообщен dmrs-типом сообщения RRC. Тип 1 настройки задает шесть поднесущих на физический блок ресурса (PRB) на порт антенны, включая альтернативные поднесущие. Тип 2 настройки задает четыре поднесущие на PRB на порт антенны, состоя из двух групп из двух последовательных поднесущих. Различные сдвиги дельты применяются к наборам поднесущих, используемых, в зависимости от связанного порта антенны или группы мультиплексирования кодового разделения (CDM). Для типа 1 настройки существует две возможных группы/сдвига CDM через восемь возможных портов антенны (p=0... 7). Для типа 2 настройки существует три возможных группы/сдвига CDM через двенадцать портов антенны (p=0... 11). Для получения дополнительной информации смотрите Распределение ресурсов NR PDSCH и DM-RS и Опорные сигналы PT-RS.

В случае основанной на книге шифров обработки PUSCH объединение местоположений поднесущей DM-RS, существующих в каждом слое, спроектировано ко всем портам антенны.

% Set the parameters that control the frequency resources of DM-RS
pusch.DMRS.DMRSConfigurationType = 1; % 1 or 2
pusch.DMRS.DMRSPortSet = 0;

% The read-only properties DeltaShifts and DMRSSubcarrierLocations of DMRS
% property of pusch object provides the values of delta shift(s) and DM-RS
% subcarrier locations in an RB for each antenna port configured.
pusch.DMRS.DeltaShifts
ans = 0
pusch.DMRS.DMRSSubcarrierLocations
ans = 6×1

     0
     2
     4
     6
     8
    10

Генерация последовательности

Псевдослучайная последовательность, используемая для DM-RS, 231-1последовательность золота длины. Последовательность сгенерирована через все общие блоки ресурса (CRBs) и передается только в RBS, выделенном для данных, потому что последовательность не требуется, чтобы оценивать канал за пределами области частоты, в которой не передаются данные. Генерация последовательности опорного сигнала через весь CRBs гарантирует, что та же базовая псевдослучайная последовательность используется для нескольких UEs на перекрывающихся ресурсах частоты времени в случае многопользовательского MIMO. Параметры, которые управляют генерацией последовательности:

  • Идентичность скремблирования DM-RS (NIDnSCID)

  • Инициализация скремблирования DM-RS (nSCID)

  • Количество символов OFDM в пазе

  • Номер слота в радио-системе координат

  • Местоположения символа DM-RS

  • Выделение PRBs

Свойство CyclicPrefix объекта поставщика услуг управляет количеством символов OFDM в пазе. Свойство NSlot объекта поставщика услуг управляет номером слота.

В случае основанной на книге шифров обработки PUSCH последовательность умножается с матрицей перед кодером, которая зависит от количества слоев, количества портов антенны и переданного матричного индикатора перед кодером (TPMI).

% Set the parameters that only control the DM-RS sequence generation
pusch.DMRS.NIDNSCID = 1; % Use empty to set it to NCellID of the carrier
pusch.DMRS.NSCID = 0;    % 0 or 1

% Generate DM-RS symbols
pusch.NumLayers = numel(pusch.DMRS.DMRSPortSet);
dmrsSymbols = nrPUSCHDMRS(carrier,pusch);

% Plot the constellation
scatterplot(dmrsSymbols)
title('DM-RS Constellation')
xlabel('Real')
ylabel('Imaginary')

% The read-only properties TimeWeights and FrequencyWeights of DMRS
% property of pusch object provides the values of time and frequency
% weights applied to the DM-RS symbols.
pusch.DMRS.TimeWeights
ans = 2×1

     1
     1

pusch.DMRS.FrequencyWeights
ans = 2×1

     1
     1

% Generate DM-RS indices
dmrsIndices = nrPUSCHDMRSIndices(carrier,pusch);

% Map the DM-RS symbols to the grid with the help of DM-RS indices
if strcmpi(pusch.TransmissionScheme,'codebook')
    nports = pusch.NumAntennaPorts;
else
    nports = pusch.NumLayers;
end
grid = zeros([12*carrier.NSizeGrid carrier.SymbolsPerSlot nports]);
grid(dmrsIndices) = dmrsSymbols;
figure
imagesc(abs(grid(:,:,1)));
axis xy;
xlabel('OFDM Symbols');
ylabel('Subcarriers');
title('DM-RS Time-Frequency Locations');

PT-RS для CP-OFDM

PT-RS является опорным сигналом отслеживания фазы. PT-RS используется в основном, чтобы оценить и минимизировать эффект CPE на производительности системы. Из-за свойств шума фазы, сигнал PT-RS имеет низкую плотность в частотном диапазоне и высокую плотность во временном интервале. PT-RS всегда происходит в сочетании с DM-RS и только когда сеть сконфигурировала PT-RS, чтобы присутствовать.

Параметры то время управления ресурсы

PT-RS сконфигурирован через более высокий параметр слоя DMRS-UplinkConfig для восходящего канала. Параметры, которые управляют ресурсами времени PT-RS:

  • Местоположения символа DM-RS

  • Плотность времени PT-RS (LPT-RS)

LPT-RS зависит от запланированной схемы модуляции и кодирования. Значение должно быть одним из {1, 2, 4}. Для параметров, которые управляют местоположениями символа DM-RS, обратитесь к Параметрам который Управление Ресурсы Времени DM-RS (CP-OFDM).

% Set the EnablePTRS property in pusch to 1
pusch.EnablePTRS = 1;

% Set the parameters that control the time resources of PT-RS
pusch.PTRS.TimeDensity = 2;

Параметры та частота управления ресурсы

PT-RS занимает только одну поднесущую в RB для одного символа OFDM. Параметры, которые управляют ресурсами частоты PT-RS:

  • Выделение PRB

  • Тип настройки DM-RS

  • Плотность частоты PT-RS (KPT-RS)

  • Радиосеть временный идентификатор (nRNTI)

  • Элемент ресурса возмещен

  • Порты антенны PT-RS

KPT-RS зависит от запланированной пропускной способности. Значение равняется или 2 или 4. Значение указывает, присутствует ли PT-RS в каждых двух RBS или каждых четырех RBS.

Для получения дополнительной информации смотрите Распределение ресурсов NR PDSCH и DM-RS и Опорные сигналы PT-RS.

% Set the parameters that control PT-RS subcarrier locations
pusch.RNTI = 1;
pusch.DMRS.DMRSConfigurationType = 1;
pusch.DMRS.DMRSPortSet = 0;
% Set the PT-RS parameters
pusch.PTRS.FrequencyDensity = 2; % 2 or 4
pusch.PTRS.REOffset = '10';      % '00', '01', '10', '11'
pusch.PTRS.PTRSPortSet = min(pusch.DMRS.DMRSPortSet);

Генерация последовательности

Последовательность, используемая для генерации PT-RS, является той же псевдослучайной последовательностью, используемой для генерации последовательности DM-RS. В отсутствие скачкообразного движения частоты внутрипаза значения последовательности PT-RS зависят от первого положения символа DM-RS. В присутствии скачкообразного движения частоты внутрипаза значения последовательности PT-RS зависят от первых положений символа DM-RS в каждом транзитном участке. Для получения дополнительной информации отошлите раздел DM-RS Sequence Generation (CP-OFDM).

В случае основанной на книге шифров обработки PUSCH последовательность умножается с матрицей перед кодером, которая зависит от количества слоев, количества портов антенны и переданного матричного индикатора перед кодером (TPMI).

% Set the parameters that control the PT-RS sequence generation
pusch.DMRS.NIDNSCID = 1; % Use empty to set it to NCellID of the carrier
pusch.DMRS.NSCID = 0;    % 0 or 1

Сгенерируйте индексы элемента ресурса (RE) PUSCH, DM-RS и PT-RS. Кроме того, сгенерируйте DM-RS и символы PT-RS.

% Control the resource elements available for data in DM-RS OFDM symbol
% locations
pusch.DMRS.NumCDMGroupsWithoutData = 1;

% PUSCH, DM-RS and PT-RS indices
pusch.NumLayers = numel(pusch.DMRS.DMRSPortSet);
[puschIndices, puschInfo] = nrPUSCHIndices(carrier,pusch);
dmrsIndices = nrPUSCHDMRSIndices(carrier,pusch);
ptrsIndices = nrPUSCHPTRSIndices(carrier,pusch);

% DM-RS and PT-RS symbols
dmrsSymbols = nrPUSCHDMRS(carrier,pusch);
ptrsSymbols = nrPUSCHPTRS(carrier,pusch);

Сопоставьте PUSCH, DM-RS и индексы PT-RS RE к сетке с масштабированными значениями, чтобы визуализировать соответствующие местоположения на сетке.

chpLevel = struct;
chpLevel.PUSCH = 0.4;
chpLevel.DMRS = 1;
chpLevel.PTRS = 1.4;
gridCPOFDM = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot nports]));
gridCPOFDM(puschIndices) = chpLevel.PUSCH;
dmrsFactor = chpLevel.DMRS*(1/(max(abs(dmrsSymbols))));
gridCPOFDM(dmrsIndices) = dmrsFactor*dmrsSymbols;
ptrsFactor = chpLevel.PTRS*(1/(max(abs(ptrsSymbols))));
gridCPOFDM(ptrsIndices) = ptrsFactor*ptrsSymbols;
plotGrid(gridCPOFDM,1,chpLevel)

На предыдущем рисунке PT-RS расположен от запуска символа OFDM в физическом восходящем канале совместно использованное выделение канала. Символы присутствуют в каждом LPT-RS скачкообразно переместите интервал друг от друга или от символов DM-RS. Различие в последовательных местоположениях поднесущей PT-RS равняется 24, который является количеством поднесущих в RB (12) времена плотность частоты PT-RS (2).

RS DM для DFT-s-OFDM

DFT-s-OFDM поддерживает только передачу единственного слоя и в основном используется для низких сценариев покрытия. Ресурсы частоты времени DM-RS в DFT-s-OFDM структурированы способом, чтобы достигнуть низкого кубического метрического и мощного КПД усилителя. Передача частоты опорного сигнала, мультиплексированной с другими восходящими передачами данных высоко, влияет на КПД усилителя мощности из-за увеличенной кубической метрики. Опорные сигналы мультиплексируются временем с восходящими передачами, таким образом, блокируя все элементы ресурса для передачи данных в символах OFDM, несущих DM-RS.

Параметры то время управления ресурсы

Параметры, которые управляют ресурсами времени DM-RS в DFT-s-OFDM:

  • Выделение символа PUSCH

  • Отображение типа

  • Скачкообразное движение частоты внутрипаза

  • Тип DM-RS положение

  • Длина DM-RS

  • DM-RS дополнительное положение

Эти параметры являются теми же параметрами, которые управляют ресурсами времени DM-RS в CP-OFDM. Для получения дополнительной информации обратитесь к Параметрам который Управление Ресурсы Времени DM-RS (CP-OFDM).

% Set the TransformPrecoding property in pusch to 1
pusch.TransformPrecoding = 1;

% Parameters that control the time resources
pusch.DMRS.DMRSTypeAPosition = 2;
pusch.DMRS.DMRSLength = 1;
pusch.DMRS.DMRSAdditionalPosition = 0;

Параметры та частота управления ресурсы

Параметры, которые управляют ресурсами частоты DM-RS в DFT-s-OFDM:

  • Тип настройки DM-RS

  • Порт антенны DM-RS

Эти два параметра совпадают с параметрами CP-OFDM. Тип настройки DM-RS всегда устанавливается в 1. Порт антенны DM-RS является номинально скаляром со значением 0.

Нет никакой потребности поддержать многопользовательские ситуации MIMO, потому что DFT-s-OFDM для ограниченных покрытием сценариев. Без ситуаций MIMO опорный сигнал сгенерирован только для переданного PRBs, а не CRBs как в OFDM. Из-за единственного слоя и одного типа настройки, позволенного в DFT-s-OFDM, количество местоположений поднесущей, используемых для DM-RS в RB, является постоянным. Рисунок 2 иллюстрирует местоположения поднесущей DM-RS в DFT-s-OFDM для отображения типа A с символами OFDM, выделенными для PUSCH, охватывающего по полному пазу.

% Set the DM-RS antenna port
pusch.DMRS.DMRSPortSet = 0;

Генерация последовательности

Последовательность DM-RS является последовательностью ZadoffChu в DFT-s-OFDM. Ортогональные последовательности сгенерированы с различными циклическими сдвигами для номера группы и порядкового номера. Параметры, которые управляют генерацией последовательности:

  • Выделение PRB

  • Скачкообразное движение группы

  • Скачкообразное движение последовательности

  • Идентичность скремблирования DM-RS (NIDRS)

  • Местоположения символа DM-RS

% Parameters that control the sequence generation
pusch.DMRS.SequenceHopping = 0; % Sequence hopping (0 or 1)
pusch.DMRS.GroupHopping = 1;    % Group hopping (0 or 1)
pusch.DMRS.NRSID = 1;           % Use empty to set it to NCellID of carrier

% Generate the DM-RS symbols and indices
pusch.NumLayers = numel(pusch.DMRS.DMRSPortSet);
dmrsSymbols = nrPUSCHDMRS(carrier,pusch);
dmrsIndices = nrPUSCHDMRSIndices(carrier,pusch);
dmrsFactor = chpLevel.DMRS*(1/(max(abs(dmrsSymbols))));
% Map DM-RS onto the grid
grid = complex(zeros([12*carrier.NSizeGrid carrier.SymbolsPerSlot nports]));
grid(dmrsIndices) = dmrsFactor*dmrsSymbols;

% Generate PUSCH indices and map onto the grid
puschIndices = nrPUSCHIndices(carrier,pusch);
grid(puschIndices) = chpLevel.PUSCH;

% Plot the grid
titleText = 'Carrier Grid Containing PUSCH and DM-RS';
plotGrid(grid,1,struct('PUSCH',chpLevel.PUSCH,'DMRS',chpLevel.DMRS),titleText,{'PUSCH','DM-RS'})

Местоположения поднесущей в символах OFDM, занимающих DM-RS, не выделяются для PUSCH.

PT-RS для DFT-s-OFDM

PT-RS в DFT-s-OFDM вставляется с данными на этапе преобразования перед кодированием.

Параметры то время управления ресурсы

Параметры, которые управляют ресурсами времени PT-RS в DFT-s-OFDM, являются тем же самым как параметры, которые управляют ресурсами времени PT-RS в CP-OFDM. Значение LPT-RS или 1 или 2 в DFT-s-OFDM. Для получения дополнительной информации обратитесь к Параметрам который Управление Ресурсы Времени PT-RS (CP-OFDM).

% Generate a grid with shared channel allocation for an RB in a single slot
% with complete symbol allocation of 14 symbols for a single layer

% Set the carrier resource grid with one RB
carrier.NSizeGrid = 1;

% Configure PUSCH with DFT-s-OFDM and no frequency hopping
pusch.TransformPrecoding = 1;
pusch.FrequencyHopping = 'neither';

% Set the parameter that control PT-RS time resources
pusch.EnablePTRS = 1;
pusch.PTRS.TimeDensity = 2;

Параметры та частота управления ресурсы

Шаблон PT-RS в частотном диапазоне очень отличается от CP-OFDM. Выборки PT-RS вставляются как фрагменты или группы (NgroupPT-RS). Каждая группа состоит из конечного числа выборок (Nsampgroup) в запланированной пропускной способности для каждого символа OFDM, где PT-RS присутствует.

Параметры, которые управляют ресурсами частоты PT-RS в DFT-s-OFDM:

  • Выделение PRB

  • Количество выборок PT-RS в группе (Nsampgroup)

  • Количество групп PT-RS (NgroupPT-RS)

Допустимые комбинации демонстрационной плотности PT-RS ([NsampgroupNgroupPT-RS]) {[2 2], [2 4], [4 2], [4 4], [4 8]}. Количество выборок PT-RS в символе OFDM фиксируется в DFT-s-OFDM, на основе количества выборок PT-RS во всех группах PT-RS. Этот номер отличается от CP-OFDM, в котором количество выборок PT-RS увеличиваются на основе количества RBS в PUSCH.

Рисунок 3 показывает местоположения поднесущей символов PT-RS для RB с количеством демонстрационного набора PT-RS к 2 и количеством набора групп PT-RS к 2 для символа OFDM, несущего PT-RS.

Демонстрационная плотность PT-RS [2 2] подразумевает, что существует две группы PT-RS в запланированной пропускной способности с двумя символами каждый.

PT-RS вставляется с многоуровневыми символами во входе предварительного кодирования преобразования. После преобразовывают предварительное кодирование, оба многоуровневых символа и PT-RS обработаны как данные. Поэтому PT-RS не отображается в сетке непосредственно.

% Set the parameters that control PT-RS frequency resources
pusch.PRBSet = 0:carrier.NSizeGrid-1;
pusch.PTRS.NumPTRSSamples = 2; % 2, 4
pusch.PTRS.NumPTRSGroups = 2;  % 2, 4, 8

Генерация последовательности

Последовательность PT-RS в DFT-s-OFDM является модифицированным pi/2-BPSK последовательность. Параметры, которые управляют генерацией последовательности:

  • Запуск символа OFDM выделения PUSCH

  • Количество символов OFDM в пазе

  • Номер слота в радио-системе координат

  • PT-RS борющаяся идентичность (NID)

  • Местоположения поднесущей PT-RS

% Set the parameters that control PT-RS sequence generation
pusch.DMRS.NRSID = 1;
pusch.PTRS.NID = 10; % Use empty to set it to NRSID of DMRS configuration

Сгенерируйте индексы PT-RS RE и PUSCH.

% PUSCH, and PT-RS indices
[puschIndices, puschInfoDFTsOFDM] = nrPUSCHIndices(carrier,pusch);
ptrsIndices = nrPUSCHPTRSIndices(carrier,pusch);

Установите PUSCH и элементы ресурса PT-RS к постоянным значениям.

% Insert PT-RS along with the PUSCH data
GdPTRS = size(reshape(ptrsIndices,[],pusch.NumLayers),1);
dataWithPTRS = chpLevel.PUSCH*ones(puschInfoDFTsOFDM.Gd+GdPTRS,1);
dataWithPTRS(ptrsIndices(:,1)) = chpLevel.PTRS;

Постройте проекции PT-RS на сетку.

gridDFTsOFDM = zeros(numel(pusch.PRBSet)*12, carrier.SymbolsPerSlot);
% Map the grid with data and reference signals
gridDFTsOFDM(:,puschInfoDFTsOFDM.DMRSSymbolSet+1) = chpLevel.DMRS;
gridDFTsOFDM(~(gridDFTsOFDM==chpLevel.DMRS)) = dataWithPTRS;

% Plot the projections of data, DM-RS and PT-RS on grid before transform
% precoding
fNames = {'PUSCH','DM-RS+Res','PT-RS'};
titleText = 'Projection of Data, DM-RS, and PT-RS before Transform Precoding';
plotGrid(gridDFTsOFDM,1,chpLevel,titleText,fNames)

Дальнейшее исследование

Можно попытаться изменить параметры, которые влияют на время и ресурсы частоты опорных сигналов и наблюдают изменения положений RE для соответствующих сигналов.

Попытайтесь изменить количество портов антенны, сконфигурированных для DM-RS и PT-RS, затем наблюдайте изменения опорных сигналов и данных через порты. Например, попытайтесь сконфигурировать DM-RS для двух портов антенны 0 и 2, тип 1 настройки и PT-RS для порта антенны 0. Сгенерируйте индексы PUSCH, сигнал DM-RS (индексы и символы), и сигнал PT-RS (индексы и символы). Сопоставьте их с сеткой и визуализируйте сетку для обоих порты.

Попытайтесь выполнить оценку канала и отслеживание фазы с помощью символов PT-RS и индексов. Вычислите пропускную способность путем выполнения шагов, обрисованных в общих чертах в Пропускной способности NR PUSCH.

В этом примере показано, как сгенерировать DM-RS и последовательности PT-RS и как сопоставить последовательности с сеткой ресурса поставщика услуг OFDM. Это подсвечивает свойства, которые управляют структурой частоты времени опорных сигналов для различных форм волны. Например, шаблон частоты времени для опорных сигналов в CP-OFDM и DFT-s-OFDM и изменении последовательностей сгенерирован для опорных сигналов в различных формах волны.

Ссылки

  1. 3GPP TS 38.211. "NR; Физические каналы и модуляция (Релиз 15)". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

  3. 3GPP TS 38.212. "NR; Мультиплексирование и кодирование канала (Релиз 15)". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

Локальные функции

function plotGrid(grid,nLayer,chpLevel,titleText,names)
% plotGrid Display resource grid GRID of the layer number NLAYER with the
% legend containing physical channel and associated reference signals, at
% different power levels CHPLEVEL with title TITLETEXT. Legend is created
% using a cell array of character vectors NAMES.

    if nargin < 4
        titleText = 'Carrier Grid Containing PUSCH, DM-RS and PT-RS';
    end

    if nargin < 5
        names = {'PUSCH', 'DM-RS', 'PT-RS'};
    end

    map = parula(64);
    cscaling = 40;
    im = image(1:size(grid,2),1:size(grid,1),cscaling*abs(grid(:,:,nLayer)));
    colormap(im.Parent,map);

    % Add legend to the image
    chpval = struct2cell(chpLevel);
    clevels = cscaling*[chpval{:}];
    N = length(clevels);
    L = line(ones(N),ones(N), 'LineWidth',8); % Generate lines
    % Index the color map and associated the selected colors with the lines
    set(L,{'color'},mat2cell(map( min(1+clevels,length(map) ),:),ones(1,N),3)); % Set the colors according to map
    % Create legend
    legend(names{:});
    axis xy;
    ylabel('Subcarriers');
    xlabel('OFDM Symbols');
    title(titleText);
end

Смотрите также

Функции

Объекты

Похожие темы