getTransportBlock

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

Описание

trblk = getTransportBlock(encUL) возвращает транспортный блок из заданного восходящего канала совместно использованный канал (UL-SCH) Система энкодера object™. Функция принимает, что транспортный блок ранее загрузился в заданный энкодер UL-SCH при помощи setTransportBlock функция.

пример

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

пример

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

Примеры

свернуть все

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

trBlkLen1 = 5120;
trBlk1 = randi([0 1],trBlkLen1,1,'int8');

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

targetCodeRate = 567/1024;
encUL = nrULSCH('MultipleHARQProcesses',true);
encUL.TargetCodeRate = targetCodeRate;

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

setTransportBlock(encUL,trBlk1,1);

Вызовите энкодер со схемой модуляции QPSK, 1 слоем передачи, продолжительность выхода 10 240 битов, версия 0 сокращения и процесс HARQ номер 1. Энкодер применяет UL-SCH, обрабатывающий цепь с транспортным блоком, загруженным в объект с помощью процесса HARQ номер 1.

encUL('QPSK',1,10240,0,1); 

Получите транспортный блок из энкодера для процесса HARQ номер 1. Проверьте, что полученный блок идентичен блоку, первоначально загруженному в энкодер для этого процесса HARQ.

tmp = getTransportBlock(encUL,1);
isequal(tmp,trBlk1) 
ans = logical
   1

Повторите операцию кодирования для нового транспортного блока длины 4400 и процесс HARQ номер 2.

trBlkLen2 = 4400;
trBlk2 = randi([0 1],trBlkLen2,1,'int8');
setTransportBlock(encUL,trBlk2,2); 
encUL('QPSK',1,8800,0,2);

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

tmp = getTransportBlock(encUL,1);
isequal(tmp,trBlk1)
ans = logical
   1

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

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

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

targetCodeRate = 567/1024;
encDL = nrDLSCH('MultipleHARQProcesses',true);
encDL.TargetCodeRate = targetCodeRate;

Загрузите транспортный блок 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);

Получите транспортный блок для транспортного номера блока 0 от энкодера, задав процесс HARQ номер 2. Проверьте, что полученный блок идентичен блоку, первоначально загруженному в энкодер для этого процесса HARQ.

tmp = getTransportBlock(encDL,trBlkID,harqID);
isequal(tmp,trBlk)
ans = logical
   1

Входные параметры

свернуть все

Энкодер UL-SCH, заданный как nrULSCH Системный объект. Объекты реализуют UL-SCH, обрабатывающий цепь, заданную в Разделе TR 38.212 6.2.

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

Транспортный номер блока в обработке DL-SCH, заданной как 0 или 1.

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

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

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

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

свернуть все

Транспортный блок, возвращенный как вектор столбца двоичных данных.

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

Ссылки

[1] 3GPP TS 38.212. “NR; Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

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

Функции

Системные объекты

Введенный в R2019a