nrCodeBlockSegmentLDPC

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

Описание

пример

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

Примеры

свернуть все

Создайте случайную последовательность данных о двоичном входе.

in = randi([0,1],4000,1);

Выполните сегментацию блока кода LDPC.

cbs1 = nrCodeBlockSegmentLDPC(in,1); 
cbs2 = nrCodeBlockSegmentLDPC(in,2);

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

size(cbs1)
ans = 1×2

        4224           1

size(cbs2)
ans = 1×2

        2080           2

Создайте ввод данных пандуса и выполните сегментацию блока кода.

cbs = nrCodeBlockSegmentLDPC([1:4000]',2);

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

plot(cbs)
legend('CBS1','CBS2')
xlabel('Code Block Bit Indices');
ylabel('Input Data Bit Indices + CRC/Filler');
title('Code Block Segmentation Operation')

Figure contains an axes. The axes with title Code Block Segmentation Operation contains 2 objects of type line. These objects represent CBS1, CBS2.

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

свернуть все

Входные данные блокируются в виде вектор-столбца вещественных чисел.

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

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

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

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

свернуть все

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

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

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

Ссылки

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

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

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

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

Функции

Введенный в R2018b