exponenta event banner

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 x 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 input, функция возвращает это поле как 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 вход. stateOut выходной сигнал представляет первую передачу транспортного блока.

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

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

Ссылки

[1] 3GPP TS 36.211. «Физические каналы и модуляция». Проект партнерства 3-го поколения; техническая спецификация на сеть радиодоступа группы; Усовершенствованный универсальный наземный радиодоступа (E-UTRA). https://www.3gpp.org.

[2] 3GPP TS 36.321. «Спецификация протокола управления доступом к среде (MAC)». Проект партнерства 3-го поколения; техническая спецификация на сеть радиодоступа группы; Усовершенствованный универсальный наземный радиодоступа (E-UTRA). https://www.3gpp.org.

Представлен в R2020a