lteNPDSCHDecode

Декодируйте модулируемые символы NPDSCH

Описание

[cw,stateout,symbols] = lteNPDSCHDecode(enb,chs,sym) декодирует sym, NB-IoT физический нисходящий канал совместно использованный канал (NPDSCH) символы, для настроек enb всей ячейки и специфичная для канала конфигурационная структура chs. Декодирование канала включает deprecoding, слой demapping, мягкая демодуляция, дескремблирование и восстановление кодовой комбинации. Декодирование инвертирует процесс кодирования канала NPDSCH, описанный в Разделе 10.2.3 из [1]. Функция возвращает кодовую комбинацию cw из мягких битов декодер утверждает stateout для приема передачи пакета и полученных символов созвездия symbols.

пример

[cw,stateout,symbols] = lteNPDSCHDecode(enb,chs,sym,statein) декодирует символы NPDSCH для начального декодера, утверждают statein.

[cw,stateout,symbols] = lteNPDSCHDecode(enb,chs,sym,hest,noiseest) декодирует символы NPDSCH для оценки канала hest и шум оценивает noiseest.

[cw,stateout,symbols] = lteNPDSCHDecode(enb,chs,sym,hest,noiseest,statein) декодирует символы NPDSCH для оценки канала, шумовой оценки и начального состояния декодера.

Примеры

свернуть все

Сгенерируйте и получите подкадр символов NPDSCH подкадром для пакета 12 подкадров.

Задайте настройки всей ячейки и настройку передачи канала в структурах параметра enb и chs.

enb.NNCellID = 0;
enb.NBRefP = 1;
enb.NFrame = 1;
chs.NSF = 3;
chs.NRep = 4;
chs.RNTI = 0;
chs.NPDSCHDataType = 'NotBCCH';

Установите выходную длину кодовой комбинации до 960 и сгенерируйте биты кодовой комбинации. Не обеспечивайте состояния энкодера или декодера в начале пакета.

cwLen = 960;
eState = [];
statein = [];
txcw = ones(cwLen,1);

Сгенерируйте символы NPDSCH для каждого из этих 12 подкадров и затем декодируйте их.

for subframeIdx = 0:(chs.NSF*chs.NRep-1)
    enb.NSubframe = subframeIdx;
    [sym,eState] = lteNPDSCH(enb,chs,txcw,eState);
    [cw,stateout] = lteNPDSCHDecode(enb,chs,sym,statein);
    statein = stateout;
end

Значение поля CWSFCount в структуре dstate указывает, что все три подкадра в кодовой комбинации были получены четыре раза.

disp(stateout.EndOfTx)
   1
disp(stateout.CWSFCount)
     4
     4
     4

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

свернуть все

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

ИмяТребуемый или дополнительныйЗначенияОписаниеТипы данных
NNCellIDНеобходимыйНеотрицательное целое числоУзкополосная идентичность ячейки физического уровня (PCI)double
NSubframeНеобходимыйНеотрицательное целое числоНомер подкадраdouble
NFrameДополнительный0 (значение по умолчанию), неотрицательное целое числоСтруктурируйте номерdouble
NBRefPНеобходимый1, 2Количество портов антенны узкополосного ссылочного сигнала (NRS). Чтобы указать на передачу на одном порте антенны (порт 0) и использовать эквализацию минимальной среднеквадратической ошибки (MMSE) в приеме, задайте это поле как 1. Чтобы указать на разнообразие передачи и использовать декодер ортогонального блочного кода частоты пробела (OSFBC) в deprecoding, задайте это поле как 2.double

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

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

ИмяТребуемый или дополнительныйЗначенияОписаниеЗависимостиТипы данных
NPDSCHDataTypeДополнительный'NotBCCH', 'SIB1NB', 'BCCHNotSIB1NB'

Тип данных несет NPDSCH, заданный как одно из этих значений:

  • 'NotBCCH' – NPDSCH не несет широковещательный канал управления (BCCH).

  • 'SIB1NB' – NPDSCH несет системный блок информации 1 узкополосная связь (SIB1-NB).

  • 'BCCHNotSIB1NB' – NPDSCH несет BCCH, но не SIB1-NB.

charСтрока
NSFСм. столбец ЗависимостейНеотрицательное целое числоКоличество подкадров, с которыми кодовая комбинация сопоставлена, не включая повторения

  • Это поле требуется, когда вы задаете NPDSCHDataType поле как значение кроме 'SIB1NB' и возвратите info вывод .

  • lteNPDSCHDecode функционируйте устанавливает это поле на 8 когда вы задаете NPDSCHDataType поле как 'SIB1NB' и возвратите info вывод .

  • Если вы не возвращаете info выведите, lteNPDSCHDecode функция игнорирует это поле.

double
NRepНеобходимыйНеотрицательное целое числоКоличество повторенийdouble
RNTIСм. столбец ЗависимостейНеотрицательное целое число16-битная радиосеть временный идентификатор (RNTI)

  • Это поле требуется, когда вы задаете NPDSCHDataType поле как значение кроме 'SIB1NB'.

  • lteNPDSCHDecode функционируйте устанавливает это поле на информацию о системе RNTI (SI-RNTI) значение 65535 когда вы задаете NPDSCHDataType поле как 'SIB1NB'.

