lteDLSCHDecode

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

Описание

пример

[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', '1024QAM'

Тип модуляции сопоставлен с каждым транспортным блоком, заданным как вектор символов, массив ячеек из символьных векторов для 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. “Развитый Универсальный наземный радио-доступ (к E-UTRA); физические каналы и модуляция”. Проект партнерства третьего поколения; сеть радиодоступа Technical Specification Group. URL: https://www.3gpp.org.

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

| |

Введенный в R2014a