exponenta event banner

lteDLSCHDecode

Декодирование общего канала нисходящей линии связи

Описание

пример

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

enb - структура входных параметров, которая может включать необязательные поля, определяющие дуплексный режим. Поскольку дуплексный режим по умолчанию имеет значение 'FDD', если 'DuplexMode' поле отсутствует, enb может быть пустой структурой.

chs является структурой входных параметров, определяющей аспекты PDSCH, на который отображены кодовые слова, и размер мягкого буфера DL-SCH и версии избыточности принятых кодовых слов.

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

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

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

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

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

stateoutконечный выходной параметр представляет собой одно- или двухэлементный структурный массив, содержащий внутреннее состояние каждого декодера транспортного блока. stateout массив обычно повторно применяется через statein переменная последующих lteDLSCHDecode вызовы функций как часть последовательности повторных передач HARQ.

Примеры

свернуть все

В этом примере генерируются и декодируются 2 передачи, одна с RV, установленным в 0, и другая с RV, установленным в 1, как часть одного процесса HARQ кодового слова для RMC R.7.

Задать номер подкадра. Получите определение RMC R.7. Создание данных транспортного блока. Применение цепочки кодирования транспортного канала DL-SCH к trBlkData. Создайте кодовое слово с RV = 0. Преобразование логических битов в данные LLR

nsf = 1;

rmc = lteRMCDL('R.7');

trBlkSize = rmc.PDSCH.TrBlkSizes(nsf);
codedTrBlkSize = rmc.PDSCH.CodedTrBlkSizes(nsf);
trBlkData = randi([0,1],trBlkSize,1);

rmc.PDSCH.RV = 0;        
cw = lteDLSCH(rmc,rmc.PDSCH,codedTrBlkSize,trBlkData);

cw(cw == 0) = -1;

Инициализируют состояния декодера для первой передачи HARQ. Возвращенный decState содержит состояние буфера декодера для каждого транспортного блока для активного процесса HARQ с RV = 1

decState = [];
[rxTrBlk,~,decState] = lteDLSCHDecode(rmc,rmc.PDSCH,trBlkSize,cw,decState);

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

rmc.PDSCH.RV = 1;
cw = lteDLSCH(rmc,rmc.PDSCH,codedTrBlkSize,trBlkData);

cw(cw == 0) = -1;  
rxTrBlk = lteDLSCHDecode(rmc,rmc.PDSCH,trBlkSize,cw,decState);

size(rxTrBlk)
ans = 1×2

       28336           1

rxTrBlk(1:10)
ans = 10x1 int8 column vector

   1
   1
   0
   1
   1
   0
   0
   1
   1
   1

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

свернуть все

Параметры для всей ячейки, заданные как структура со следующими полями.

Поле параметраОбязательно или необязательноЦенностиОписание

Если chs.NSoftBits определяется как:

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

'FDD' (по умолчанию), 'TDD'

Режим дуплексирования, указанный как:

  • 'FDD' для дуплексного частотного разделения или

  • 'TDD' для дуплексного разделения времени

Поскольку дуплексный режим по умолчанию имеет значение 'FDD', если это поле отсутствует, enb может быть пустой структурой.

Когда DuplexMode имеет значение 'TDD' включают:

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

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

Конфигурация восходящего и нисходящего каналов

Требуется только для 'TDD' дуплексный режим.

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

Конфигурация канала, заданная как структура, имеющая следующие поля.

Поле параметраОбязательно или необязательноЦенностиОписание
ModulationНеобходимый'QPSK', '16QAM', '64QAM', '256QAM', '1024QAM'

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

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

1, 2, 3, 4

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

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

'Port0' (по умолчанию), 'TxDiversity', 'CDD', 'SpatialMux', 'MultiUser', 'Port5', 'Port7-8', 'Port8', 'Port7-14'.

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

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

0, 1, 2, 3

2-элементный числовой вектор

Индикатор версии избыточности, заданный как числовой вектор с 1 или 2 значениями. Возможные значения: 0, 1, 2 или 3.

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

Неотрицательное скалярное целое число (по умолчанию 0)

Общее количество битов мягкого буфера. Значение по умолчанию 0 указывает на отсутствие ограничения буфера.

Если NSoftbits отсутствует, ограничение на количество мягких битов не установлено.

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

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

Целое число от 1 до 30

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

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

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

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

Мягкие данные LLR кодовых слов, подлежащих декодированию, задаваемые как либо числовой вектор, либо массив ячеек, содержащий один или два вектора.

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

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

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

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

свернуть все

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

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

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

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

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

Поле параметраЦенностиОписание
CBSBuffers

Клеточный массив векторов

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

CBSCRC

Логический вектор

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

BLKCRC

Логический скаляр

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

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

Ссылки

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

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