nrCodeBlockDesegmentLDPC

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

Синтаксис

[blk,err] = nrCodeBlockDesegmentLDPC(cbs,bgn,blklen)

Описание

пример

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

Примеры

свернуть все

Выполните сегментацию блока кода случайной последовательности данных о двоичном входе. Когда основной номер графика равняется 1, сегментация происходит каждый раз, когда входная длина больше, чем 8 448. Входные данные длины 10000 разделены в два сегмента блока кода длины 5280. Сегменты блока кода имеют биты заполнителя и присоединенный CRC. Конкатенация кода блокирует сегменты с помощью nrCodeBlockDesegmentLDPC. Конкатенированный результат одного размера как исходный вход с CRC и удаленными битами заполнителя. Проверяйте, было ли декодирование CRC успешно путем проверки вектора ошибок.

bgn = 1;
blklen = 10000;
cbs = nrCodeBlockSegmentLDPC(randi([0 1],blklen,1),bgn);
size(cbs)
[blk,err] = nrCodeBlockDesegmentLDPC(cbs,bgn,blklen);
blkSize = size(blk)
err
ans =

    5280           2
    
blkSize =

    10000           1


err =

    1×2 uint32 row vector

    0   0

Создайте матрицу, представляющую два сегмента блока кода. Каждый элемент содержит линейный индекс того элемента в матрице. Конкатенация кода блокирует сегменты с помощью nrCodeBlockDesegmentLDPC с заданным основным номером графика и выходной длиной блока. Чтобы видеть, как введенные карты на вывод, постройте индексы сегмента блока кода относительно соответствующих индексов в конкатенированном входе. В каждом сегменте блока кода последние 280 битов представляют биты заполнителя и CRC. Эти дополнительные биты удалены из восстановленных данных.

cbs = reshape([1:10560]',[],2);
bgn = 1;
blklen = 10000;
blk = nrCodeBlockDesegmentLDPC(cbs,bgn,blklen);
plot(blk);
xlabel('Code Block Bit Indices');
ylabel('Recovered Data Bit Indices');
title('Code Block Desegmentation Operation');

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

свернуть все

Сегменты блока кода, заданные как действительная матрица. Матрица только с одним столбцом соответствует одному сегменту блока кода без добавленных битов CRC. Если вы задаете матрицу больше чем с одним столбцом, каждый столбец в матрице соответствует разделять сегменту блока кода с добавленными битами CRC типа-24B. В обоих случаях сегменты блока кода могут содержать биты заполнителя.

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

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

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

Выведите длину блока, заданную как неотрицательное целое число. Если blklen является 0, то и blk и err пусты. Функция использует blklen, чтобы подтвердить размерности данных входа cbs и вычислить количество битов заполнителя, чтобы удалить.

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

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

свернуть все

Конкатенированный блок данных, возвращенный как пустой вектор (когда blklen является 0), или действительный вектор-столбец. Функция удаляет любые биты заполнителя и биты CRC типа-24B, существующие во входе cbs. Вывод blk наследовал свой тип данных от входа cbs.

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

Ошибка CRC, возвращенная как одно из этих значений:

  • Пустой вектор — функция возвращает это значение, когда blklen является 0 или если cbs имеет только один столбец (декодирование CRC не происходит).

  • Вектор неотрицательных целых чисел — Если cbs имеет больше чем один столбец, err, содержит биты ошибки CRC, полученные из декодирования битов CRC типа-24B в каждом сегменте блока кода. Длина err равна количеству сегментов блока кода (количество столбцов во входе cbs).

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

Ссылки

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

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

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

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

Функции

Введенный в R2018b

Для просмотра документации необходимо авторизоваться на сайте