lteULSCHDecode

Декодирование совместно используемого канала восходящей линии связи

Описание

пример

[trblkout,blkcrc,stateout] = lteULSCHDecode(ue,chs,trblklen,cwin,statein) возвращает информационные биты trblkout декодирован из входных данных мягких кодовых слов LLR cwin. Декодер UL-SCH включает в себя обратный перемежитель канала, восстановление скорости, турбодекодирование блоки конкатенацию и вычисление CRC. Функция также возвращает результат декодирования CRC type-24A транспортного блока blkcrc и состояние декодирования процесса HARQ в stateout. Начальное состояние процесса HARQ может быть введено через дополнительный statein параметр. Функция способна обрабатывать как одно кодовое слово, так и пары кодовых слов, содержащиеся в массиве ячеек, для случая схем пространственного мультиплексирования, передающих два кодовых слова. Тип переменного возврата trblkout совпадает с входными cwin. Если cwin - массив ячеек, содержащий одно или два кодовых слова, trblkout возвращает массив ячеек из одного или двух транспортных блоков. Если cwin является вектором мягких данных, trblkout возвращает вектор также. Если декодирование пары кодовых слов, пары схем модуляции и индикаторы RV должны быть определены в соответствующих полях параметров ниже. Эта функция декодирует только информационные биты, но поддерживает присутствие данных UCI, CQI, RI и HARQ-ACK в входе кодовом слове. UCI должен быть демультиплексирован, а затем декодирован отдельно.

Строго говоря, потому что все поля в структуре ue являются необязательными, это законно, чтобы этот параметр был пустой структурой.

Несколько кодовых слов могут быть параметризованы двумя различными формами chs структура. Каждое кодовое слово может быть задано отдельными элементами массива структур 1 на 2, или параметры кодового слова могут быть объединены вместе в полях одной скалярной, или 1 на 1, структуры. Любые значения скалярного поля применяются как к кодовым словам, так и к скалярному NLayers - общее число. Для получения дополнительной информации см. раздел «Параметризация UL-SCH».

trblklen является вектором входа (один или два элемента в длину), определяющим длины транспортных блоков, на которые должны быть восстановлены и декодированы блоки кода входа.

cwin является вход параметром, содержащим мягкие LLR-данные с плавающей точкой для кодовых слов, которые будут декодироваться. Это может быть либо один вектор, либо массив ячеек, содержащий один или два вектора. Если последнее, то все вычисления соответствия скорости предполагают, что пара передавалась на одном PUSCH, распределенном по общему количеству слоев, заданному в chs, согласно ТУ 36.211 [1].

statein является необязательным входным массивом структур (пустым или одним или двумя элементами), который может ввести текущее состояние буфера декодера для каждого транспортного блока в активном процессе HARQ. Если statein не является пустым массивом и содержит непустое поле CBSBuffers затем это поле должно содержать массив ячеек из векторов, представляющих мягкие буферные состояния LLR для набора блоков кода на входе в турбодекодер, т.е. после явного восстановления скорости. Обновленные состояния буфера после декодирования возвращаются в CBSBuffers поле в выходном параметре stateout. The statein массив обычно генерируется и рециркулируется из stateout предыдущих вызовов lteULSCHDecode как части последовательности передач HARQ.

trblkout - выходной параметр, содержащий декодированные информационные биты. Это либо один вектор, либо массив ячеек, содержащий один или два вектора, в зависимости от класса и размерности cwin.

blkcrc - выход массив (один или два элемента), содержащий результат декодирования CRC транспортного блока type-24A для транспортных блоков.

stateoutконечный выходной параметр является массивом структур с одним элементом, содержащим внутреннее состояние каждого транспортного блочного декодера в полях CBSBuffers, CBSCRC, blkcrc.

The stateout массив обычно повторно применяется через statein переменная последующих lteULSCHDecode вызовы функций как часть последовательности повторных передач HARQ.

Примеры

свернуть все

Сгенерируйте и декодируйте 2 передачи (RV = 0, затем RV = 2) как часть одного процесса HARQ кодового слова для A3-3 FRC.

Инициализируйте один подкадр FRC- A3-3 передачи. Создайте кодовое слово с RV = 0. Превратите логические биты в данные 'LLR'. Инициализируйте состояния декодера для первой передачи HARQ. Возвращенный decState содержит состояние буфера декодера для каждого транспортного блока для активного процесса HARQ.

