5G восходящий канал NR с PUCCH Вектора Генерации сигналов

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

Введение

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

  • PUSCH и связанные с ним DM-RS и PT-RS

  • PUCCH и связанный с ним DM-RS

  • SRS

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

Чтобы сгенерировать 5G сигнал восходящей линии связи с PUSCH или SRS, включая Release 16 CG-UCI и SRS для позиционирования, смотрите 5G пример генерации сигналов вектора восходящей линии связи NR.

Форма волны и Строения несущей

Этот раздел устанавливает специальные полосы пропускания несущей (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. Этот пример поддерживает использование нескольких BWP с использованием массива структур. Каждая запись в массиве представляет BWP. Для каждого BWP можно задать интервал между поднесущими (SCS), длину циклического префикса (CP) и ширину полосы пропускания. The SubcarrierSpacing параметр сопоставляет BWP с одной из определенных ранее несущих SCS. The RBOffset параметр управляет местоположением BWP в несущей. Это выражается в терминах нумерологии BWP. Различные BWP могут перекрываться друг с другом.

% 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. Если это отключено, он использует общий ресурс согласно ТС 38.213 Раздел 9.2.1

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

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

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

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

  • Внутрипозиционное строение скачкообразного изменения частоты ('enabled', 'disabled')

  • Строение скачкообразного изменения группы ('none', 'enable', 'disable')

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

  • Формат PUCCH, строение в ресурсе (0... 4)

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

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

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

  • Схема модуляции для форматов 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 до 65535

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

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

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

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

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

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

  • Задайте максимальную скорость кода. Номинальное значение является одним из наборов {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

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

  • Количество CSI, часть 2 биты для форматов 3/4. Установите значение 0, если нет передачи CSI часть 2. Значение игнорируется, когда нет части 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 до 1023. Используйте пустой ([]), чтобы использовать тождества камеры физического слоя

  • RNTI

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

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

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

  • Схема передачи ('cod Когда схема передачи является «кодовой книгой», разрешается предварительное кодирование MIMO и выбирается матрица предварительного кодирования на основе количества слоев, количества портов антенны и переданного индикатора матрицы предварительного кодирования. Когда для передачи задано значение 'nonCod, используются тождества матрица, что не приводит к предварительному кодированию MIMO

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

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

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

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

  • Последовательность версии избыточности (RV)

  • Внутрипозиционное скачкообразное изменение частоты ('enabled', 'disabled')

  • Смещение ресурсного блока для второго скачка. Используется при включении скачкообразного изменения частоты (интра-слот/интер-слот)

  • Перескок частоты между межпазами ('enabled', 'disabled'). Если это включено, перескок частоты внутри внутрипаза отключен, начальное положение ресурсного блока в выделенном 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. Это может быть либо 'A', либо 'B'.

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

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

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

  • Выделенные PRB относятся к 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 antenna ports to use for the layers, when field is specified
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, когда включено предварительное кодирование преобразования. Это может быть задано как

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

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

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

Примечание.Количество групп CDM DM-RS без данных зависит от типа строения. Максимальное количество групп CDM DM-RS может составлять 2 для типа строения 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 ТС 38.213 Раздел 9.3

  • ScalingFactor обеспечивается параметром более высокого слоя scaling, согласно ТУ 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 в RB

  • Дополнительное смещение частоты от начального положения в 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', 'sequenceHopping')
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:
                   Nfft: 4096
             SampleRate: 61440000
    CyclicPrefixLengths: [1x14 double]
          SymbolLengths: [1x14 double]
              Windowing: 144
           SymbolPhases: [0 0 0 0 0 0 0 0 0 0 0 0 0 0]
         SymbolsPerSlot: 14
       SlotsPerSubframe: 1
          SlotsPerFrame: 10
           NSubcarriers: 3240
      SubcarrierSpacing: 15
     SymbolsPerSubframe: 14
     SamplesPerSubframe: 61440
         SubframePeriod: 1.0000e-03
                     k0: 0
           SamplingRate: 61440000

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

См. также

Функции

Похожие темы