setTransportBlock

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

Описание

setTransportBlock(enc,trblk) загружает транспортный блок trblk в указанный восходящий (UL) или нисходящий (DL) совместно используемый канал (SCH) энкодер System 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. "NR; Мультиплексирование и канальное кодирование. "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

Функции

Объекты

Введенный в R2019a