lteNDLSCHDecode

Нисходящий канал NB-IoT совместно использованное декодирование канала

Синтаксис

[trblkout,blkcrc,stateout] = lteNDLSCHDecode(trblklen,cwin)
[trblkout,blkcrc,stateout] = lteNDLSCHDecode(trblklen,cwin,statein)

Описание

[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, который задан можно следующим образом:

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

BLKCRC

Логический скаляр

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

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

Ссылки

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

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

|

Введенный в R2018a