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 обработка цепей, заданных в Разделе TR 38.212 6.2 и Разделе 7.2, соответственно.

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

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

Энкодер DL-SCH, заданный как nrDLSCH Системный объект. Объект реализует DL-SCH, обрабатывающий цепь, заданную в Разделе TR 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