exponenta event banner

lteCRCDecode

Декодирование и удаление циклического избыточного кода

Описание

пример

[blk,err] = lteCRCDecode(blkcrc,poly) проверяет вектор входных данных на наличие ошибки CRC, предполагая, что вектор содержит блок данных с присоединенными соответствующими битами CRC. Часть данных входного сигнала возвращается в векторе blk. Логическое различие (XOR) между присоединенным CRC и CRC, пересчитанным по части данных входного сигнала, возвращается в uint32 скаляр err. Если err не равно 0, либо произошла ошибка, либо входной CRC был замаскирован. Логическая маска также может быть применена непосредственно к err. Соответствующие многочлены см. в TS 36.212 [1], раздел 5.1.1.

пример

[blk,err] = lteCRCDecode(blkcrc,poly,mask) проверяет вектор входных данных на наличие ошибки CRC XOR-ing со скаляром mask перед возвращением параметра в err. mask значение применяется к битам CRC с первым старшим битом (MSB) и последним младшим битом (LSB).

Примеры

свернуть все

Проверьте эффект декодирования CRC блока данных с маской и без маски.

CRC кодирует присоединение маскированного '24A'-тип CRC для вектора «все единицы» длиной 100.

rnti = 8;
blkcrc = lteCRCEncode(ones(100,1),'24A',rnti);

Декодирование CRC с блоком данных без использования маски.

[blk1,err1] = lteCRCDecode(blkcrc,'24A');
err1
err1 = uint32
    8

Логическая разница между исходным CRC и пересчитанным CRC равна маске CRC. Поскольку CRC был маскирован, декодирование без указания маски возвращено err1 = 8, что является значением rnti.

Декодирование CRC с использованием RNTI в качестве маски.

[blk2,err2] = lteCRCDecode(blkcrc,'24A',rnti);
err2
err2 = uint32
    0

Возвращенные выходные данные, err2, равно 0, поскольку исходная маска, rnti, является XORed с собой.

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

свернуть все

Вектор входных данных CRC, заданный как вектор числового столбца. Функция проверяет входной битовый вектор на наличие ошибки CRC, предполагая, что данные состоят из блока данных с присоединенными битами CRC.

Многочлен CRC, указанный как '8', '16', '24A', или '24B'. Соответствующие многочлены см. в TS 36.212 [1], раздел 5.1.1.

XOR-маска, заданная как скалярное целое число. Разница CRC является XOR-ed с mask прежде err возвращается.

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

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

свернуть все

Битовый вектор данных, возвращаемый как вектор столбца. blk является частью ввода, предназначенной только для данных blkcrc.

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

Логическое различие, возвращаемое в виде целого числа. err является логической разницей между CRC и CRC, пересчитанными по части данных входного сигнала.

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

Ссылки

[1] 3GPP TS 36.212. "Развитый универсальный наземный радиодоступа (E-UTRA); мультиплексирование и канальное кодирование. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы. URL: https://www.3gpp.org.

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