Пусть количество сообщений, которые требуется передавать абоненту, равно 16. Для их без избыточного кодирования можно использовать двоичные слова длимы 4, но тогда код не будет корректировать ошибки. При использовании слов длины 5, как мы уже знаем, можно обнаружить, но не исправить любую одиночную ошибку. Впрочем, из дополнения 3 предыдущего параграфа вытекает, что если добавить 5 проверочных символов, то код сможет не только исправлять одиночные, но и обнаруживать двойные ошибки. Возникает вопрос: нельзя ли для этой цели обойтись меньшим количеством проверочных символов?
Вычислим сначала, каково минимальное число проверочных символов, необходимое для исправления любых одиночных ошибок. Нетрудно убедиться, что двух добавочных символов для этого недостаточно (предлагаем читателю проверить это самостоятельно).
Попробуем обойтись тремя проверочными символами, т. е. будем использовать для кодирования сообщений двоичные словадлины 7, Наша задача — определить, произошла ли ошибка, и если произошла, то в каком месте. Но это то же самое, что указать одно из восьми чисел от 0 до 7 (0 соответствует отсутствию ошибки).
Пусть требуется передать сообщение, кодируемое словом aia2a3a4. Добавим к этому слову три символа а5, ай, а7, определяемые равенствами (здесь и до конца параграфа все равенства берутся по модуле 2):
Если теперь нужно выяснить, допущена ли при передаче слова ада2а8а4С1бага7 одиночная ошибка в одном из символов a4> ctf)l а7, то для этого достаточно вычислить сумму:
Ее значение, равное 1, соответствует ответу «да», значение О — ответу «нет» (почему?).
В случае «да» проверим, нет ли ошибки в символах ав, а , в случае «нет» — не содержится ли ошибка в символах а2, ая. В каждом из этих случаев ответ дает значение суммы:
Г.слп, например, значения обеих сумм (2) и (3) равны 1, то ошибка содержится либо в а„, либо в а7. Всего имеется четыре комбинации значений сумм Si, s2; они приведены в следующей таблице:
Таблица 18
Наконец в каждом из четырех случаев нужно выбрать одну из двух возможностей. Это позволит сделать значение суммы
Итак, мы имеем три проверочных соотношения:
которые позволяют либо установить, что ошибки нет, либо однозначно указать ее место.
Отметим особо, что если произошла одиночная ошибка, то ее положение указывается числом с двоичной записью SjSaSe. Пусть, например, = I, Sa=0, S3=l. Согласно таблице 18 ошибка допущена в четвертом или пятом разрядах; поскольку s3=l, она — в пятом разряде, но как раз и есть двоичная запись числа 5.
Изученный здесь код — это код Хемминга длины 7 с четырьмя информационными символами.
В общем случае кодовые слова двоичного кода Хемминга, позволяющего исправить одиночную ошибку, имеют длину 2т—1 (т — натуральное). Для определения положения ош ;бки тогда уже нужно т проверок, т. е. т прове- рочиых символов. Оставшиесясимволов являются информационными. Проверки строятся по анг.-югип с рассмотренным случаем. Значения т проверок, как ч выше, образуют номер положения ошибки.
Вернемся, однако, к вопросу, поставленному в начале этого параграфа. Добавим к кодовым словам кода Хеминга длины 7 еще один проверочный символ а0, а к проверочным соотношениям (5) еще одно (общую проверку на четность):
Новый код по-прежнему будет содержать 16 кодовых слог, потому что, как и раньше, символы аи а2, а3, а4 могут быть взяты какими угодно; по ним из соотношений (1) определяются символы а6, а6» а7» a из равенства (6) и символ а0. В случае одиночной ошибки добавленное соотношение (6) нарушается, а значения su s2, s3 образуют номер положения ошибки. Если же произошла двойная ошибка, то соотношение (6) будет выполнено, а хотя бы одно из равенств (5) нарушится (почему?). Это и позволяет обнаружить любую двойную ошибку. Итак, для исправления одиночных и обнаружения двойных ошибок к четырем информационным символам достаточно добавить четыре проверочных символа. Можно показать, что обойтись меньшим числом проверочных символов невозможно.
Построенное множество кодовых слов удовлетворяющих соотношениям (5) и (6),— пример расширенного кода Хемминга (длины 8 с четырьмя информационными символами).
0 коммент.:
Отправить комментарий