lteRateRecoverTurbo

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

Описание

пример

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', или '1024QAM'.

Типы данных: 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. “Развитый Универсальный Наземный Радио-доступ (к E-UTRA); Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group. URL: https://www.3gpp.org.

Введенный в R2013b