lteULFrameOffsetNPUSCH

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

Описание

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

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

Процесс оценки смещения содержит эти шаги.

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

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

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

пример

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

Примеры

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

char, string
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, 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
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, string
SlotIdxЦелое число в интервале [0, (chs.NRU × chs.NULSlots × chs.NRep) – 1]Индекс паза в пучке, в нулевой формеdouble

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

Сигнал временной области, заданный как комплексная матрица размера T -by- R.

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

  • R - количество приемных антенн.

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

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

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

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

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

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

double

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

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

свернуть все

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

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

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

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

Ссылки

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

Введенный в R2020a