Этот пример реализует 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
Задайте 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
Задайте 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, когда преобразовывают предварительное кодирование, включен. Это значение проигнорировано, когда поле PortSet задано
Количество портов антенны (1,2,4). Это используется, когда передача книги шифров включена. Количество портов антенны должно быть больше или быть равно количеству сконфигурированных портов DM-RS
Переданный предварительно кодирующий матричный индикатор (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 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, когда преобразовывают предварительное кодирование, включен. Это может быть установлено в
'включите', чтобы указать на присутствие скачкообразного движения группы. Это сконфигурировано параметром более высокого слоя 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
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', '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 матрицей, где различные плоскости представляют порты антенны. Для различных физических каналов и сигналов самый низкий порт сопоставлен с первой плоскостью сетки.