exponenta event banner

lteRateRecoverTurbo

Восстановление турбо-скорости

Описание

пример

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

out = lteRateRecoverTurbo(in,trblklen,rv,chs,cbsbuffers) задает два дополнительных входа. chs структура ввода позволяет осуществлять дополнительное управление этапом восстановления выбора битов через параметры для размера мягкого буфера и конфигурации физического канала. 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

Конфигурация передачи канала, заданная как структура. Это позволяет осуществлять дополнительное управление этапом выбора битов с помощью параметров для размера буфера мягких данных и конфигурации физического канала.

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

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

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

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

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

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

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

Схема передачиОписание
'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

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

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

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

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

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

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

Конфигурация восходящего или нисходящего канала, заданная как неотрицательное скалярное целое от 0 до 6. Необязательно. Требуется только в том случае, если DuplexMode имеет значение 'TDD'.

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

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

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

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

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

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

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

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

свернуть все

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

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

Ссылки

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

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