nsf = 1;
frc = lteRMCUL('A3-3');
trBlkLen = frc.PUSCH.TrBlkSizes(nsf);
trBlkData = randi([0,1],trBlkLen,1);
frc.PUSCH.RV = 0;
cw = lteULSCH(frc,frc.PUSCH,trBlkData);
cw(cw == 0) = -1;
decState = [];
[rxTrBlk,~,decState] = lteULSCHDecode(frc,frc.PUSCH,trBlkLen,cw,decState);

Создайте второе повторно переданное кодовое слово с RV = 2. Превратите логические биты в данные 'LLR'. Предыдущее состояние буфера декодера передачи, decState, используется как часть последовательности активных передач HARQ.

frc.PUSCH.RV = 2;
cWord = lteULSCH(frc,frc.PUSCH,trBlkData);
cWord(cWord == 0) = -1;
rxTrBlk = lteULSCHDecode(frc,frc.PUSCH,trBlkLen,cWord,decState);

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

свернуть все

Специфические для UE настройки, заданные как скалярная структура со следующими полями. Потому что все поля в структуре ue необязательны, этот параметр может быть пустой структурой.

Поле параметраТребуемый или опционныйЗначенияОписание
CyclicPrefixULДополнительный

'Normal' (по умолчанию), 'Extended'

Длина циклического префикса.

ShortenedДополнительный

0 (по умолчанию), 1

Опция сокращения подрамника путем опускания последнего символа, заданного как 0 или 1. Если 1последний символ подрамника не используется. Для подкадров с возможной передачей SRS установите Shortened для 1 поддержания совместимого со стандартом строения.

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

Связанные с UL-SCH параметры, заданные как скалярная структура со следующими полями.

Поле параметраТребуемый или опционныйЗначенияОписание
ModulationНеобходимый

'QPSK', '16QAM', '64QAM', '256QAM'

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

NLayersДополнительный

1 (по умолчанию), 2, 3, 4

Количество слоев передачи.

(всего или по кодовому слову)

RVНеобходимый

0, 1, 2, 3

Индикаторы версии резервирования, заданные как вектор из 1 или 2 индикаторов.

QdCQIДополнительный

неотрицательное скалярное целое число

Количество кодированных символов информации о качестве канала (CQI) (Q’_CQI)

QdRIДополнительный

Неотрицательное скалярное целое число

0 (по умолчанию)

Количество закодированных символов для RI (Q’_RI)

QdACKДополнительный

неотрицательное скалярное целое число

0 (по умолчанию)

Количество закодированных символов ACK (Q'_ACK)

NTurboDecItsДополнительный

Скалярное целое число

5 (по умолчанию)

Количество циклов итерации турбодекодера

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

Длина транспортного блока, заданная как числовой вектор (один или два элемента в длину), задающая длины транспортных блоков, на которые должны восстанавливаться и декодироваться входные блоки кода.

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

Мягкие данные кодового слова LLR, заданные как числовой вектор-столбец или массив ячеек из одного или двух векторов-столбцов. Этот аргумент содержит мягкие данные LLR с плавающей точкой кодового слова или кодовых слов, подлежащих декодированию. Это может быть либо один вектор, либо массив ячеек, содержащий один или два вектора. Если массив ячеек, все вычисления соответствия скорости предполагают, что пара передавалась на одном PUSCH, распределенном между общим количеством слоев, заданным в chs, как указано в [1].

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

Начальное состояние процесса HARQ, заданное как массив структур. Он может быть пустым или иметь один или два элемента, которые могут ввести текущее состояние буфера декодера для каждого транспортного блока в активном процессе HARQ.

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

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

свернуть все

Декодированные информационные биты, возвращенные как числовой вектор или массив ячеек. trblkout содержит декодированные блоки транспортных данных. Это либо один вектор, либо массив ячеек, содержащий один или два вектора, в зависимости от класса и размерности cwin.

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

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

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

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

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

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

Массив ячеек из числовых векторов

cell
CBSCRS

Type-24B кодовый блок устанавливает результаты декодирования CRC

Числовой вектор

int8
BLKCRC

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

Одно- или двухэлементный числовой вектор

logical

Ссылки

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

Введенный в R2014a