exponenta event banner

nrCRCDecode

Декодирование и удаление контроля циклическим избыточным кодом (CRC)

Описание

пример

[blk,err] = nrCRCDecode(blkcrc,poly) проверяет входные данные blkcrc для ошибки CRC. Функция предполагает, что входные данные содержат биты контроля четности CRC, связанные с многочленом. poly. Функция возвращает blk, которая является частью данных ввода blkcrc. Функция также возвращает err, которая является логической разностью (XOR) между CRC, содержащимся на входе, и CRC, пересчитанным по части данных на входе. Если err не равно 0, либо произошла ошибка, либо входной CRC был замаскирован. Дополнительные сведения о связанных многочленах см. в TS 38.212 Раздел 5.1 [1].

пример

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

Примеры

свернуть все

Проверьте эффект декодирования CRC с помощью маски и без нее.

Определите маску, соответствующую временному идентификатору радиосети (RNTI), равной 12. Добавление битов контроля четности CRC с маскированием RNTI к матрице «все единицы» одного блока данных.

rnti = 12;
blkCrc = nrCRCEncode(ones(100,1),'24C',rnti);

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

[blk,err1] = nrCRCDecode(blkCrc,'24C');
err1
err1 = uint32
    12

При выполнении декодирования CRC с использованием значения RNTI в качестве маски err равно 0.

[blk,err2] = nrCRCDecode(blkCrc,'24C',err1);
err2
err2 = uint32
    0

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

свернуть все

Кодированные данные CRC, определенные как матрица вещественных чисел. Каждый столбец матрицы рассматривается как отдельный блок данных, кодированных ЦИК.

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

Многочлен CRC, указанный как '6', '11', '16', '24A', '24B', или '24C'. Дополнительные сведения о связанных многочленах см. в TS 38.212 Раздел 5.1.

Типы данных: char | string

XOR-маска, заданная как неотрицательное целое число. Маска обычно является временным идентификатором радиосети (RNTI).

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

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

свернуть все

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

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

Логическое различие CRC, возвращаемое как целое число. err - логическое различие между CRC, входящим во вход blkcrc и CRC пересчитали по части данных входного сигнала. Если указана маска, функция XOR-masks err с mask перед возвращением.

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

Ссылки

[1] 3GPP TS 38.212. "НР; мультиплексирование и канальное кодирование. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2018b