lteNPDSCHDecode

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

Описание

[cw,stateout,symbols] = lteNPDSCHDecode(enb,chs,sym) декодирует sym, символы NB-IoT физического нисходящего совместно используемого канала (NPDSCH) для общих для ячеек настроек enb и специфическую для канала структуру строения chs. Канальное декодирование содержит амортизацию, демпфирование слоя, мягкую демодуляцию, дескремблирование и восстановление кодового слова. Декодирование инвертирует процесс кодирования канала 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) декодер для амортизации, задайте это поле следующим 2.double

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

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

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

Тип данных, переносимых NPDSCH, заданный как одно из следующих значений:

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

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

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

char, string
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, string

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

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

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

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

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

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

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

Оценка канала для уровня передачи, заданная как N RE-by N RxAnts-by N NBRefP комплексно-оцененный массив, где:

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

  • N RxAnts - количество приемных антенн;

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

  • 0 если вы не задаете InitNFrame поле statein вход

double
InitNSubrameНеотрицательное целое число

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

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

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

double
CWBufferN SF-на-1 двоичный векторБуфер для хранения коэффициента мягкого комбинирования логарифмической правдоподобности (LLR) бит после дескремблирования кодового слова. Длина этого поля совпадает с длиной кодового слова, cw. В начале пучка, lteNPDSCHDecode функция сбрасывает это поле.double
CWSFCountN вектор с целым числом SF на 1Счетчик повторения. Длина этого поля совпадает с длиной кодового слова, cw. Каждый элемент этого поля указывает, сколько повторений соответствующего элемента cw а CWBuffer месторождение восстановлено. В начале пучка, lteNPDSCHDecode функция сбрасывает это поле.double
EndOfCWЛогический 1 (true) или 0 (false)Индикатор приема кодового слова. lteNPDSCHDecode функция возвращает это поле следующим 1 (true), когда получено все кодовое слово, то есть когда каждый элемент CWSFCount поле как минимум 1. В начале пучка, lteNPDSCHDecode функция сбрасывает это поле.logical
EndOfTxЛогический 1 (true) или 0 (false)Конец индикатора пучка. lteNPDSCHDecode функция возвращает это поле следующим 1 (true), когда коробка передач достигает конца пучка. В противном случае lteNPDSCHDecode функция возвращает это поле следующим 0 (false). В начале пучка, 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. «Физические каналы и модуляция». 3-ья Генерация проект партнерства; Группа технических спецификаций Radio Доступа Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL-адрес: https://www.3gpp.org.

Введенный в R2018a