lteNDLSCHDecode

Декодируйте кодовую комбинацию NB-IoT DL-SCH

Описание

[trblkout,blkcrc,stateout] = lteNDLSCHDecode(trblklen,cwin) возвращает информационные биты, trblkout, декодируемый от входа мягкие данные о кодовой комбинации LLR, cwin. Нисходящий канал NB-IoT совместно использованный канал (DL-SCH) декодер включает восстановление уровня, декодирование Viterbi и вычисления CRC. Функция также возвращает транспортный результат декодирования блока CRC типа-24A в blkcrc и декодирование процесса HARQ утверждает в stateout.

пример

[trblkout,blkcrc,stateout] = lteNDLSCHDecode(trblklen,cwin,statein)задает начальное состояние процесса HARQ в statein структура. Начальная передача и повторная передача являются оба пакетами, содержащими несколько подкадров, заданных в Разделе 5.3.2.1 из [1].

Примеры

свернуть все

В этом примере показано, как передать пакет, несущий тот же транспортный блок дважды. Мягкие биты LLR от повторных подкадров в пакете объединены в структуре dstate, мягкие биты LLR от двух пакетов объединены в структуре state. Обратите внимание на то, что dstate сбрасывается перед повторной передачей пакета.

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

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

Установите транспортную длину блока до 208 и выходную длину кодовой комбинации до 960. Инициализируйте состояния декодера для первой передачи HARQ. Сгенерируйте транспортные данные о блоке.

trblklen = 208;
outlen = 960;
estate = []; 
dstate = []; 
state = [];
trblkin = randi([0 1],trblklen,1);

Сгенерируйте 960 битов кодовой комбинации NB-Iot DL-SCH.

cw = lteNDLSCH(outlen,trblkin);

Выполните начальную передачу пакета, содержащего транспортный блок. Проверьте, существуют ли ошибки в передаче.

for subframeIdx = 0:(chs.NSF*chs.NRep-1)
    enb.NSubframe = subframeIdx;
    [sym,estate] = lteNPDSCH(enb,chs,cw,estate);
    [rxcw, dstate] = lteNPDSCHDecode(enb,chs,sym,dstate);
end
[trblkout1,blkerr1,state] = lteNDLSCHDecode(trblklen,rxcw,state);
blkerr1
blkerr1 = logical
   0

Выполните повторную передачу пакета, содержащего тот же транспортный блок. Информация, полученная из начальной передачи пакета, сохранена в состоянии и используемая в качестве входа к lteNDLSCHDecode. Проверьте, существуют ли ошибки в повторной передаче.

for subframeIdx = chs.NSF*chs.NRep:(2*chs.NSF*chs.NRep-1)
    enb.NSubframe = subframeIdx;
    [sym,estate] = lteNPDSCH(enb,chs,cw,estate);
    [rxcw,dstate] = lteNPDSCHDecode(enb,chs,sym,dstate);
end
[trblkout2,blkerr2,state] = lteNDLSCHDecode(trblklen,rxcw,state);
blkerr2
blkerr2 = logical
   0

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

свернуть все

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

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

Мягкие данные о кодовой комбинации LLR в виде числового вектора. cwin содержит мягкие данные LLR с плавающей точкой кодовой комбинации, которая будет декодироваться.

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

Начальный процесс HARQ утверждает в виде структуры. Структура может быть пустой или содержать это поле:

ИмяЗначенияОписаниеТипы данных
CBSBuffers

Массив ячеек векторов

LLR мягкое буферное государство сопоставлен с одним транспортным блоком. Буфер расположен во вход к Декодеру Витерби после явного восстановления уровня.cell

Обновленные буферные государства после декодирования возвращены в CBSBuffers поле stateout вывод . statein массив обычно генерируется и перерабатывается от stateout из предыдущих вызовов lteNDLSCHDecode как часть последовательности передач HARQ.

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

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

свернуть все

Декодируемые информационные биты, возвращенные как числовой вектор.

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

Введите-24A транспортный результат декодирования блока CRC, возвращенный как числовой или логический 1 TRUE) или 0 ложь).

Типы данных: логический

Состояние декодирования процесса HARQ, возвращенное как структура, содержащая внутреннее состояние транспортного блока в этих полях:

Поле параметраЗначенияОписаниеТипы данных
CBSBuffers

Массив ячеек векторов

LLR мягкие буферные государства для набора блоков кода сопоставлен с одним транспортным блоком. Буферы расположены во вход к Декодеру Витерби после явного восстановления уровня. cell
BLKCRC

true или 1ложь или 0

Введите-24A транспортную ошибку декодирования блока CRClogical

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

Ссылки

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

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

|

Введенный в R2018a

Для просмотра документации необходимо авторизоваться на сайте