Сгенерируйте биты CRC кода согласно полиному генератора и добавьте к системам координат входных данных
Communications Toolbox / Выявление ошибок и Коррекция / CRC
Блок General CRC Generator генерирует биты контроля циклическим избыточным кодом (CRC) кода для каждого, входные данные структурируют, и добавляет их к системе координат. Для получения дополнительной информации смотрите Работу Генератора CRC.
In
— Входной сигналВходной сигнал, заданный как вектор столбца двоичных данных. Длина входного кадра должна быть кратной значению параметра Checksums per frame.
Типы данных: double |
Boolean
Out
— Выведите систему координат кодовой комбинацииВыведите систему координат кодовой комбинации, возвращенную как вектор столбца двоичных данных, который наследовал тип данных входного сигнала. Выход содержит системы координат входных данных с последовательностями битов CRC, добавленными им.
Длиной выходной системы координат является m + k * r, где m является размером входного кадра, k является количеством контрольных сумм на систему координат, и r является степенью полинома генератора.
Generator polynomial
— Полином генератора'z^16 + z^12 + z^5 + 1'
(значение по умолчанию) | полиномиальный вектор символов | вектор строки двоичных знаков | целочисленный вектор-строкаПолином генератора для алгоритма CRC, заданного как одно из следующего:
Полиномиальный вектор символов, такой как 'z^3 + z^2 + 1'
.
Вектор строки двоичных знаков, который представляет коэффициенты полинома генератора в порядке убывающей степени. Длина этого вектора (N +1), где N является степенью полинома генератора. Например, [1 1 0 1]
представляет полиномиальный x 3 + z 2 + 1.
Целочисленный вектор-строка, содержащий экспоненты z для ненулевых условий в полиноме в порядке убывания. Например, [3 2 0]
представляет полиномиальный z 3 + z 2 + 1.
Для получения дополнительной информации смотрите Символьное представление Полиномов.
Некоторые обычно используемые полиномы генератора включают:
Метод CRC | Полином генератора |
---|---|
CRC-32 | 'z^32 + z^26 + z^23 + z^22 + z^16 + z^12 + z^11 + z^10 + z^8 + z^7 + z^5 + z^4 + z^2 + z + 1' |
CRC-24 | 'z^24 + z^23 + z^14 + z^12 + z^8 + 1' |
CRC-16 | 'z^16 + z^15 + z^2 + 1' |
Обратный CRC-16 | 'z^16 + z^14 + z + 1' |
CRC-8 | 'z^8 + z^7 + z^6 + z^4 + z^2 + 1' |
CRC-4 | 'z^4 + z^3 + z^2 + z + 1' |
Пример: 'z^7 + z^2 + 1'
, [1 0 0 0 0 1 0 1], и
[7 2 0]
представляйте тот же полином, p (z) = z
7 + z
2 + 1.
Initial states
— Начальные состояния внутреннего сдвигового регистра
(значение по умолчанию) | 1
| вектор строки двоичных знаковНачальные состояния внутреннего сдвигового регистра, заданного как бинарный скаляр или вектор строки двоичных знаков с длиной, равняются степени полинома генератора. Скалярное значение расширено до вектора-строки из равной длины до степени полинома генератора.
Direct method
— Используйте прямой алгоритм в вычислениях контрольной суммы CRCoff
(значение по умолчанию) | on
Выберите, чтобы использовать прямой алгоритм в вычислениях контрольной суммы CRC. Когда очищено, блок использует непрямой алгоритм в вычислениях контрольной суммы CRC.
Для получения дополнительной информации о прямых и непрямых алгоритмах смотрите Выявление ошибок и Коррекцию.
Reflect input bytes
— Отразите входные байтыoff
(значение по умолчанию) | on
Выберите, чтобы инвертировать входные данные на bytewise основе прежде, чем ввести данные в сдвиговый регистр. Когда Reflect input bytes выбран, длина входного кадра, разделенная на значение параметра Checksums per frame, должна быть целым числом и кратным 8
. Когда Reflect input bytes очищен, блок не инвертирует входные данные.
Reflect checksums before final XOR
— Отразите контрольные суммы перед итоговым XORoff
(значение по умолчанию) | on
Выберите, чтобы инвертировать контрольные суммы CRC вокруг их центров после того, как входные данные будут полностью через сдвиговый регистр. Когда Reflect checksums before final XOR очищен, блок не инвертирует контрольные суммы CRC.
Final XOR
— Итоговый XOR
(значение по умолчанию) | 1
| вектор строки двоичных знаковИтоговые XOR, заданные как бинарный скаляр или вектор строки двоичных знаков с длиной, равняются степени полинома генератора. Запуски операции "исключающее ИЛИ" с помощью значения параметра Final XOR контрольная сумма CRC прежде, чем добавить CRC к входным данным. Скалярное значение расширено до вектора-строки из равной длины до степени полинома генератора. Установка 0
не эквивалентно никакой операции "исключающее ИЛИ".
Checksums per frame
— Количество контрольных сумм вычисляется для каждой системы координат
(значение по умолчанию) | положительное целое числоКоличество контрольных сумм вычисляется для каждой системы координат, заданной как положительное целое число.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Кодирование контроля циклическим избыточным кодом (CRC) является методом кодирования контроля ошибок для обнаружения ошибок, которые происходят, когда кадр данных передается. В отличие от блочных или сверточных кодов, коды CRC не имеют встроенной возможности исправления ошибок. Вместо этого когда система связи обнаруживает ошибку в полученной кодовой комбинации, получатель запрашивает отправителя ретранслировать кодовую комбинацию.
В кодировании CRC передатчик применяет правило к каждой системе координат данных, чтобы создать дополнительные биты CRC, названные контрольной суммой или синдромом, и затем добавляет контрольную сумму к системе координат данных. После получения переданной кодовой комбинации получатель применяет то же правило к полученной кодовой комбинации. Если получившаяся контрольная сумма является ненулевой, ошибка произошла, и передатчик должен снова послать систему координат данных.
Когда количество контрольных сумм на систему координат больше 1, система координат входных данных разделена на подкадры, правило применяется к каждому подкадру данных, и отдельные контрольные суммы добавлены к каждому подкадру. Кодовые комбинации подкадра конкатенированы, чтобы вывести одну систему координат.
Для обсуждения поддерживаемых алгоритмов CRC см. Коды Контроля циклическим избыточным кодом.
Генератор CRC добавляет контрольные суммы CRC к входному кадру согласно заданному полиному генератора и количеству контрольных сумм на систему координат.
Для определенного начального состояния внутреннего сдвигового регистра и контрольных сумм k на входной кадр:
Входной сигнал разделен на подкадры k равного размера.
Каждый из подкадров k снабжается префиксом вектор начальных состояний.
Алгоритм CRC применяется к каждому подкадру.
Получившиеся контрольные суммы добавлены в конец каждого подкадра.
Подкадры конкатенированы и выведены как вектор-столбец.
Для сценария, показанного здесь, вводится 10-битная система координат, третий полином генератора степени вычисляет контрольную сумму CRC, начальное состояние 0, и количество контрольных сумм на систему координат равняется 2.
Входной кадр разделен на два подкадра размера 5, и контрольные суммы размера 3 вычислены и добавлены к каждому подкадру. Начальные состояния не показывают, потому что начальное состояние [0]
не влияет на выход алгоритма CRC. Переданный кадр кодовой комбинации выхода имеет размер 5 + 3 + 5 + 3 = 16.
[1] Sklar, Бернард. Цифровая связь: основные принципы и приложения. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1988.
[2] Ивовый прут, системы контроля ошибок Стивена Б. для цифровой связи и устройства хранения данных. Верхний Сэддл-Ривер, Нью-Джерси: Prentice Hall, 1995.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.