Главная > Математика > Наука и теория информации
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

2. Коды, исправляющие одиночную ошибку

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

В интересной работе Хэмминга обсуждаются коды, дающие возможность определить положение ошибки и исправить ее. Это делается путем нескольких проверок на четность, и Хэмминг дает практические примеры применения своего метода.

Рассмотрим совокупность n двоичных цифр и предположим, что среди n позиций никогда не встретится более чем одна ошибка. Из числа n позиций мы выбираем m позиций для передачи информации, а остальные k позиций используем для проверки . Эти k двоичных цифр представляют различных двоичных чисел, которые должны указывать:

1) либо, что ошибки нет,

2) либо, если ошибка есть, то в какой позиции.

Всего получается указаний, откуда следует условие:

Проверка наиболее эффективна в случае знака равенства в (6.1).

В таблице 6.1 даны наибольшие числа символов, которые могут быть проверены при различных значениях k.

Таблица 6.1. Наибольшее число символов, которые могут быть проверены применением от одного до пяти проверочных символов

Второй случай в таблице 6.1 соответствует предположению, что в последовательности из трех двоичных цифр никогда не может быть больше, чем одна ошибка. Одна из этих цифр служит для передачи информации, а две другие — для проверки, согласно таблице 6.2.

Проверочные цифры B и С выбираются так, чтобы и были четными. Приемник вычисляет обе суммы, и если одна из них оказывается нечетной, проверочный сигнал в ней содержит ошибку. Если, например, нечетна, тогда как четна, то сигнал В неверен. Если имеется ошибка в сигнале A, то обе суммы будут нечетными. Отсюда ясно, какой сигнал должен быть исправлен.

Третий случай — код «четыре из семи»: четыре двоичных цифры для информации, три для проверки. Ошибки могут

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

Таблица 6.2. Схема кода с одной цифрой для информации и двумя для проверки

Примечание. Проверки должны быть выбраны так, чтобы сумма символов «X» по каждой строке давала четное число.

Таблица 6.3. Код с четырьмя двоичными цифрами для информации и тремя для проверки

(То же примечание, что и к табл. 6.2.)

Сигналы А, В, С и D могут быть либо 0, либо 1. Проверочные сигналы нужно выбрать так, чтобы были четными суммы

Приемник сопоставляет эти три суммы. Если все они четны, то ошибки нет (в силу нашего предположения о том, что в семи знаках не может быть больше одной ошибки). Если одна из сумм нечетна, то ошибка имеется в проверочном знаке этой суммы. Так, если первая сумма нечетна, то сигнал Е неверен. Если две суммы нечетны, то ошибка имеется в том сигнале, который является для обеих сумм общим, но не входит в третью. Так, если первые две суммы нечетны, то ошибка должна быть в В. Если все три суммы нечетны, то ошибка в А.

Примененный здесь метод несколько отличается от выбранного Хэммингом, но результаты в точности совпадают.

Рассмотрим четвертый случай таблицы 6.1 в предположении, что не может быть более одной ошибки в 15 двоичных цифрах. Это означает, что число информационных позиций , а число проверочных позиций k = 4. Система проверки показана в таблице 6.4.

Таблица 6.4. Код с одиннадцатью двоичными цифрами для информации и четырьмя для проверки

(То же примечание, что и к предыдущим таблицам.)

Это значит, что прсверочные сигналы нужно выбрать так, чтобы четными были суммы

Невыполнение этого условия в одной сумме указывает, что проверочный сигнал неверен. Ошибки в информационных сигналах дают нечетность в 2, 3 или 4 контрольных суммах.

Общий метод, примененный в этих примерах, теперь ясен. Если мы имеем k проверочных позиций и некоторое число m информационных сигналов А, В, С, D,..., мы включаем А во все k проверочных сумм. Каждый из следующих k сигналов встречается в (k — 1) из k проверочных сумм. Затем мы используем (k — 2) из k проверочных сумм для следующих сигналов и т. д. Каждая проверочная сумма содержит только по одному проверочному сигналу, и каждый данный проверочный сигнал встречается лишь однажды. Вообще k проверочных позиций дают:

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

в соответствии с (6.1), так что метод является общим.

Если имеется 6 информационных позиций (как в коде IBM), то требуется, по-прежнему, 4 проверочные позиции (см. таблицу 6.1), и мы можем произвольно выбрать 6 из 11 позиций от А до К таблицы 6.4.

<< Предыдущий параграф Следующий параграф >>
Оглавление