lteRateRecoverTurbo

Турбо восстановление уровня

Синтаксис

out = lteRateRecoverTurbo(in,trblklen,rv)
out = lteRateRecoverTurbo(in,trblklen,rv,chs,cbsbuffers)

Описание

пример

out = lteRateRecoverTurbo(in,trblklen,rv) выполняет восстановление уровня входного вектора, in, создавая массив ячеек векторов, out. out представляет закодированные блоки турбо кода перед конкатенацией. Эта функция является инверсией операции соответствия уровня для закодированных данных турбо. Для получения дополнительной информации смотрите lteRateMatchTurbo и TS 36.212, Раздел 5.1.4.1 [1]. Эта функция включает инверсии чередования подблока, битного набора, и битного выбора и сокращения этапов. Размерности out выведены из trblklen, который представляет длину исходного закодированного транспортного блока. Эта параметризация требуется, чтобы восстанавливать исходное количество блоков кода, их закодированных длин и местоположений любых битов заполнителя. Параметр rv управляет версией сокращения вывода. Битное восстановление выбора принимает передачу QPSK, сопоставленную на единственный слой. Это также не принимает ограничения на количество мягких битов, как в восходящем транспортном канале UL-SCH.

out = lteRateRecoverTurbo(in,trblklen,rv,chs,cbsbuffers) задает два дополнительных входных параметров. Структура входа chs позволяет дополнительное управление битного этапа восстановления выбора через параметры для мягкого buffer size и физической настройки канала. Вход cbsbuffers позволяет объединяться с существующей ранее мягкой информацией для процесса HARQ.

Примеры

свернуть все

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

Задайте транспортную длину блока до CRC и турбокодирования, длины кодовой комбинации, версии сокращения и полинома CRC. Используйте эти параметры, чтобы выполнить операции кодирования.

trBlkLen = 135; 
codewordLen = 450; 
rv = 0;
crcPoly = '24A';
trblockwithcrc = lteCRCEncode(zeros(trBlkLen,1),crcPoly);
codeblocks = lteCodeBlockSegment(trblockwithcrc);
turbocodedblocks = lteTurboEncode(codeblocks);
codeword = lteRateMatchTurbo(turbocodedblocks,codewordLen,rv);
rateRecovered = lteRateRecoverTurbo(codeword,trBlkLen,rv)
rateRecovered = 1x1 cell array
    {492x1 int8}

rateRecovered является массивом ячеек с одним закодированным блоком кода размера, обозначенного выше.

Дальнейшее турбо декодирование, десегментация и декодирование CRC rateRecovered привели бы к декодируемому транспортному блоку длины, равной исходному транспортному блоку. Обратите внимание на то, что параметр trBlkLen функции lteRateRecoverTurbo является транспортной длиной блока перед CRC и турбокодированием, не длиной после соответствия уровня или турбокодирования.

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

свернуть все

Входные данные, заданные как числовой вектор.

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

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

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

Версия сокращения раньше восстанавливала данные, заданные как 0, 1, 2, или 3.

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

Настройка передачи канала, заданная как структура. Это позволяет дополнительное управление битного этапа выбора через параметры для мягкого buffer size и физической настройки канала.

Для нисходящего турбо закодированные транспортные каналы можно управлять мягкими буферными размерностями включением или NIR или объединенный набор NSoftbits, TxScheme и DuplexMode. Если DuplexMode является 'TDD', также задайте TDDConfig. Если включено, NIR, более приоритетен для управления мягкими буферными размерностями. Когда ни одно из этих дополнительных полей chs (NIR или набор включая NSoftbits) не присутствует, функция принимает восходящее турбо, закодированный транспорт образовывает канал, и не устанавливает границы количества мягких битов.

chs может содержать следующие поля.

Схема Modulation, заданная как 'QPSK', '16QAM', '64QAM' или '256QAM'.

Типы данных: char | string

Количество слоев передачи для транспортного блока, заданного как 1 (значение по умолчанию), 2, 3, или 4. Не необходимый, если TxScheme установлен в 'Port0', 'TxDiversity' или 'Port5'.

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

Схема передачи PDSCH, заданная как одна из следующих опций.

Схема TransmissionОписание
'Port0'Один порт антенны, порт 0
'TxDiversity'Передайте разнообразие
'CDD'Большая задержка циклическая схема разнообразия задержки
'SpatialMux'Замкнутый цикл пространственное мультиплексирование
'MultiUser'Многопользовательский MIMO
'Port5'Порт одно антенны, порт 5
'Port7-8'Порт одно антенны, порт 7, когда NLayers = 1. Двойная передача слоя, порты 7 и 8, когда NLayers = 2.
'Port8'Порт одно антенны, порт 8
'Port7-14'До восьми передач слоя, порты 7–14

Типы данных: char | string

Мягкий buffer size для целого входа транспортирует блок, заданный как неотрицательное целое число.

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

Общее количество мягких битов канала, заданных как неотрицательное целое число.

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

Дуплексный режим, заданный как 'FDD' или 'TDD'.

Типы данных: char | string

Восходящая или нисходящая настройка, заданная как неотрицательное скалярное целое число от 0 до 6. Дополнительный. Только требуемый, если DuplexMode установлен в 'TDD'.

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

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

Блок Code мягкие информационные буферы, заданные как массив ячеек. Этот входной параметр представляет любой существующий ранее код, блочно-ориентированная мягкая информация, которая будет аддитивным образом объединена с восстановленным турбо, закодировала блоки кода. Это позволяет прямое мягкое объединение последовательных повторных передач HARQ и обычно возвращается предыдущим вызовом функции, чтобы восстановить более раннюю передачу того же транспортного блока. Массив ячеек cbsbuffers также:

  • размерностно совпадает с выходными блоками кода, out

  • может быть пустым, чтобы представлять обработку начальной передачи HARQ

  • или может быть скаляр, чтобы добавить постоянное смещение во все устраненные чередование мягкие данные в блоке кода.

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

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

свернуть все

Турбо закодировало блоки кода перед конкатенацией, возвращенной как массив ячеек числовых вектор-столбцов. Размерности out выведены из trblklen, который представляет длину исходного закодированного транспортного блока.

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

Ссылки

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

Введенный в R2013b