5G генерация сигналов поставщика услуг восходящего канала NR

Этот пример реализует 5G генератор формы волны поставщика услуг восходящего канала NR с помощью 5G Toolbox™.

Введение

В этом примере показано, как параметризовать и сгенерировать форму волны восходящего канала Нового радио (NR) 5G. Следующие каналы и сигналы могут быть сгенерированы:

  • PUSCH и его связанный DM-RS и PT-RS

  • PUCCH и его связанный DM-RS

  • SRS

Этот пример поддерживает параметризацию и генерацию нескольких частей пропускной способности (BWP). Несколько экземпляров PUSCH, PUCCH и SRS могут быть сгенерированы по различному BWPs. Пример позволяет конфигурировать PUCCH, PUSCH и SRS для определенного UE, категоризированного RNTI, и передает только PUSCH для того определенного RNTI, когда и PUCCH и PUSCH накладываются в пазе.

Форма волны и настройка поставщика услуг

Этот раздел устанавливает разрядку поднесущей (SCS) определенная пропускная способность поставщика услуг в блоках ресурса, идентичность ячейки физического уровня NCellID и длина сгенерированной формы волны в подкадрах. Можно визуализировать сгенерированные сетки ресурса путем установки DisplayGrids поле к 1. Пропускная способность канала и параметры частотного диапазона используются, чтобы отобразить связанные минимальные защитные полосы на принципиальной схеме выравнивания поставщика услуг SCS. Принципиальная схема отображена в одном из выходных графиков примера.

waveconfig = [];
waveconfig.NCellID = 0;            % Cell identity
waveconfig.ChannelBandwidth = 50;  % Channel bandwidth (MHz)
waveconfig.FrequencyRange = 'FR1'; % 'FR1' or 'FR2'
waveconfig.NumSubframes = 10;      % Number of 1ms subframes in generated waveform
                                   % (1,2,4,8 slots per 1ms subframe,
                                   % depending on SCS)
waveconfig.DisplayGrids = 1;       % Display the resource grids after signal generation

% Define a set of SCS specific carriers, using the maximum sizes for a 50
% MHz NR channel. See TS 38.101-1 for more information on defined
% bandwidths
carriers = [];
carriers(1).SubcarrierSpacing = 15;
carriers(1).NRB = 270;
carriers(1).RBStart = 0;

carriers(2).SubcarrierSpacing = 30;
carriers(2).NRB = 133;
carriers(2).RBStart = 1;

Части пропускной способности

BWP формируется набором непрерывных ресурсов, совместно использующих нумерологию на данном SCS определенный поставщик услуг. Этот пример поддерживает использование нескольких BWPs использование массива структур. Каждая запись в массиве представляет BWP. Для каждого BWP можно задать разрядку поднесущей (SCS), длина циклического префикса (CP) и пропускная способность. SubcarrierSpacing параметр сопоставляет BWP с одним из SCS определенные поставщики услуг, заданные ранее. RBOffset параметр управляет местоположением BWP в поставщике услуг. Это выражается в терминах нумерологии BWP. Различный BWPs может наложиться друг с другом.

% Bandwidth parts configurations
bwp = [];

bwp(1).SubcarrierSpacing = 15;              % BWP1 Subcarrier Spacing
bwp(1).CyclicPrefix = 'Normal';             % BWP1 cyclic prefix
bwp(1).NRB = 25;                            % Size of BWP1
bwp(1).RBOffset = 10;                       % Position of BWP1 in carrier

bwp(2).SubcarrierSpacing = 30;              % BWP2 Subcarrier Spacing
bwp(2).CyclicPrefix = 'Normal';             % BWP2 cyclic prefix
bwp(2).NRB = 51;                            % Size of BWP2
bwp(2).RBOffset = 40;                       % Position of BWP2 in carrier

Настройка экземпляров PUCCH

Этот раздел задает параметры для набора экземпляров PUCCH в форме волны. Каждый элемент в массиве структур задает экземпляр последовательности PUCCH. Следующие параметры могут быть установлены:

  • Позвольте/запретите последовательность PUCCH

  • Задайте BWP перенос PUCCH

  • Степень экземпляра PUCCH в дБ

  • Пазы в период используются в PUCCH

  • Периодичность выделения. Используйте пустой, чтобы не указать ни на какое повторение

  • Повышение степени DM-RS в дБ

