lteNPUSCHDRS

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

Описание

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

пример

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

Примеры

свернуть все

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

Сконфигурируйте настройки UE-specific.

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

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

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

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

stateIn  = struct();

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

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-specific в виде структуры, содержащей эти поля.

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

Расстояние между поднесущими восходящего канала NB-IoT

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

charСтрока
NSlotНеотрицательное целое число

Номер слота

double

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

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

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

Формат NPUSCH

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

charСтрока
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 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Строка
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

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

свернуть все

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

Типы данных: 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 входной параметр. stateOut выведите представляет первую передачу транспортного блока.

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

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

Ссылки

[1] 3GPP TS 36.211. “Физические каналы и модуляция”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group; Развитый Универсальный Наземный Радио-доступ (к E-UTRA). https://www.3gpp.org.

[2] 3GPP TS 36.321. “Спецификация протокола Среднего управления доступом (MAC)”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group; Развитый Универсальный Наземный Радио-доступ (к E-UTRA). https://www.3gpp.org.

Смотрите также

Функции

Введенный в R2020a