lteNPUSCHDRS

Сгенерируйте символы DRS NPUSCH

Описание

[sym,stateOut] = lteNPUSCHDRS(ue,chs) генерирует symВектор-столбец, содержащая символы опорного сигнала демодуляции (DRS) узкополосного физического восходящего канала (NPUSCH). Функция генерирует sym в соответствии с разделом 10.1.4 [1] для настройки пользовательского оборудования (UE) ue и строение канальной передачи chs. Функция также возвращается stateOutструктуру, содержащую состояние энкодера для передачи пакета.

пример

[sym,stateOut] = lteNPUSCHDRS(ue,chs,stateIn) задает stateIn, начальное состояние энкодера.

Примеры

свернуть все

Сгенерируйте символы DRS NPUSCH для однотонального канала данных.

Настройте параметры UE.

ue = struct('NNCellID',0,'NBULSubcarrierSpacing','15kHz');

Задайте строение передачи по каналу.

chs = struct('NPUSCHFormat','Data','NRep',2,'NRU',1,'NRUsc',1, ...
    'NULSlots',16,'SeqGroupHopping','On','SeqGroup',0);

Задайте начальное состояние энкодера как пустую структуру, указывающую на начало пакета.

stateIn  = struct();

Сгенерируйте символы DRS NPUSCH.

for SlotIdx = 0:(chs.NRep*chs.NRU*chs.NULSlots-1)
    ue.NSlot = SlotIdx;
    [sym,stateOut] = lteNPUSCHDRS(ue,chs,stateIn);
    stateIn = stateOut;
end

Подтверждение того, что коробка передач достигает конца пучка.

disp(stateOut.EndOfTx)
   1

Входные параметры

свернуть все

Специфичные для UE настройки, заданные как структура, содержащая эти поля.

ОбластьЗначенияОписаниеТипы данных
NNCellIDЦелое число в интервале [0, 503]Узкополосные тождества камеры физического слоя (PCI)double
NFrame0 (по умолчанию), неотрицательное целое числоНомер система координатdouble
NBULSubcarrierSpacing'3.75kHz', '15kHz'

Интервал между поднесущими восходящей линии NB-IoT

Чтобы задать интервал между поднесущими 3,75 кГц, задайте это поле следующим '3.75kHz'. Чтобы задать интервал между поднесущими 15 кГц, задайте это поле следующим '15kHz'.

char, string
NSlotНеотрицательное целое число

Номер паз

double

Типы данных: struct

Строение передачи по каналу, заданная как структура, содержащая эти поля.

ОбластьЗначенияОписаниеТипы данных
NPUSCHFormat'Data', 'Control'

Формат NPUSCH

Чтобы указать, что NPUSCH содержит узкополосные данные общего канала восходящей линии связи (UL-SCH), задайте это поле следующим 'Data'. Чтобы указать, что NPUSCH несет управляющую информацию восходящего канала, задайте это поле следующим 'Control'.

char, string
NRUsc1, 3, 6, 12

Количество последовательных поднесущих в ресурсном модуле (RU)

Если вы задаете NPUSCHFormat поле как 'Control' или NBULSubcarrierSpacing поле ue введите как '3.75kHz', затем вы должны задать это поле следующим 1 .

double
NRep1, 2, 4, 8, 16, 32, 64, 128Количество повторений для кодового словаdouble
NRU1, 2, 3, 4, 5, 6, 8, 10Количество RUdouble
NULSlots2, 4, 8, 16

Количество пазов на RU

Если вы задаете NPUSCHFormat поле как 'Control', затем вы должны задать это поле следующим 4.

Если вы задаете NPUSCHFormat поле как 'Data', затем вы должны задать это поле как:

  • 16 когда вы задаете NRUsc поле как 1

  • 8 когда вы задаете NRUsc поле как 3

  • 4 когда вы задаете NRUsc поле как 6

  • 2 когда вы задаете NRUsc поле как 12

double
BaseSeqIdx

Целое число в интервале [0, 29]

Значение по умолчанию зависит от значения NRUsc область

Индекс базовой последовательности NPUSCH Multitone DRS

  • Когда вы задаете NRUsc поле как 3, задайте это поле как целое число в интервале [0, 11]. Если вы не задаете это поле, функция устанавливает его на значение mod(ue.NNCellID,12).

  • Когда вы задаете NRUsc поле как 6, задайте это поле как целое число в интервале [0, 13]. Если вы не задаете это поле, функция устанавливает его на значение mod(ue.NNCellID,14).

  • Когда вы задаете NRUsc поле как 12, задайте это поле как целое число в интервале [0, 29]. Если вы не задаете это поле, функция устанавливает его на значение mod(ue.NNCellID,30).

  • Когда вы задаете NRUsc поле как любое другое значение, функция не использует это поле.

Зависимости. Чтобы включить это поле, задайте NRUsc поле как 3, 6, или 12.

double
SeqGroupHopping'On' (по умолчанию), 'Off'Чтобы включить скачкообразное изменение группы последовательностей, задайте это поле следующим 'On'. Чтобы отключить скачкообразное изменение группы последовательности, задайте это поле следующим 'Off'. Для получения дополнительной информации см. раздел 5.5.1.3 документа [1].char, string
SeqGroup0 (по умолчанию), целое число в интервале [0, 29]

