Корректи'рующие ко'ды, помехоустойчивые коды, коды обнаружения и исправления ошибки, коды , позволяющие по имеющейся в кодовой комбинации избыточности обнаруживать и исправлять определённые ошибки, появление которых приводит к образованию ошибочных или запрещенных комбинаций. Применяются при передаче и обработке информации в вычислительной технике, телеграфии, телемеханике и технике связи, где возможны искажения сигнала в результате действия различного рода помех. Кодовые слова К. к. содержат информационные и проверочные разряды (символы). В процессе кодирования при передаче информации из информационных разрядов в соответствии с определёнными для каждого К. к. правилами формируются дополнительные символы — проверочные разряды. При декодировании из принятых кодовых слов по тем же правилам вновь формируют проверочные разряды и сравнивают их с принятыми; если они не совпадают, значит при передаче произошла ошибка. Существуют коды, обнаруживающие факт искажения сообщения, и коды, исправляющие ошибки, т. е. такие, с помощью которых можно восстановить первичную информацию.
В качестве примера рассмотрим код Хэмминга. Пусть требуется передать некоторое слово 1010. При кодировании оно будет представлено как 1011010, где 1-й, 2-й и 4-й разряды проверочные (слева направо 101), а остальные информационные. Если при передаче произошла ошибка, например в 3-м разряде вместо 1 получен 0, то при декодировании проверочные разряды примут значения: 1-й (младший) — 1, 2-й — 1, 4-й — 0 (т. е. 011). Несовпадение кодовых комбинаций проверочных разрядов не только сигнализирует о наличии ошибки, но и указывает номер искажённого разряда (011 — 3 в двоичном коде).
Корректирующая и обнаруживающая способность кодов зависит от кодового расстояния d между словами, численно равного минимальному числу ошибок, которое может превратить одно слово в другое. Например, имеется кодовая комбинация: 0111100; 0100101; 0010110. Первая группа (слово) отличается от второй в трёх разрядах, вторая от третьей — в четырёх разрядах, первая от третьей — в трёх разрядах. Минимальное расстояние d между этими словами равно 3. Если в первом слове произойдёт 3 ошибки, то оно может превратиться либо во второе, либо в третье слово; при декодировании такая ошибка не будет обнаружена. Максимальное число ошибок, которое в данном случае может быть обнаружено, равно 2. Если в первом слове произошла ошибка во втором разряде, то полученное слово отличается от второго в четырёх разрядах, от третьего — в двух разрядах, от первого — в одном разряде. Согласно максимального правдоподобия методу, при декодировании делается вывод, что, вероятнее всего, передавалось первое слово. Для правильного декодирования необходимо, чтобы максимальное число ошибок в передаваемом слове превращало его в слово, отличающееся от исходного в наименьшем числе разрядов. Чтобы исправлять все комбинации из t ошибок, необходимо и достаточно, чтобы d ³ 2t+ 1.
Ошибки в передаваемых словах могут возникать вследствие либо независимых искажений разрядов (в этом случае применяют, например, коды типа кода Хэмминга), либо искажений группы рядом стоящих разрядов (для таких случаев разработаны коды, исправляющие одиночные пачки ошибок, и коды, исправляющие более одной пачки ошибок); для обнаружения ошибок в процессе вычислений на ЭВМ разработаны так называемые арифметические коды.
Лит.: Питерсон У., Коды, исправляющие ошибки, пер. с англ., М., 1964.
Г. Н. Оныкий.