pucch = [];
pucch(1).Enable = 1;                        % Enable PUCCH sequence
pucch(1).BWP = 1;                           % Bandwidth part
pucch(1).Power = 0;                         % Power scaling in dB
pucch(1).AllocatedSlots = [3 4];            % Allocated slots within a period
pucch(1).AllocatedPeriod = 6;               % Allocation slot period (empty implies no repetition)
pucch(1).PowerDMRS = 1;                     % Additional power boosting in dB

Настройка ресурса PUCCH

Этот раздел задает последовательность PUCCH связанные с ресурсом параметры. Параметры могут быть категоризированы в следующие разделы:

  • Позвольте/Запретите выделенный ресурс PUCCH. Если это отключено, это использует общий ресурс согласно Разделу TS 38.213 9.2.1

  • Введите значение индекса ресурса (0... 15), когда специализированный ресурс отключен и циклический префикс BWP, передающего PUCCH, нормален. В этом случае ресурс и параметры формата для передачи PUCCH заполнены непосредственно на основе индекса ресурса. Все другие параметры, которые обеспечиваются для ресурса и настроек формата, не рассматриваются.

То, когда специализированный ресурс включен или когда специализированный ресурс отключен с циклическим префиксом BWP, передающего PUCCH, расширено, следующие параметры ресурса должны быть обеспечены:

  • Задайте индекс первого PRB до скачкообразного движения частоты или ни для какой частоты, скачкообразно двигающейся в BWP

  • Задайте индекс первого PRB после частоты, скачкообразно двигающейся в BWP

  • Настройка скачкообразного движения частоты внутрипаза ('включил', 'отключенный'),

  • Группа, скачкообразно перемещающая настройку ('ни один', 'включите', 'отключите'),

и следующий формат определенные параметры должен быть обеспечен:

  • Настройка формата PUCCH в ресурсе (0... 4)

  • Индекс начального символа выделяется для передачи PUCCH

  • Количество символов OFDM выделяется для передачи PUCCH. Для форматов 1, 3 и 4 PUCCH количество выделенных символов OFDM находится в области значений 4 - 14, и для форматов 0 и 2, это или 1 или 2

  • Начальный циклический сдвиг для форматов 0 и 1. Значение находится в области значений от 0 до 11

  • Схема Modulation форматов 3 и 4 ('QPSK', 'pi/2-BPSK')

  • Количество блоков ресурса выделяется для формата 2 и 3. Номинальная стоимость является одним из набора {1,2,3,4,5,6,8,9,10,12,15,16}

  • Распространение фактора для формата 4. Значение равняется или 2 или 4

  • Ортогональный индекс кода покрытия для форматов 1 и 4. Для формата 1 значение находится в области значений от 0 до 6. Для формата 4 значение меньше распространяющегося фактора и больше, чем или равный 0

  • Укажите на присутствие дополнительного DM-RS для форматов 3 и 4. Значение или 0 или 1

Скремблирование тождеств, которые будут использоваться в различных форматах

  • RNTI для форматов 2/3/4. Это используется в генерации последовательности. Это находится в области значений от 0 до 65 535

  • Скремблирование идентичности (NID) для форматов PUCCH 2/3/4. Это находится в области значений от 0 до 1 023. Используйте пустой ([]), чтобы использовать идентичность ячейки физического уровня. Это используется в генерации последовательности. Этот параметр обеспечивается параметром более высокого слоя dataScramblingIdentityPUSCH

  • PUCCH скачкообразно двигающаяся идентичность для форматов 0/1/3/4. Используйте пустой ([]), чтобы использовать идентичность ячейки физического уровня. Значение используется в генерации последовательности в формате 0, и последовательность и генерация DM-RS для формата 1 и только для генерации DM-RS для форматов 3 и 4

  • NID скремблирования DM-RS для формата 2 PUCCH. Это находится в области значений от 0 до 65 535. Используйте пустой ([]), чтобы использовать идентичность ячейки физического уровня

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

  • Задайте количество повторений паза для форматов 1,3,4 (2 или 4 или 8). Ни для какого повторения паза значение может быть задано как 1

  • Задайте частоту межпаза, скачкообразно двигающуюся для форматов 1,3,4 ('включил', 'отключенный'). Если это включено, и количество повторений паза - больше чем один, то скачкообразное движение частоты внутрипаза отключено

  • Задайте максимальный уровень кода. Номинальная стоимость является одним из набора {0.08, 0.15, 0.25, 0.35, 0.45, 0.6, 0.8}

