lteULFrameOffsetNPUSCH

Оцените смещение синхронизации NPUSCH DRS

Описание

[offset,corr] = lteULFrameOffsetNPUSCH(ue,chs,waveform) выполняет синхронизацию паза на waveform, входная форма волны временного интервала, при помощи узкополосного физического восходящего канала совместно использованный канал (NPUSCH) символы опорного сигнала демодуляции (DRS) для настроек ue оборудования пользователя (UE) и настройка передачи канала chs.

Функция возвращает offset, количество отсчетов между запуском waveform и выборка в waveform в котором начинаются символы NPUSCH DRS. Функция также возвращает corr, сигнал, что функциональное использование, чтобы вычислить offset.

Процесс оценки смещения включает эти шаги.

  1. Извлеките синхронизацию пиковой корреляции между waveform и внутренне сгенерированные ссылочные формы волны, содержащие символы NPUSCH DRS.

  2. Вычислите корреляцию для каждой антенны.

  3. Вычислите смещение для антенны с самой сильной корреляцией.

пример

[offset,corr] = lteULFrameOffsetNPUSCH(ue,chs,waveform,stateIn) задает stateIn, начальный энкодер утверждает для генерации символа NPUSCH DRS.

Примеры

свернуть все

Синхронизируйте и демодулируйте передачу, содержащую символы NPUSCH DRS.

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

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

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

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

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

grid = lteNBResourceGrid(ue);
grid(lteNPUSCHDRSIndices(ue,chs)) = lteNPUSCHDRS(ue,chs);

Сгенерируйте форму волны путем выполнения деления частоты одно несущей, несколько получают доступ (SC-FDMA) к модуляции на символах NPUSCH DRS.

txWaveform = lteSCFDMAModulate(ue,chs,grid);

Создайте принятую форму волны путем добавления задержки 11 выборок.

delay = 11;
waveform = [zeros(delay,1); txWaveform];

Укажите, что пустой энкодер утверждает и вычисляет смещение синхронизации в выборках. Подтвердите, что результат совпадает с добавленной задержкой.

stateIn = struct();
[offset,corr] = lteULFrameOffsetNPUSCH(ue,chs,waveform,stateIn);
disp(isequal(offset,delay))
   1

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

свернуть все

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

Поле ЗначенияОписаниеТипы данных
NBULSubcarrierSpacing'3.75kHz', '15kHz'

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

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

charСтрока
Windowing

Неотрицательный даже целое число

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

Количество выборок временного интервала, по которым функция применяет работу с окнами и наложение символов SC-FDMAdouble
NNCellIDЦелое число в интервале [0, 503]Узкополосная идентичность ячейки физического уровня (PCI)double
NFrame0 (значение по умолчанию), неотрицательное целое числоСтруктурируйте номерdouble
NSlotНеотрицательное целое число

Номер слота

Когда вы задаете NPUSCHFormat поле как 'Data' и SeqGroupHopping поле как 'Off' в chs введите, функция игнорирует это поле.

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
NBULSubcarrierSetЦелое число в интервале [0, 47], вектор из целых чисел в интервале [0, 11]

Индексы поднесущей восходящего канала NB-IoT, в основанной на нуле форме в виде одного из этих значений:

  • Целое число в интервале [0, 11], когда вы задаете NPUSCHFormat поле как 'Control'

  • Целое число в интервале [0, 47], когда вы задаете NPUSCHFormat поле как 'Data' и NBULSubcarrierSpacing поля ue введите как '3.75kHz'

  • Вектор из целых чисел в интервале [0, 11], когда вы задаете NPUSCHFormatполе как 'Data' и NBULSubcarrierSpacing поля ue введите как '15kHz'.

double
Modulation'BPSK', 'QPSK'

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

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

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

charСтрока
SlotIdxЦелое число в интервале [0, (chs.NRU × chs.NULSlots × chs.NRep) – 1]Индекс паза в пакете, в основанной на нуле формеdouble

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

Форма волны временного интервала в виде матрицы с комплексным знаком размера T-by-R.

  • T является количеством выборок временного интервала.

  • R является количеством, получают антенны.

Можно сгенерировать этот вход путем выполнения модуляции SC-FDMA на матрице ресурса использование lteSCFDMAModulate функция. В качестве альтернативы можно сгенерировать этот вход при помощи любой из этих функций модели канала: lteFadingChannel или lteMovingChannel.

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

Состояние энкодера для генерации NPUSCH DRS в виде структуры. Этот вход соответствует stateIn вход lteNPUSCHDRS функция. Этот вход содержит внутреннее состояние каждого транспортного блока в этих полях.

Поле ЗначенияОписаниеТипы данных
SlotIdxЦелое число в интервале [0, (chs.NRU × chs.NULSlots × chs.NRep) – 1]Индекс паза в пакете, в основанной на нуле формеdouble
InitNSlotНеотрицательное целое числоНомер слота для скремблирования инициализации последовательностиdouble
InitNFrameНеотрицательное целое числоСтруктурируйте номер для скремблирования инициализации последовательностиdouble
EndOfBlkЛогический 1 TRUE) или 0 ложь)Чтобы указать, что передача достигла конца транспортного блока, задайте это поле как 1 TRUE). В противном случае задайте это поле как 0 ложь).logical
EndOfTxЛогический 1 TRUE) или 0 ложь)Чтобы указать, что передача достигла конца пакета, задайте это поле как 1 TRUE). В противном случае задайте это поле как 0 ложь).logical
GhpNSlotНеотрицательное целое число

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

Зависимости. Чтобы включить это поле, задайте NPUSCHFormat поле как 'Data' и NRUsc поле как 1 в chs входной параметр.

double

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

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

свернуть все

Синхронизация смещения, возвращенного как целое число. Этот выход представляет смещение, в выборках, между запуском waveform введите и выборка в waveform в котором начинаются символы NPUSCH DRS. Функция возвращает этот выходной параметр как значение макс. (abs (corr)) длина паза по модулю.

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

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

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

Ссылки

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

Введенный в R2020a