lteCodeBlockDesegment

Десегментация блока кода и декодирование CRC

Описание

[blk,err] = lteCodeBlockDesegment(cbs,blklen) конкатенирует входные векторы блока кода, содержавшиеся в cbs в выходной вектор, blk, из длины blklen. blklen также используется, чтобы подтвердить размерности данных в cbs и вычислить сумму заполнителя, который будет удален. Если cbs массив ячеек, содержащий больше чем один вектор, каждый вектор принят, чтобы присоединить CRC типа-24B. Этот CRC декодируется и разделяется от каждого блока кода перед выходной конкатенацией, и ошибочный результат CRC помещается в связанный элемент векторного err. Длина err количество блоков кода. Если cbs один вектор или массив ячеек, содержащий один вектор, никакое декодирование CRC или разделение не выполняются и err isempty. Во всех случаях количество битов заполнителя, разделенных с начала (первого) блока кода, вычисляется от blklen. lteCodeBlockDesegment выполняет инверсию добавления сегментации и CRC блока кода (см. lteCodeBlockSegment).

пример

[blk,err] = lteCodeBlockDesegment(cbs) никакие ведущие биты заполнителя не разделяются от выхода.

Примеры

свернуть все

Выполните десегментацию блока кода и узнайте, когда сегментация произойдет.

Сегментация блока кода происходит, если входная длина больше 6144. Входной вектор длины 6145 сегментируется lteCodeBlockSegment в два вектора длины 3072 и 3136.

cbs = lteCodeBlockSegment(ones(6145,1));

Затем выполните удаление десегментации и CRC.

[blk,err] = lteCodeBlockDesegment(cbs);
size(blk)
ans = 1×2

        6160           1

err
err = 1x2 int8 row vector

   0   0

Первый выход, blk, вектор-столбец длины 6160. Второй выход, err, вектор-столбец нулевых значений.

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

свернуть все

Сегменты блока кода, заданные как вектор-столбец или массив ячеек вектор-столбцов. Если cbs массив ячеек, содержащий больше чем один вектор, каждый вектор принят, чтобы присоединить CRC типа-24B. Этот CRC декодируется и разделяется от каждого блока кода перед выходной конкатенацией, и ошибочный результат CRC помещается в связанный элемент векторного err. Длина err количество блоков кода. Если cbs один вектор или массив ячеек, содержащий один вектор, никакое декодирование CRC или разделение не выполняются и err isempty. Во всех случаях количество битов заполнителя, разделенных с начала (первого) блока кода, вычисляется от blklen.

Длина блока, заданная как неотрицательное целое число.

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

свернуть все

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

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

Ошибки декодирования блока CRC кода, возвращенные как неотрицательное целое число. Длина err равно количеству блоков кода. Если cbs массив ячеек, содержащий несколько векторных элементов, lteCodeBlockDesegment принимает, что каждому вектору присоединили CRC типа-24B. CRC декодируется и разделяется от каждого блока кода перед выходной конкатенацией, и ошибочный результат CRC помещается в связанный элемент err. Если cbs один вектор или массив ячеек, содержащий один вектор, никакое декодирование CRC или разделение не выполняются и err isempty.

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

Введенный в R2014a