exponenta event banner

lteULFrameOffsetNPUSCH

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

Описание

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

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

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

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

  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 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-го поколения; техническая спецификация на сеть радиодоступа группы; Усовершенствованный универсальный наземный радиодоступа (E-UTRA). https://www.3gpp.org.

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