nrCRCDecode

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

Синтаксис

[blk,err] = nrCRCDecode(blkcrc,poly)
[blk,err] = nrCRCDecode(blkcrc,poly,mask)

Описание

пример

[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