exponenta event banner

crc.detector

(Чтобы быть удаленным) объект детектора CRC Построения

crc.detector будет удален в будущем релизе. Чтобы обнаружить ошибки во входных данных с помощью контроля циклическим избыточным кодом (CRC), используйте comm.CRCDetector Системный объект вместо этого. Для получения дополнительной информации о рекомендуемом рабочем процессе см. Вопросы совместимости.

Синтаксис

h= crc.detector(polynomial)

h= crc.detector(generatorObj)

h= crc.detector(‘Polynomial’, polynomial, ‘param1’, val1, etc.)

h= crc.detector

Описание

h= crc.detector(polynomial) создает объект H детектора CRC, заданный ПОЛИНОМОМ порождающего полинома

h= crc.detector(generatorObj) создает объект H детектора CRC, заданный параметрами, найденными в объекте генератора CRC GENERATOROBJ

h= crc.detector('property1', val1, ...) создает объект H детектора CRC со свойствами, как задано парами PROPERTY/VALUE.

h= crc.detector создает объект H детектора CRC со свойствами по умолчанию. Это создает детектор CRC-CCITT и эквивалентно:

h= crc.detector('Polynomial','0x1021','InitialState','0xFFFF','ReflectInput',false,'ReflectRemainder',false,'FinalXOR','0x0000')

Свойства

Следующая таблица описывает свойства объекта детектора CRC. Все свойства перезаписываемы, кроме Type.

СвойствоОписание
TypeЗадает объект как 'Детектор CRC'.
PolynomialПорождающий полином, который задает связи для линейного сдвигового регистра обратной связи. Это свойство может быть задано как бинарное представление вектора, убывающее степени полинома. В этом случае продвижение '1' из полинома должно быть включено. Это может также быть задано как строка, снабженная предисловием '0x', который является шестнадцатеричным представлением убывающих степеней полинома. В этом случае продвижение '1' из полинома не использовано.
InitialStateНачальное содержимое сдвигового регистра. Это свойство может быть задано как бинарный скаляр, бинарный вектор, или как строка, снабженная предисловием '0x', который является шестнадцатеричным представлением бинарного вектора. Как бинарный вектор, его длина должна быть той меньше, чем продолжительность бинарного векторного представления Полинома.
ReflectInputБулево количество, которое задает, должны ли входные данные быть инвертированы на bytewise базисе до ввода сдвигового регистра.
ReflectRemainderБулево количество, которое задает, должна ли контрольная сумма CRC двоичного выхода быть инвертирована вокруг ее центра после входных данных, полностью через сдвиговый регистр.
FinalXORЗначение, с которым контрольная сумма CRC должна быть XORed только до обнаружения входных данных. Это свойство может быть задано как бинарный скаляр, бинарный вектор или как строка, снабженная предисловием '0x', который является шестнадцатеричным представлением бинарного вектора. Как бинарный вектор, его длина должна быть той меньше, чем продолжительность бинарного векторного представления Полинома.

Обнаружить метод используется с объектом обнаружить ошибки в цифровой передаче.

Алгоритм генерации CRC

Для получения информации имея отношение к алгоритму генерации CRC, см. Коды Контроля циклическим избыточным кодом.

Метод детектора

[OUTDATA ERROR] = DETECT(H, INDATA) обнаруживает ошибки передачи в закодированном входном сигнале INDATA путем регенерации контрольной суммы CRC с помощью объекта H детектора CRC. Детектор затем сравнивает регенерированную контрольную сумму с контрольной суммой, добавленной к INDATA. INDATA с бинарным знаком может быть или вектор-столбцом или матрицей. Если это - матрица, каждый столбец считается отдельным каналом. OUTDATA идентичен входному сигналу INDATA, за исключением того, что этому сняли изоляцию с контрольной суммы CRC. ОШИБКА 1xC логический вектор, указывающий, если закодированное сообщение, INDATA имеет ошибки, где C является количеством каналов в INDATA. ОШИБОЧНОЕ значение 0 не указывает ни на какие ошибки, и значение 1 указывает на ошибки.

Примеры

Создайте генератор CRC-16 CRC, затем используйте его, чтобы сгенерировать контрольную сумму для бинарного вектора, представленного последовательностью ASCII '123456789'. Введите ошибку, затем обнаружьте ее с помощью детектора CRC-16 CRC.

gen = crc.generator('Polynomial', '0x8005', 'ReflectInput', ...
true, 'ReflectRemainder', true);
det = crc.detector('Polynomial', '0x8005', 'ReflectInput', ...
true, 'ReflectRemainder', true);
% The message below is an ASCII representation
% of the digits 1-9
msg = int2bit((49:57)',8);
encoded = generate(gen, msg);
encoded(1) = ~encoded(1);                % Introduce an error
[outdata error] = detect(det, encoded);  % Detect the error
noErrors = isequal(msg, outdata)         % Should be 0
error                                    % Should be 1

Этот пример генерирует следующий выход:

noErrors = 0 error = 1 

Вопросы совместимости

развернуть все

Предупреждает запуск в R2020b

Смотрите также

Функции

Объекты

Блоки

Введенный в R2008a