% Dedicated resource parameters
pucch(1).DedicatedResource = 1;             % Enable/disable the dedicated resource configuration (1/0)
% Provide the resource index value when dedicated resource is disabled. The
% PUCCH resource is configured based on the resource index value, as per
% the table 9.2.1-1 of Section 9.2.1, TS 38.213.
pucch(1).ResourceIndex = 0;                 % Resource index for PUCCH dedicated resource (0...15)

% When dedicated resource is enabled or when the dedicated resource is
% disabled with the cyclic prefix of BWP transmitting PUCCH is extended,
% the resource index value is ignored and the parameters specified below
% for the resource and format configurations are considered.

% Resource parameters
pucch(1).StartPRB = 0;                      % Index of first PRB prior to frequency hopping or for no frequency hopping
pucch(1).SecondHopPRB = 1;                  % Index of first PRB after frequency hopping
pucch(1).IntraSlotFreqHopping = 'enabled';  % Indication for intra-slot frequency hopping ('enabled','disabled')
pucch(1).GroupHopping = 'enable';           % Group hopping configuration ('enable','disable','neither')

% Format specific parameters
pucch(1).PUCCHFormat = 3;                   % PUCCH format 0/1/2/3/4
pucch(1).StartSymbol = 3;                   % Starting symbol index
pucch(1).NrOfSymbols = 11;                  % Number of OFDM symbols allocated for PUCCH
pucch(1).InitialCS = 3;                     % Initial cyclic shift for format 0 and 1
pucch(1).OCCI = 0;                          % Orthogonal cover code index for format 1 and 4
pucch(1).Modulation = 'QPSK';               % Modulation for format 3/4 ('pi/2-BPSK','QPSK')
pucch(1).NrOfRB = 9;                        % Number of resource blocks for format 2/3
pucch(1).SpreadingFactor = 4;               % Spreading factor for format 4, value is either 2 or 4
pucch(1).AdditionalDMRS = 1;                % Additional DM-RS (0/1) for format 3/4

% Scrambling identities of PUCCH and PUCCH DM-RS
pucch(1).RNTI = 0;                          % RNTI (0...65535) for formats 2/3/4
pucch(1).NID = 1;                           % PUCCH scrambling identity (0...1023) for formats 2/3/4
pucch(1).HoppingId = 1;                     % PUCCH hopping identity (0...1023) for formats 0/1/3/4
pucch(1).NIDDMRS = 1;                       % DM-RS scrambling identity (0...65535) for PUCCH format 2

% Multi-slot configuration parameters
pucch(1).NrOfSlots = 1;                     % Number of slots for PUCCH repetition (1/2/4/8). One for no repetition
pucch(1).InterSlotFreqHopping = 'disabled'; % Indication for inter-slot frequency hopping ('enabled','disabled'), used in PUCCH repetition

% Code rate - This parameter is used when there is multiplexing of UCI part
% 1 (HARQ-ACK, SR, CSI part 1) and UCI part 2 (CSI part 2) to get the rate
% matching lengths of each UCI part
pucch(1).MaxCodeRate = 0.15;                % Maximum code rate (0.08, 0.15, 0.25, 0.35, 0.45, 0.6, 0.8)

Настройка полезной нагрузки UCI

Сконфигурируйте полезную нагрузку UCI на основе настройки формата

  • Включите или отключите UCI, кодирующий для форматов 2/3/4

  • Количество битов HARQ-ACK. Для форматов 0 и 1 значение может быть самое большее 2. Установите значение к 0 ни для какой передачи HARQ-ACK

  • Количество битов SR. Для форматов 0 и 1 значение может быть самое большее 1. Установите значение к 0 ни для какой передачи SR

  • Количество части CSI 1 бит для форматов 2/3/4. Установите значение к 0 ни для какой передачи части 1 CSI

  • Количество части CSI 2 бита для форматов 3/4. Установите значение к 0 ни для какой передачи части 2 CSI. Значение проигнорировано, когда нет никакой части CSI 1 бита

