exponenta event banner

getTransportBlock

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

Описание

trblk = getTransportBlock(encUL) возвращает транспортный блок из указанного системного object™ кодера общего канала восходящей линии связи (UL-SCH). Функция предполагает, что транспортный блок был ранее загружен в указанный кодер 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, указанную в TS 38.212 Раздел 6.2.

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

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

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

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

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

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

свернуть все

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

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

Ссылки

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

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

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

.

См. также

Функции

Объекты

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