exponenta event banner

lteCodeBlockDesegment

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

Описание

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

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

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

свернуть все

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

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

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

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

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