nrCRCEncode

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

Описание

пример

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

пример

blkcrc = nrCRCEncode(blk,poly,mask) применяет логическое различие (XOR) маска на добавленных битах CRC с интегральным значением mask. Добавленные биты CRC в blkcrc XOR-маскируются со старшим значащим битом (MSB) сначала к младшему значащему биту (LSB) в последний раз. CRC маскированный имеет форму (p0 xor m0), (p1 xor m1), …, (pL-1 xor mL-1), где L количество битов четности и p0 и m0 MSBs в бинарном представлении CRC и mask, соответственно. Если значение маски больше 2L - 1, L LSBs рассматриваются для маски.

Примеры

свернуть все

Вычислите и добавьте биты четности CRC ко все-нулевой матрице двух блоков данных. Результатом является все-нулевая матрица размера 124 2.

blkcrc = nrCRCEncode(zeros(100,2),'24C');
any(blkcrc(:,1:2));

Вычислите и добавьте замаскированные биты четности CRC ко все-нулевой матрице двух блоков данных. Добавленные биты CRC XOR-маскируются с заданным mask, от MSB сначала к LSB в последний раз. Результатом является все-нулевая матрица кроме элементов в последней позиции.

mask = 1;
blkcrc = nrCRCEncode(zeros(100,2),'24C',mask);
blkcrc(end-5:end,1:2)
ans = 6×2

     0     0
     0     0
     0     0
     0     0
     0     0
     1     1

Входные параметры

свернуть все

Входные данные в виде матрицы вещественных чисел. Каждый столбец матрицы обработан как отдельный блок данных.

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

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

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

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

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

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

свернуть все

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

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

Ссылки

[1] 3GPP TS 38.212. “NR; Мультиплексирование и кодирование канала”. Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group.

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

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

Введенный в R2018b