nrCodeBlockSegmentLDPC

Код LDPC блокирует прикрепление сегментации и CRC

Синтаксис

cbs = nrCodeBlockSegmentLDPC(blk,bgn)

Описание

пример

cbs = nrCodeBlockSegmentLDPC(blk,bgn) разделяет блок blk входных данных в сегменты блока кода на основе основного номера графика bgn, как задано в Разделе TS 38.212 5.2.2 [1]. Функция добавляет контроль циклическим избыточным кодом (CRC) и биты заполнителя к каждому сегменту блока кода в cbs (если применимо). nrCodeBlockSegmentLDPC предоставляет вход кодерам имеющей малую плотность проверки четности (LDPC) в транспортных каналах, включая нисходящий канал, и восходящий канал совместно использовал каналы и каналы разбивки на страницы.

Примеры

свернуть все

Создайте случайную последовательность данных о двоичном входе. Выполните сегментацию блока кода. Когда основной номер графика равняется 1, результатам сегментации в одном сегменте блока кода. Когда основной номер графика равняется 2, результатам сегментации в двух сегментах блока кода. Сегментация происходит, только если входная длина больше, чем максимальный размер блока кода. Максимальный размер блока кода 8448, когда основной номер графика равняется 1 и 3840, когда основной номер графика равняется 2.

in = randi([0,1],4000,1);
cbs1 = nrCodeBlockSegmentLDPC(in,1); 
cbs2 = nrCodeBlockSegmentLDPC(in,2);
size(cbs1)
size(cbs2)
ans =

    4224           1


ans =

    2080           2

Создайте ввод данных пандуса и выполните сегментацию блока кода. Вход длины 4000 разделен в два сегмента блока кода равного размера с 24B CRC и присоединенные биты заполнителя. Чтобы видеть, как входные карты на вывод, постройте индексы входных данных относительно соответствующих индексов сегмента блока кода.

cbs = nrCodeBlockSegmentLDPC([1:4000]',2);
plot(cbs)
legend('CBS1','CBS2')
xlabel('Code Block Bit Indices');
ylabel('Input Data Bit Indices + CRC/Filler');
title('Code Block Segmentation Operation')

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

свернуть все

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

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

Основной номер графика, заданный как 1 или 2.

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

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

свернуть все

Сегменты блока кода, возвращенные как целочисленная или действительная матрица. Каждый столбец соответствует отдельному сегменту блока кода. Количество сегментов блока кода зависит от максимального размера блока кода кодера LDPC, Kcb и длины входа blk, B. Если bgn установлен в 1, Kcb = 8448. Если bgn установлен в 2, Kcb = 3840. Если BKcb, то функция не выполняет сегментацию и не добавляет CRC к получившемуся блоку кода. Если B> Kcb, сегментация приводит к нескольким меньшим блокам кода с CRC типа-24B добавленные биты.

Функция добавляет биты заполнителя к каждому блоку кода (с или без CRC) при необходимости. Биты заполнителя гарантируют, что сегменты блока кода, вводящие кодер LDPC, имеют допустимую длину и являются кратными LDPC подъем размера. Чтобы разместить биты заполнителя, представленные –1, тип данных cbs брошен к int8, когда вход blk является логическим. В противном случае cbs наследовал тип данных входа blk.

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

Ссылки

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

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

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

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

Функции

Введенный в R2018b