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. “NR; Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

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

Функции

Объекты

Введенный в R2019a