Корректирующий код


Корректирующий код (также помехоустойчивый код) — код, предназначенный для обнаружения и исправления ошибок.

Основная техника — добавление при записи (передаче) в полезные данные специальным образом структурированной избыточной информации (например, контрольного числа), а при чтении (приёме) использование такой избыточной информации для обнаружения и исправления ошибки. Число ошибок, которое можно исправить, ограничено и зависит от конкретного применяемого кода.

Коды обнаружения ошибок (которые могут только установить факт ошибки) принадлежат к тем же классам кодов, что и коды, исправляющие ошибки. Фактически любой код, исправляющий ошибки, может быть также использован для обнаружения ошибок (при этом он будет способен обнаружить бо́льшее число ошибок, чем был способен исправить). Коды, исправляющие ошибки, применяются в системах цифровой связи, в том числе: спутниковой, радиорелейной, сотовой, передаче данных по телефонным каналам, а также в системах хранения информации, в том числе магнитных и оптических. Коды, обнаруживающие ошибки, применяются в сетевых протоколах различных уровней.

По способу работы с данными коды, исправляющие ошибки, делятся на блоковые[⇨], делящие информацию на фрагменты постоянной длины и обрабатывающие каждый из них в отдельности, и свёрточные[⇨], работающие с данными как с непрерывным потоком.

Блоковый код, разбивающий информацию на фрагменты длиной бит и преобразующий их в кодовые слова длиной бит обычно обозначают ; при этом число называется скоростью кода. Если исходные бит код оставляет неизменными, и добавляет проверочных, такой код называется систематическим, иначе — несистематическим.

Задать блоковый код можно по-разному, в том числе таблицей, где каждой совокупности из информационных бит сопоставляется бит кодового слова. Однако хороший код должен удовлетворять как минимум следующим критериям: