Этот пример реализует 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
Укажите 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
Укажите 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
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, где различные плоскости представляют порты антенны. Для различных физических каналов и сигналов самый нижний порт сопоставлен с первой плоскостью сетки.