Обнаружьте ошибки в принятых кадрах кодовой комбинации согласно порождающему полиному
Communications Toolbox / Выявление ошибок и Коррекция / CRC
Блок General CRC Syndrome Detector вычисляет контрольные суммы контроля циклическим избыточным кодом (CRC) для принятых кадров кодовой комбинации. Для успешного обнаружения CRC в ссылке системы связи необходимо выровнять установки параметров блока General CRC Syndrome Detector с парным блоком General CRC Generator.
Для получения дополнительной информации смотрите Работу Детектора Синдрома CRC.
In
— Полученная кодовая комбинацияПолученная кодовая комбинация в виде вектора столбца двоичных данных.
Типы данных: double |
Boolean
Out
— Выведите систему координатВыведите систему координат, возвращенную как вектор столбца двоичных данных, который наследовал тип данных входного сигнала. Выходная система координат содержит полученную кодовую комбинацию с удаленными контрольными суммами.
Длиной выходной системы координат является n - k * биты r, где n является размером полученной кодовой комбинации, k является количеством контрольных сумм на систему координат, и r является степенью порождающего полинома.
Err
— Сигнал ошибки контрольной суммыСигнал ошибки контрольной суммы, возвращенный как вектор столбца двоичных данных, который наследовал тип данных входного сигнала. Длина Err
равняется значению Checksums per frame. Для каждого расчета контрольной суммы, значения элемента 0 в Err
не указывает ни на какую ошибку контрольной суммы и значение элемента 1 в Err
указывает на ошибку контрольной суммы.
Generator polynomial
— Порождающий полином'z^16 + z^12 + z^5 + 1'
(значение по умолчанию) | полиномиальный вектор символов | вектор строки двоичных знаков | целочисленный вектор-строкаПорождающий полином для алгоритма CRC в виде одного из следующего:
Полиномиальный вектор символов, такой как 'z^3 + z^2 + 1'
.
Вектор строки двоичных знаков, который представляет коэффициенты порождающего полинома в порядке убывающей степени. Длина этого вектора (N +1), где N является степенью порождающего полинома. Например, [1 1 0 1]
представляет полиномиальный x3+ z2+ 1.
Целочисленный вектор-строка, содержащий экспоненты z для ненулевых терминов в полиноме в порядке убывания. Например, [3 2 0]
представляет полиномиальный z3 + z2 + 1.
Для получения дополнительной информации смотрите Представление Полиномов в Communications Toolbox.
Некоторые обычно используемые полиномы генератора включают:
Метод 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
Выберите Reflect checksums before final XOR, чтобы инвертировать контрольные суммы CRC вокруг их центров после того, как входные данные будут полностью через сдвиговый регистр. Когда Reflect checksums before final XOR очищен, блок не инвертирует контрольные суммы CRC.
Final XOR
— Итоговый XOR
(значение по умолчанию) | 1
| вектор строки двоичных знаковИтоговые XOR в виде бинарного скаляра или вектора строки двоичных знаков с длиной равняются степени порождающего полинома. Запуски операции "исключающее ИЛИ" с помощью значения параметра Final XOR и контрольной суммы CRC прежде, чем соответствовать входной контрольной сумме. Скалярное значение расширено до вектора-строки из равной длины до степени порождающего полинома. Установка 0
не эквивалентно никакой операции "исключающее ИЛИ".
Checksums per frame
— Количество контрольных сумм вычисляется для каждой системы координат
(значение по умолчанию) | положительное целое числоКоличество контрольных сумм, вычисленных для каждой системы координат в виде положительного целого числа.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Кодирование контроля циклическим избыточным кодом (CRC) является методом кодирования контроля ошибок для обнаружения ошибок, которые происходят, когда кадр данных передается. В отличие от блочных или сверточных кодов, коды CRC не имеют встроенной возможности исправления ошибок. Вместо этого когда система связи обнаруживает ошибку в полученной кодовой комбинации, приемник запрашивает отправителя ретранслировать кодовую комбинацию.
В кодировании CRC передатчик применяет правило к каждой системе координат данных, чтобы создать дополнительные биты CRC, названные контрольной суммой или синдромом, и затем добавляет контрольную сумму к системе координат данных. После получения переданной кодовой комбинации приемник применяет то же правило к полученной кодовой комбинации. Если получившаяся контрольная сумма является ненулевой, ошибка произошла, и передатчик должен снова послать систему координат данных.
Когда количество контрольных сумм на систему координат больше 1, система координат входных данных разделена на подкадры, правило применяется к каждому подкадру данных, и отдельные контрольные суммы добавлены к каждому подкадру. Кодовые комбинации подкадра конкатенированы, чтобы вывести одну систему координат.
Для обсуждения поддерживаемых алгоритмов CRC см. Коды Контроля циклическим избыточным кодом.
Детектор синдрома CRC выводит принятый кадр сообщения и вектор ошибок контрольной суммы согласно заданному порождающему полиному и количеству контрольных сумм на систему координат.
Биты контрольной суммы удалены из каждого подкадра, так, чтобы получившимся, выходной длиной системы координат является n - k × r, где n является размером полученной кодовой комбинации, k, было количество контрольных сумм на систему координат, и r является степенью порождающего полинома. Входной кадр должен быть равномерно делимым k.
Для определенного начального состояния внутреннего сдвигового регистра:
Полученная кодовая комбинация разделена на k равные измеренные подкадры.
CRC удален из каждого из подкадров k и по сравнению с контрольной суммой, вычисленной на полученные подкадры кодовой комбинации.
Выходная система координат собрана путем конкатенации битов подкадра подкадров k и затем выведена как вектор-столбец.
Ошибка контрольной суммы выводится как вектор столбца двоичных данных из длины k. Значение элемента 0 указывает на безошибочный полученный подкадр, и значение элемента 1 указывает, что ошибка произошла в полученном подкадре.
Для сценария, показанного здесь, получена 16-битная кодовая комбинация, третий порождающий полином степени вычисляет контрольную сумму CRC, начальное состояние 0, и количество контрольных сумм на систему координат равняется 2.
Поскольку количество контрольных сумм на систему координат равняется 2, и степень порождающего полинома равняется 3, полученная кодовая комбинация разделена в половине, и две контрольных суммы размера 3 вычисляются, один для каждой половины полученной кодовой комбинации. Начальные состояния не показывают, потому что начальное состояние [0]
не влияет на выход алгоритма CRC. Выходная система координат содержит конкатенацию двух половин полученной кодовой комбинации как один вектор из размера 10. Выход сигнала ошибки контрольной суммы содержит 2 1 бинарный вектор системы координат, записи которого зависят от того, являются ли вычисленные контрольные суммы нулем. Как показано на рисунке, первая контрольная сумма является ненулевой, и вторая контрольная сумма является нулем, указывая, что ошибка произошла в приеме первой половины кодовой комбинации.
[1] Sklar, Бернард. Цифровая связь: основные принципы и приложения. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1988.
[2] Ивовый прут, системы контроля ошибок Стивена Б. для цифровой связи и устройства хранения данных. Верхний Сэддл-Ривер, Нью-Джерси: Prentice Hall, 1995.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.