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. The 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 данные, заданные как матрица вещественных чисел. Каждый столбец матрицы рассматривается как отдельный блок данных с кодированием 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-маскирует err с mask перед возвратом.

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

Ссылки

[1] 3GPP TS 38.212. "NR; Мультиплексирование и канальное кодирование. "3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

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

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

.
Введенный в R2018b