Обратите внимание на то, что генератор в примере передает информацию UCI о PUSCH каждый раз, когда существует перекрытие между PUCCH и PUSCH для определенного RNTI в BWP. Параметры, которые будут сконфигурированы для передачи UCI на PUSCH, обеспечиваются в разделе UCI по PUSCH. Это требует, чтобы длины UCI и UL-SCH были переданы на PUSCH.

pucch(1).EnableCoding = 1;                  % Enable UCI coding
pucch(1).LenACK = 5;                        % Number of HARQ-ACK bits
pucch(1).LenSR = 5;                         % Number of SR bits
pucch(1).LenCSI1 = 10;                      % Number of CSI part 1 bits (for formats 2/3/4)
pucch(1).LenCSI2 = 10;                      % Number of CSI part 2 bits (for formats 3/4)

pucch(1).DataSource = 'PN9';                % UCI data source

% UCI message data source. You can use one of the following standard PN
% sequences: 'PN9-ITU', 'PN9', 'PN11', 'PN15', 'PN23'. The seed for the
% generator can be specified using a cell array in the form |{'PN9',seed}|.
% If no seed is specified, the generator is initialized with all ones

Определение нескольких экземпляров PUCCH

Второй экземпляр последовательности PUCCH задан затем с помощью второго BWP.

% PUCCH sequence instance specific to second BWP
pucch(2) = pucch(1);
pucch(2).BWP = 2;
pucch(2).StartSymbol = 10;
pucch(2).NrOfSymbols = 2;
pucch(2).PUCCHFormat = 2;
pucch(2).AllocatedSlots = 0:2;
pucch(2).AllocatedPeriod = [];
pucch(2).RNTI = 10;

Настройка экземпляров PUSCH

Этот раздел задает набор экземпляров PUSCH в форме волны с помощью массива структур. Этот пример задает два экземпляра последовательности PUSCH.

Общие параметры

Следующие параметры устанавливаются для каждого экземпляра:

  • Позвольте/запретите эту последовательность PUSCH

  • Задайте BWP, с которым сопоставляет этот PUSCH. PUSCH будет использовать SCS, заданный в этом BWP

  • Степень, масштабирующаяся в дБ

  • Позвольте/запретите транспортное кодирование UL-SCH

  • Скремблирование идентичности (NID) для битов PUSCH. Это находится в области значений от 0 до 1 023. Используйте пустой ([]), чтобы использовать идентичность ячейки физического уровня

  • RNTI

  • Преобразуйте предварительное кодирование (0,1). Значение 1, включает предварительное кодирование преобразования, и результирующей формой волны является DFT-s-OFDM. Когда значение 0, результирующей формой волны является CP-OFDM

  • Целевой уровень кода раньше вычислял транспортные размеры блока.

  • Служебный параметр. Это используется, чтобы вычислить длину транспортного размера блока. Это - один из набора {0, 6, 12, 18}

  • Схема Transmission ('книга шифров', 'некнига шифров'). Когда схема передачи является 'книгой шифров', предварительное кодирование MIMO включено, и матрица перед кодированием выбрана на основе количества слоев, количества портов антенны и переданного предварительно кодирующего матричного индикатора. Когда передача установлена в 'некнигу шифров', единичная матрица используется, не ведя ни к какому предварительному кодированию MIMO

  • Схема Modulation ('pi/2-BPSK', 'QPSK', '16QAM', '64QAM', '256QAM'). Номинально, схема модуляции 'pi/2-BPSK' используется, когда преобразовывают предварительное кодирование, включен

  • Количество слоев (1... 4). Количество слоев ограничивается максимумом 4 в восходящем канале, когда существует только одна передача кодовой комбинации. Номинально, номер слоев определяется к 1, когда преобразовывают предварительное кодирование, включен

  • Количество портов антенны (1,2,4). Это используется, когда передача книги шифров включена. Количество портов антенны должно быть больше или быть равно количеству слоев

  • Переданный предварительно кодирующий матричный индикатор (0... 27). Это зависит от количества слоев и количества портов антенны

  • Последовательность версии сокращения (RV)

  • Скачкообразное движение частоты внутрипаза ('включил', 'отключенный'),

  • Блок ресурса возмещен для второго транзитного участка. Это используется, когда частота (Внутрипаз/Межпаз) скачкообразное движение включена

  • Скачкообразное движение частоты межпаза ('включил', 'отключенный'). Если это включено, скачкообразное движение частоты внутрипаза отключено, стартовая позиция блока ресурса в выделенном PRB PUSCH в части пропускной способности зависит от, является ли паз четным или нечетным

  • Транспортный источник данных блока. Можно использовать одну из следующих стандартных псевдошумовых последовательностей: 'PN9-ITU', 'PN9', 'PN11', 'PN15', 'PN23'. Seed для генератора может быть задан с помощью массива ячеек в форме {'PN9', seed}. Если никакой seed не задан, генератор инициализируется со всеми единицами

pusch = [];
pusch(1).Enable = 1;                        % Enable PUSCH config
pusch(1).BWP = 1;                           % Bandwidth part
pusch(1).Power = 0;                         % Power scaling in dB
pusch(1).EnableCoding = 1;                  % Enable the UL-SCH transport coding
pusch(1).NID = 1;                           % Scrambling for data part (0...1023)
pusch(1).RNTI = 0;                          % RNTI
pusch(1).TransformPrecoding = 0;            % Transform precoding flag (0 or 1)
pusch(1).TargetCodeRate = 0.47;             % Code rate used to calculate transport block sizes
pusch(1).Xoh_PUSCH = 0;                     % Overhead. It is one of the set {0,6,12,18}

% Transmission settings
pusch(1).TxScheme = 'codebook';             % Transmission scheme ('codebook','nonCodebook')
pusch(1).Modulation = 'QPSK';               % 'pi/2-BPSK','QPSK','16QAM','64QAM','256QAM'
pusch(1).NLayers = 2;                       % Number of PUSCH layers (1...4)
pusch(1).NAntennaPorts = 4;                 % Number of antenna ports (1,2,4). It must not be less than number of layers
pusch(1).TPMI = 0;                          % Transmitted precoding matrix indicator (0...27)
pusch(1).RVSequence = [0 2 3 1];            % RV sequence to be applied cyclically across the PUSCH allocation sequence
pusch(1).IntraSlotFreqHopping = 'disabled'; % Intra-slot frequency hopping ('enabled','disabled')
pusch(1).RBOffset = 10;                     % Resource block offset for second hop

% Multi-slot transmission
pusch(1).InterSlotFreqHopping = 'enabled';  % Inter-slot frequency hopping ('enabled','disabled')

% Data source
pusch(1).DataSource = 'PN9';                % Transport block data source

Выделение

Можно установить следующие параметры, чтобы управлять выделением PUSCH.

  • PUSCH, сопоставляющий тип. Это может быть или или 'B'.

  • Символы в пазе, где PUSCH сопоставлен с. Это должно быть непрерывное выделение. Для PUSCH, сопоставляющего тип, начальный символ в пазе должен быть нулем, и длина может быть от 4 до 14 (для нормального CP) и до 12 (для расширенного CP). Для PUSCH отображение типа 'B' начальный символ может быть от любого символа в пазе

  • Пазы в системе координат используются в PUSCH

  • Период выделения в пазах. Если это пусто, это не указывает ни на какое повторение

  • Выделенные PRBs относительно BWP

pusch(1).PUSCHMappingType = 'A';        % PUSCH mapping type ('A'(slot-wise),'B'(non slot-wise))
pusch(1).AllocatedSymbols = 0:13;       % Range of symbols in a slot
pusch(1).AllocatedSlots = [0 1];        % Allocated slots indices
pusch(1).AllocatedPeriod = 5;           % Allocation period in slots (empty implies no repetition)
pusch(1).AllocatedPRB = 0:10;           % PRB allocation

Настройка DM-RS

Установите параметры DM-RS

