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) задает два дополнительных входа. The chs Вход структура позволяет дополнительно управлять каскадом восстановления выбора битов через параметры для buffer size мягкого строения и физического канала. The 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 может содержать следующие поля.

Схема модуляции, заданная как '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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

Ссылки

[1] 3GPP TS 36.212. "Evolved Universal Terrestrial Radio Access (E-UTRA); Мультиплексирование и канальное кодирование. "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ. URL-адрес: https://www.3gpp.org.

Введенный в R2013b