double
CSIДополнительный'On' (значение по умолчанию), 'Off'Информация о состоянии канала (CSI). Чтобы масштабировать мягкие биты CSI во время процесса эквализации, задайте это поле как 'On'. В противном случае задайте это поле как 'Off'.charСтрока

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

Модулируемые символы NPDSCH, заданные как N RE-by-NRxAnts матрица с комплексным знаком, где:

  • РЕ N является количеством символов квадратурного манипулирования сдвига фазы (QPSK) на антенну и на подкадр, присвоенный NPDSCH;

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

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

Введите состояние энкодера для передачи пакета, заданного как структура, содержащая поля, перечисленные в stateout вывод . Этот аргумент может быть пустым только, когда никакая информация не предоставляется, такой как в первом подкадре пакета.

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

Оценка канала для слоя передачи, заданного как RE N NRxAnts NNBRefP массивом с комплексным знаком, где:

  • РЕ N является количеством закодированных символов NPDSCH на антенну и на подкадр;

  • N RxAnts является количеством, получают антенны;

  • N NBRefP является номером порты антенны NRS, которые вы задаете в NBRefP поле enb входной параметр.

lteNPDSCHDecode функция принимает, что эта оценка использует NRSs.

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

Шумовая оценка шумовой степени спектральная плотность на RE на полученном подкадре, заданном как неотрицательный скаляр.

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

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

свернуть все

Кодовая комбинация мягких битов, возвращенных как N SF-1 бинарный вектор, где SF N является количеством подкадров.

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

Выведите состояние декодера для следующего подкадра, возвращенного как структура. Этот выход содержит внутреннее состояние каждого транспортного блока в этих полях:

ИмяЗначенияОписаниеТипы данных
SubframeIdxцелое число в интервале [0, NSF x NRep – 1]Индекс подкадра в пакете, в основанной на нуле форме. lteNPDSCHDecode функция возвращает это поле как SubframeIdx поле statein введите увеличенный на одного. Когда входное значение SubframeIdx в statein введите достигает ее максимального значения, функция возвращает это поле как 0. Если вы не задаете входное значение в statein введите, lteNPDSCHDecode функция возвращает это поле как 0. Значение 0 указывает, что передача достигла конца пакета, на который функция также указывает путем установки EndOfTx поле к 1 TRUE).double
InitNFrameЦелое число Nonnnegative

Структурируйте номер в точке инициализации борющейся последовательности. Когда обрабатываемый подкадр в точке инициализации, это поле равно NFrame поле enb входной параметр. В противном случае, lteNPDSCHDecode функция возвращает это поле как одно из этих значений:

  • Значение InitNFrame поле statein аргумент

  • 0 когда вы не задаете InitNFrame поле statein входной параметр

double
InitNSubrameЦелое число Nonnnegative

Номер подкадра в точке инициализации. Когда обрабатываемый подкадр в точке инициализации, это поле равно NSubframe поле enb входной параметр. В противном случае, lteNPDSCHDecode функция возвращает это поле как одно из этих значений:

  • Значение InitNSubframe поле statein аргумент

  • NSubframe поле enb введите, когда вы не зададите InitNSubframe поле statein входной параметр

double
CWBufferN SF-1 бинарный векторБуфер, чтобы сохранить мягко объединенные биты отношения логарифмической правдоподобности (LLR) после дескремблирования кодовой комбинации. Длина этого поля совпадает с длиной кодовой комбинации, cw. В начале пакета, lteNPDSCHDecode функционируйте сбрасывает это поле.double
CWSFCountN SF-1 вектор с целочисленным знакомСчетчик повторения. Длина этого поля совпадает с длиной кодовой комбинации, cw. Каждый элемент этого поля указывает сколько повторений соответствующего элемента cw CWBuffer поле восстановилось. В начале пакета, lteNPDSCHDecode функционируйте сбрасывает это поле.double
EndOfCWЛогический 1 TRUE) или 0 ложь)Индикатор получения кодовой комбинации. lteNPDSCHDecode функция возвращает это поле как 1 TRUE) когда целая кодовая комбинация была получена, то есть, когда каждый элемент CWSFCount поле как наименьшее количество 1. В начале пакета, lteNPDSCHDecode функционируйте сбрасывает это поле.logical
EndOfTxЛогический 1 TRUE) или 0 ложь)Конец индикатора пакета. lteNPDSCHDecode функция возвращает это поле как 1 TRUE) когда передача достигает конца пакета. В противном случае, lteNPDSCHDecode функция возвращает это поле как 0 ложь). В начале пакета, lteNPDSCHDecode функционируйте сбрасывает это поле.logical

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

Полученные символы созвездия, возвращенные как комплексный вектор.

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

Больше о

свернуть все

Пакет

Пакет в слое среднего управления доступом (MAC) относится к повторным передачам транспортного блока.

Для получения дополнительной информации смотрите Раздел 5.3.2.1 из [2]

Советы

Чтобы использовать эту функцию в передаче пакета, выполните эти шаги:

  1. Вызовите lteNPDSCHDecode функция, опционально задавая начальное состояние энкодера использование statein входной параметр; stateout выведите представляет первый транспортный блок в пакете.

  2. Вызовите lteNPDSCHDecode функционируйте снова, задавая statein введите как stateout выведите возвращенный предыдущим вызовом функции.

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

Ссылки

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

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

| | |

Введенный в R2018a