% DM-RS configuration (TS 38.211 section 6.4.1.1)
pusch(1).DMRSConfigurationType = 1;    % DM-RS configuration type (1,2)
pusch(1).NumCDMGroupsWithoutData = 2;  % Number of DM-RS CDM groups without data. The value can be one of the set {1,2,3}
pusch(1).PortSet = [0 2];              % DM-RS ports to use for the layers. The number of ports must be same as the number of layers
pusch(1).DMRSTypeAPosition = 2;        % Mapping type A only. First DM-RS symbol position (2,3)
pusch(1).DMRSLength = 1;               % Number of front-loaded DM-RS symbols (1(single symbol),2(double symbol))
pusch(1).DMRSAdditionalPosition = 2;   % Additional DM-RS symbol positions (max range 0...3)
pusch(1).NIDNSCID = 1;                 % Scrambling identity for CP-OFDM (0...65535). Use empty ([]) to use physical layer cell identity
pusch(1).NSCID = 0;                    % Scrambling initialization for CP-OFDM (0,1)
pusch(1).NRSID = 0;                    % Scrambling identity for DFT-s-OFDM DM-RS (0...1007). Use empty ([]) to use physical layer cell identity
pusch(1).PowerDMRS = 0;                % Additional power boosting in dB
pusch(1).GroupHopping = 'enable';      % {'enable','disable','neither'}. This parameter is used only when transform precoding is enabled

Параметр GroupHopping используется в генерации последовательности DM-RS, когда преобразовывают предварительное кодирование, включен. Это может быть установлено в

  • 'включите', чтобы указать на присутствие скачкообразного движения группы. Это сконфигурировано параметром более высокого слоя sequenceGroupHopping

  • 'отключите', чтобы указать на присутствие скачкообразного движения последовательности. Это сконфигурировано параметром более высокого слоя sequenceHopping

  • 'ни один', чтобы указать и на скачкообразное движение группы и на скачкообразное движение последовательности не присутствует

Примечание: количество групп DM-RS CDM без данных зависит от типа настройки. Максимальное количество групп DM-RS CDM может быть 2 для типа 1 настройки DM-RS, и это может быть 3 для типа 2 настройки DM-RS.

Настройка PT-RS

Установите параметры PT-RS

% PT-RS configuration (TS 38.211 section 6.4.1.2)
pusch(1).EnablePTRS = 0;            % Enable or disable the PT-RS (1 or 0)
pusch(1).PTRSTimeDensity = 1;       % Time density (L_PT-RS) of PT-RS (1,2,4)
pusch(1).PTRSFrequencyDensity = 2;  % Frequency density (K_PT-RS) of PT-RS for CP-OFDM (2,4)
pusch(1).PTRSNumSamples = 2;        % Number of PT-RS samples (NGroupSamp) for DFT-s-OFDM (2,4)
pusch(1).PTRSNumGroups = 2;         % Number of PT-RS groups (NPTRSGroup) for DFT-s-OFDM (2,4,8)
pusch(1).PTRSREOffset = '00';       % PT-RS resource element offset for CP-OFDM ('00','01','10','11')
pusch(1).PTRSPortSet = 0;           % PT-RS antenna ports must be a subset of DM-RS ports for CP-OFDM
pusch(1).PTRSNID = 0;               % PT-RS scrambling identity for DFT-s-OFDM (0...1007)
pusch(1).PowerPTRS = 0;             % Additional PT-RS power boosting in dB for CP-OFDM

% When PT-RS is enabled for CP-OFDM, the DM-RS ports must be in range from
% 0 to 3 for DM-RS configuration type 1, and in the range from 0 to 5 for
% DM-RS configuration type 2.
% When PT-RS is enabled for DFT-s-OFDM and the number of PT-RS groups is
% set to 8, the number of PT-RS samples must be set to 4.

UCI на PUSCH

Следующие параметры должны быть установлены, чтобы передать UCI на PUSCH в перекрывающихся пазах:

  • Отключите передачу UL-SCH на перекрывающихся пазах PUSCH (1/0). Когда установлено в 1, передача UL-SCH отключена на PUSCH. Пример полагает, что существует передача UL-SCH все время на PUSCH. Условие предоставлено, чтобы отключить передачу UL-SCH на перекрывающихся пазах PUSCH и PUCCH

  • BetaOffsetACK, BetaOffsetCSI1 и BetaOffsetCSI2 может быть установлен от табличного 9.3-1, 9.3-2 TS 38.213 Раздела 9.3

  • ScalingFactor обеспечивается более высоким параметром слоя scaling, согласно TS 38.212, Раздел 6.3.2.4. Возможное значение является одним из набора {0.5, 0.65, 0.8, 1}. Это используется, чтобы ограничить количество элементов ресурса, присвоенных UCI на PUSCH

