exponenta event banner

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. statein обычно генерируется и возвращается из stateout предыдущих вызовов на lteULSCHDecode как часть последовательности передач HARQ.

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

cell
CBSCRS

Напечатайте-24B CRC набора блока кода расшифровывающие результаты

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

int8
BLKCRC

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

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

logical

Ссылки

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

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