Этот пример осуществляет 5G НОМЕР канала восходящей связи с векторным использованием генератора формы волны PUCCH 5G Toolbox™, чтобы создать форму волны перевозчика компонента основной полосы частот.
Этот пример показывает, как параметризовать и произвести 5G форма волны канала восходящей связи New Radio (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, включая CG-UCI Выпуска 16 и SRS для расположения, видит 5G НОМЕР Векторного примера Поколения Формы волны Канала восходящей связи.
В этом разделе задается интервал между поднесущими (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) и полосу пропускания. SubcarrierSpacing параметр отображает BWP на одну из определенных ранее несущих SCS. 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»)
Конфигурация скачкообразной перестройки группы («ни», «включить», «отключить»)
и необходимо предоставить следующие параметры, специфичные для формата:
Конфигурирование формата PUCCH в ресурсе (0... 4)
Начальный индекс символа, назначенный для передачи PUCCH
Количество символов OFDM, выделенных для передачи PUCCH. Для форматов 1, 3 и 4 PUCCH количество выделенных символов 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 для формата 2 PUCCH. Он находится в диапазоне от 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
Количество битов компонента CSI 1 для форматов 2/3/4. Установите значение 0 для отсутствия передачи компонента 1 CSI
Количество 2 битов компонента CSI для форматов 3/4. Установите значение 0 для отсутствия передачи компонента 2 CSI. Значение игнорируется при отсутствии битов компонента 1 CSI
Отметим, что генератор в примере передает информацию 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}
Схема передачи («codebook», «non Codebook»). Когда схемой передачи является «кодовая книга», предварительное кодирование MIMO разрешено, и матрица предварительного кодирования выбирается на основе количества уровней, количества антенных портов и индикатора переданной матрицы предварительного кодирования. Когда передача установлена на «non Codebook», используется единичная матрица, что приводит к отсутствию предварительного кодирования MIMO.
Схема модуляции («pi/2-BPSK», «QPSK», «16QAM», «64QAM», «256 QAM»). Номинально, схема модуляции «pi/2-BPSK» используется, когда предварительное кодирование преобразования разрешено
Количество слоев (1... 4). Количество уровней ограничено максимум 4 в восходящей линии связи, поскольку существует только одна передача кодового слова. Номинально число уровней устанавливается равным 1, когда предварительное кодирование преобразования разрешено. Это значение игнорируется, если указано поле PortSet
Количество антенных портов (1,2,4). Используется, когда передача кодовой книги активизирована. Количество антенных портов должно быть больше или равно количеству сконфигурированных портов DM-RS
Переданный индикатор матрицы предварительного кодирования (0... 27). Это зависит от количества уровней и количества антенных портов
Последовательность версий резервирования (RV)
Скачкообразная перестройка частоты внутри слота («enabled», «disabled»)
Смещение блока ресурсов для второго транзитного участка. Используется при активизации скачкообразной перестройки частоты (внутри слота/между слотами).
Скачкообразная перестройка частоты между слотами («enabled», «disabled»). Если это разрешено, скачкообразная перестройка частоты внутри слота отключена, начальная позиция блока ресурсов в выделенном PRB PUSCH в части полосы пропускания зависит от того, является ли слот четным или нечетным.
Источник данных транспортного блока. Можно использовать одну из следующих стандартных PN последовательностей: 'PN9-ITU', 'PN9', 'PN11', 'PN15', 'PN23'. Начальное значение для генератора можно задать с помощью массива ячеек в форме {'PN9', 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. Это должно быть непрерывное распределение. Для типа отображения «A» PUSCH начальный символ в слоте должен быть равен нулю, а длина может быть от 4 до 14 (для нормального CP) и до 12 (для расширенного CP). Для типа отображения «B» PUSCH начальный символ может быть из любого символа в слоте.
Слоты в полке, используемой для 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
'neyther', чтобы указать, что и групповая скачкообразная перестройка, и скачкообразная перестройка последовательности отсутствуют
Примечание.Количество групп CDM DM-RS без данных зависит от типа конфигурации. Максимальное количество групп CDM DM-RS может составлять 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, согласно ТУ 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) для нормальных ПУ и (6... 11) для расширенных ПУ
Слоты в пределах периода, используемого для передачи 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 матрицей, где различные плоскости представляют антенные порты. Для различных физических каналов и сигналов нижний порт отображается на первую плоскость сетки.