pusch(1).DisableULSCH = 1;             % Disable UL-SCH on overlapping slots of PUSCH and PUCCH
pusch(1).BetaOffsetACK = 1;            % Power factor of HARQ-ACK
pusch(1).BetaOffsetCSI1 = 2;           % Power factor of CSI part 1
pusch(1).BetaOffsetCSI2 = 2;           % Power factor of CSI part 2
pusch(1).ScalingFactor = 1;            % Scaling factor (0.5, 0.65, 0.8, 1)

Определение нескольких экземпляров PUSCH

Второй экземпляр последовательности PUSCH задан затем с помощью второго BWP.

pusch(2) = pusch(1);
pusch(2).Enable = 1;
pusch(2).BWP = 2;
pusch(2).AllocatedSymbols = 0:11;
pusch(2).AllocatedSlots = [5 6 7 8];
pusch(2).AllocatedPRB = 5:10;
pusch(2).AllocatedPeriod = 10;
pusch(2).TransformPrecoding = 1;
pusch(2).IntraSlotFreqHopping = 'disabled';
pusch(2).GroupHopping = 'neither';
pusch(2).NLayers = 1;
pusch(2).PortSet = 1;
pusch(2).RNTI = 0;

Настройка экземпляров SRS

Этот раздел задает параметры для набора экземпляров SRS в форме волны. Каждый элемент в массиве структур задает экземпляр последовательности SRS. Этот пример задает два экземпляра последовательности SRS, которые отключены. Следующие параметры могут быть установлены:

  • Позвольте/Запретите эту последовательность SRS

  • BWP перенос SRS

  • Количество портов антенны SRS (1,2,4).

  • Количество символов OFDM выделяется для передачи SRS (1,2,4)

  • Запуск символа OFDM передачи SRS в пазе. Это должно быть (8... 13) для нормального CP и (6... 11) для расширенного CP

  • Пазы в период используются в передаче SRS

  • Периодичность выделения. Используйте пустой, чтобы не указать ни на какое повторение

  • Стартовая позиция последовательности SRS в BWP в RBS

  • Дополнительная частота возмещена от стартовой позиции в блоках 4-PRB

  • Пропускная способность и настройка скачкообразного движения частоты. Занимаемая полоса зависит от параметров CSRS, BSRS, и BHop. Установите BHop < BSRS включить скачкообразное движение частоты.

  • Расческа передачи, чтобы задать плотность частоты SRS в поднесущих (2,4)

  • Смещение передачи расчесывает в поднесущих

  • Циклический сдвиг, вращающий низкую-PAPR последовательность оснований. Максимальное количество циклических сдвигов, 8 или 12, зависит от номера расчески передачи, 2 или 4. Для 4 портов антенны SRS набор поднесущей, выделенный SRS в первых и третьих портах антенны, зависит от циклического сдвига.

  • Количество повторных символов SRS в пазе. Это отключает частоту, скачкообразно двигающуюся в блоках Repetition символы. Установите Repetition = 1 ни для какого повторения.

  • Группа или скачкообразное движение последовательности. Это может быть 'Neither', 'GroupHopping' или 'SequenceHopping'

  • Скремблирование идентичности. Это инициализирует псевдослучайную двоичную последовательность, когда группе или скачкообразному движению последовательности включают.