Назначение группы последовательностей для вычисления шаблона сдвига последовательности

Для получения дополнительной информации см. раздел 10.1.4.1.3 документа [1].

Зависимости. Чтобы включить это поле, задайте SeqGroupHopping поле как 'On'.

double
CyclicShift0 (по умолчанию), целое число в интервале [0, 3]

Циклический сдвиг

  • Когда вы задаете NRUsc поле как 3, задайте это поле как целое число в интервале [0, 2].

  • Когда вы задаете NRUsc поле как 6, задайте это поле как целое число в интервале [0, 3].

Зависимости. Чтобы включить это поле, задайте NRUsc поле как 3 или 6.

double

Типы данных: struct

Начальное состояние энкодера для передачи пакета, заданное как структура, содержащая эти поля.

ОбластьЗначенияОписаниеТипы данных
SlotIdxЦелое число в интервале [0, (chs.NRU x chs.NULSlots x chs.NRep) – 1]Индекс паза в пучке, в нулевой формеdouble
InitNSlotНеотрицательное целое числоНомер паза для инициализации последовательности скремблированияdouble
InitNFrameНеотрицательное целое числоНомер системы координат для инициализации скремблирующей последовательностиdouble
EndOfBlk1 или true, 0 или falseИндикатор конца транспортного блокаlogical
EndOfTx1 или true, 0 или falseКонец индикатора пучкаlogical
GhpNSlotНеотрицательное целое числоНомер паза для первого паза в RUdouble

Типы данных: struct

Выходные аргументы

свернуть все

Символы DRS NPUSCH, возвращаемые как комплексный вектор-столбец.

Типы данных: double
Поддержка комплексного числа: Да

Выход энкодера, возвращаемое как структура. Этот выход содержит внутреннее состояние каждого транспортного блока в этих полях.

ОбластьЗначенияОписаниеТипы данных
SlotIdxЦелое число в интервале [0, (chs.NRU x chs.NULSlots x chs.NRep) – 1]

Индекс паза в пучке, в нулевой форме

Функция возвращает это поле как SlotIdx поле stateIn вход увеличен на единицу. Когда SlotIdx поле stateIn вход достигает своего максимального значения, функция возвращает это поле следующим 0. Если вы не задаете SlotIdx поле stateIn вход, функция возвращает это поле следующим 0. Значение 0 указывает, что передача достигла конца пакета, который функция также указывает путем установки EndOfTx поле к 1.

double
InitNSlotНеотрицательное целое число

Номер паза для инициализации последовательности скремблирования

Когда обрабатываемый паз находится в точке инициализации, это поле равно NSlot поле ue вход. В противном случае функция возвращает это поле как одно из следующих значений.

  • Значение InitNSlot поле stateIn вход

  • Значение NSlot поле ue вводите, когда вы не задаете InitNSlot поле stateIn вход

double
InitNFrameНеотрицательное целое число

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

Когда обрабатываемая система координат находится в точке инициализации, это поле равно NFrame поле ue вход. В противном случае функция возвращает это поле как одно из следующих значений.

  • Значение InitNFrame поле stateIn вход

  • 0 если вы не задаете InitNFrame поле stateIn вход

double
EndOfBlk1, 0

Индикатор конца транспортного блока

Когда коробка передач достигает конца транспортного блока, функция возвращает это поле следующим 1.

В начале пакета функция сбрасывает это поле.

logical
EndOfTx1, 0

Конец индикатора пучка

Когда передача достигает конца пакета, функция возвращает это поле следующим 1. В противном случае функция возвращает это поле следующим 0.

В начале пакета функция сбрасывает это поле.

logical
GhpNSLotНеотрицательное целое число

Номер паза для первого паза в RU

Функция использует это поле только, когда вы задаете NPUSCHFormat поле как 'Data' и NRUsc поле как 1 в chs вход.

double

Типы данных: struct

Подробнее о

свернуть все

Связка

Пучок на уровне управления доступом к среде (MAC) относится к повторным передачам транспортного блока.

Для получения дополнительной информации см. раздел 5.3.2.1 документа [2].

Совет

Чтобы использовать эту функцию для передачи пакета, выполните следующие шаги.

  1. Вызовите функцию, опционально задав начальное состояние энкодера с помощью stateIn вход. The stateOut выход представляет первую передачу транспортного блока.

  2. Еще раз вызовите функцию, задав stateIn вход как stateOut выход, возвращенный предыдущим вызовом функции.

  3. Повторяйте шаг 2, пока функция не вернет EndOfTx поле stateOut выход как 1 (true), обозначающий конец пучка.

Ссылки

[1] 3GPP TS 36.211. «Физические каналы и модуляция». 3-ья Генерация проект партнерства; Группа технических спецификаций Radio Доступа Network; Evolved Universal Terrestrial Radio Access (E-UTRA). https://www.3gpp.org.

[2] 3GPP TS 36.321. «Протокол управления средним доступом (MAC) спецификации». 3rd Генерация Partnership Project; Группа технических спецификаций Radio Доступа Network; Evolved Universal Terrestrial Radio Access (E-UTRA). https://www.3gpp.org.

Введенный в R2020a