exponenta event banner

lteNDLSCHDecode

Декодирование кодового слова NB-IoT DL-SCH

Описание

[trblkout,blkcrc,stateout] = lteNDLSCHDecode(trblklen,cwin) возвращает информационные биты, trblkoutдекодируется из входных данных кодового слова мягкого LLR, cwin. Декодер NB-IoT общего канала нисходящей линии связи (DL-SCH) включает в себя восстановление скорости, декодирование Витерби и вычисления CRC. Функция также возвращает результат декодирования CRC транспортного блока type-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

Данные кодового слова Soft LLR, заданные как числовой вектор. cwin содержит мягкие данные LLR с плавающей запятой кодового слова, подлежащего декодированию.

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

Начальное состояние процесса HARQ, указанное как структура. Структура может быть пустой или содержать следующее поле:

ИмяЦенностиОписаниеТипы данных
CBSBuffers

Клеточный массив векторов

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

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

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

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

свернуть все

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

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

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

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

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

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

Клеточный массив векторов

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

true или 1, false или 0

Ошибка декодирования CRC транспортного блока Type-24Alogical

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

Ссылки

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

См. также

|

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