srs = struct();
srs(1).Enable = 0;                  % Enable SRS config
srs(1).BWP = 1;                     % BWP Index
srs(1).NumSRSPorts = 1;             % Number of SRS ports (1,2,4)
srs(1).NumSRSSymbols = 4;           % Number of SRS symbols in a slot (1,2,4)
srs(1).SymbolStart = 10;            % Time-domain position of the SRS in the slot. (8...13) for normal CP and (6...11) for extended CP
srs(1).AllocatedSlots = 2;          % Allocated slots indices
srs(1).AllocatedPeriod = 5;         % Allocation period in slots (empty implies no repetition)
srs(1).FreqStart = 0;               % Frequency position of the SRS in BWP in RBs
srs(1).NRRC = 0;                    % Additional offset from FreqStart specified in blocks of 4 PRBs (0...67)
srs(1).CSRS = 13;                   % Bandwidth configuration C_SRS (0...63). It controls the allocated bandwidth to the SRS
srs(1).BSRS = 2;                    % Bandwidth configuration B_SRS (0...3). It controls the allocated bandwidth to the SRS
srs(1).BHop = 1;                    % Frequency hopping configuration (0...3). Set BHop < BSRS to enable frequency hopping
srs(1).KTC = 2;                     % Comb number (2,4). It indicates the allocation of the SRS every KTC subcarriers
srs(1).KBarTC = 0;                  % Subcarrier offset of the SRS sequence (0...KTC-1)
srs(1).CyclicShift = 0;             % Cyclic shift number (0...NCSmax-1). NCSmax = 8 for KTC = 2 and NCSmax = 12 for KTC = 4.
srs(1).Repetition = 1;              % Repetition factor (1,2,4). It indicates the number of equal consecutive SRS symbols in a slot
srs(1).GroupSeqHopping = 'neither'; % Group or sequence hopping ('Neither', 'GroupHopping', 'GequenceHopping')
srs(1).NSRSID = 0;                  % Scrambling identity (0...1023)

Определение нескольких экземпляров SRS

Второй экземпляр последовательности SRS задан затем с помощью второго BWP.

srs(2) = srs(1);
srs(2).Enable = 0;
srs(2).BWP = 2;
srs(2).NumSRSSymbols = 2;
srs(2).SymbolStart = 12;
srs(2).AllocatedSlots = [5 6 7 8];
srs(2).AllocatedPeriod = 10;
srs(2).BSRS = 0;
srs(2).BHop = 0;

Генерация сигналов

Этот раздел собирает все параметры в настройку поставщика услуг и генерирует форму волны.

% Collect together channel oriented parameter sets into a single
% configuration
waveconfig.Carriers = carriers;
waveconfig.BWP = bwp;
waveconfig.PUCCH = pucch;
waveconfig.PUSCH = pusch;
waveconfig.SRS = srs;

% Generate complex baseband waveform
[waveform,bwpset] = hNRUplinkWaveformGenerator(waveconfig);

Генератор формы волны также строит выравнивание поставщика услуг SCS и сетки ресурса для частей пропускной способности (этим управляет поле DisplayGrids в настройке поставщика услуг). Следующие графики сгенерированы:

  • Сетка ресурса, показывающая местоположение компонентов (PUCCH, PUSCH и SRS) в каждом BWP. Это не строит степень сигналов, только их местоположение в сетке

  • Принципиальная схема выравнивания поставщика услуг SCS со связанными защитными полосами

  • Сгенерированная форма волны в частотном диапазоне для каждого BWP. Это включает PUCCH, PUSCH и экземпляры SRS

Функция генератора формы волны возвращает форму волны области времени и массив структур bwpset, который содержит следующие поля:

  • Сетка ресурса, соответствующая этому BWP

  • Сетка ресурса полной пропускной способности, содержащей каналы и сигналы в этом BWP

  • Информационная структура с информацией, соответствующей BWP. Содержимое этой информационной структуры для первого BWP показывают ниже:

disp('Information associated to BWP 1:')
disp(bwpset(1).Info)
Information associated to BWP 1:
           SamplingRate: 61440000
                   Nfft: 4096
              Windowing: 10
    CyclicPrefixLengths: [1x14 double]
          SymbolLengths: [1x14 double]
           NSubcarriers: 3240
      SubcarrierSpacing: 15
         SymbolsPerSlot: 14
       SlotsPerSubframe: 1
     SymbolsPerSubframe: 14
     SamplesPerSubframe: 61440
         SubframePeriod: 1.0000e-03
              Midpoints: [1x141 double]
          WindowOverlap: [10 10 10 10 10 10 10 10 10 10 10 10 10 10]
                     k0: 0

Обратите внимание на то, что сгенерированная сетка ресурса является 3D матрицей, где различные плоскости представляют порты антенны. Для различных физических каналов и сигналов самый низкий порт сопоставлен с первой плоскостью сетки.

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

Функции

Похожие темы