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 закодировал данные, заданные как матрица вещественных чисел. Каждый столбец матрицы рассматривается, когда отдельный 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; Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

Введенный в R2018b