exponenta event banner

setTransportBlock

Загрузка транспортного блока в кодер UL-SCH или DL-SCH

Описание

setTransportBlock(enc,trblk) загружает транспортный блок trblk в указанную систему кодирования восходящего (UL) или нисходящего (DL) совместно используемого канала (SCH) object™ enc. Вызов этой функции перед вызовом enc.

пример

setTransportBlock(encDL,trblk,trblkID) загружает транспортный блок trblk в указанный объект системы кодировщика DL-SCH encDL для указанного номера транспортного блока trblkID. Вызов этой функции перед вызовом encDL.

пример

setTransportBlock(___,harqID) загружает транспортный блок для указанного номера процесса гибридного автоматического запроса на повторение (HARQ) harqID. Определить harqID в дополнение к входным аргументам в любом из предыдущих синтаксисов.

Примеры

свернуть все

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

trBlkLen = 5120;
trBlk = randi([0 1],trBlkLen,1,'int8');

Создайте и настройте объект системы кодировщика UL-SCH для использования с несколькими процессами HARQ.

encUL = nrULSCH;
encUL.MultipleHARQProcesses = true;

Загрузите транспортный блок в кодер UL-SCH, указав процесс HARQ номер 2.

harqID = 2;
setTransportBlock(encUL,trBlk,harqID);

Вызовите кодер со схемой модуляции QPSK, 3 уровня передачи, выходной длиной 10 002 бита и версией избыточности 3. Кодер применяет цепочку обработки UL-SCH к транспортному блоку, загруженному в объект для процесса HARQ номер 2.

mod = 'QPSK';
nLayers = 3;
outlen = 10002;
rv = 3;
codedTrBlock = encUL(mod,nLayers,outlen,rv,harqID);

Убедитесь, что кодированный транспортный блок имеет требуемое количество битов.

isequal(length(codedTrBlock),outlen)
ans = logical
   1

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

trBlkLen = 5120;
trBlk = randi([0 1],trBlkLen,1,'int8');

Создайте и настройте системный объект кодера DL-SCH для использования с несколькими процессами HARQ.

encDL = nrDLSCH;
encDL.MultipleHARQProcesses = true;

Транспортный блок нагрузки trBlk для транспортного блока номер 0 в кодер DL-SCH, определяющий процесс HARQ номер 2.

harqID = 2;
trBlkID = 0;
setTransportBlock(encDL,trBlk,trBlkID,harqID);

Вызовите кодер со схемой модуляции QPSK, 3 уровня передачи, выходной длиной 10 002 бита и версией избыточности 3. Кодер применяет цепочку обработки DL-SCH к транспортному блоку, загруженному в объект для процесса HARQ номер 2.

mod = 'QPSK';
nLayers = 3;
outlen = 10002;
rv = 3;
codedTrBlock = encDL(mod,nLayers,outlen,rv,harqID);

Убедитесь, что кодированный транспортный блок имеет требуемое количество битов.

isequal(length(codedTrBlock),outlen)
ans = logical
   1

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

свернуть все

Кодер UL-SCH или DL-SCH, указанный как nrULSCH или nrDLSCH Системный объект. Объекты реализуют цепочки обработки UL-SCH и DL-SCH, указанные в TS 38.212 Раздел 6.2 и Раздел 7.2 соответственно.

Транспортный блок, заданный как вектор двоичного столбца или массив ячеек из одного или двух векторов двоичного столбца. Параметр массива ячеек применяется только в том случае, если enc является системным объектом кодера DL-SCH. Параметр двухэлементного массива ячеек применяется только в том случае, если номер транспортного блока trblkID не указан для обработки DL-SCH.

Типы данных: int8 | double | logical

Кодер DL-SCH, указанный как nrDLSCH Системный объект. Объект реализует цепочку обработки DL-SCH, указанную в TS 38.212 Раздел 7.2.

Номер транспортного блока при обработке DL-SCH, указанный как 0 или 1.

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

Номер процесса HARQ, указанный как целое число от 0 до 15.

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

Ссылки

[1] 3GPP TS 38.212. "НР; мультиплексирование и канальное кодирование. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Функции

Объекты

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