lteDLSCHDecode

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

Синтаксис

[trblkout,blkcrc,stateout] = lteDLSCHDecode(enb,chs,trblklen,cwin,statein)

Описание

пример

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

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

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

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

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

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

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

blkcrc является выходным массивом, одним или двумя элементами, содержа результат транспортного декодирования блока CRC типа-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'

Режим Duplexing, заданный как:

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

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

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

Когда DuplexMode будет установлен в 'TDD', включайте:

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

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

Восходящая нисходящая настройка

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

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

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

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

'QPSK', '16QAM', '64QAM' или '256QAM'

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

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

1, 2, 3, 4

Общее количество слоев передачи сопоставлено с транспортным блоком или блоками.

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

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

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

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

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

Типы данных: логический

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

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

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

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

CBSCRC

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

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

BLKCRC

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

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

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

Ссылки

[1] 3GPP TS 36.211. “Физические каналы и модуляция”. Проект партнерства третьего поколения; сеть радиодоступа Technical Specification Group; развитый Универсальный наземный радио-доступ (к E-UTRA). URL: http://www.3gpp.org.

Смотрите также

| |

Введенный в R2014a