lteNPUSCH

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

Описание

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

пример

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

Примеры

свернуть все

Сгенерировать символы NPUSCH на основе слота за слотом для передачи пакета, содержащего один ресурсный модуль, 16 пазы и два повторения кодового слова.

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

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

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

chs = struct('NPUSCHFormat','Data','NRUsc',1,'NRep',2,'NBULSubcarrierSet',17, ...
    'NRU',1,'NULSlots',16,'Modulation','BPSK','RNTI',0);

Сгенерируйте кодовое слово бит.

[~,info] = lteNPUSCHIndices(ue,chs);
cwLen = info.G;
cw = ones(cwLen,1);

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

stateIn = struct();

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

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

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

disp(stateOut.EndOfTx)
   1

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

свернуть все

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

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

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

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

char, string
NSlotНеотрицательное целое числоНомер пазdouble
NFrame0 (по умолчанию), неотрицательное целое числоНомер система координат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
Modulation'BPSK', 'QPSK'

Тип модуляции

Чтобы включить двоичную фазовую манипуляцию (BPSK), задайте это поле следующим 'BPSK'. Чтобы включить квадратурную фазовую манипуляцию (QPSK), задайте это поле следующим 'QPSK'.

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

char, string
RNTIНеотрицательное целое числоЗначение временного идентификатора радиосети (RNTI)double

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

Кодовое слово битовых значений, заданное как двоичный вектор-столбец. Длина этого входа должна быть целым числом, кратным:

  • chs.NRU x chs.NULSlots x chs.NRUsc когда вы задаете Modulation поле chs введите как 'BPSK'

  • 2 х chs.NRU x chs.NULSlots x chs.NRUsc когда вы задаете Modulation поле chs введите как 'QPSK'

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

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

ОбластьЗначенияОписаниеТипы данных
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

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

свернуть все

Символы 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