Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций для студентов направления 230100 ту...doc
Скачиваний:
8
Добавлен:
01.04.2025
Размер:
7.52 Mб
Скачать

6.4.2Метод контрольных сумм

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

Пример:

Будем из входной последовательности символов брать по четыре информационных символа а1а2а3а4, дополнять их тремя контрольными символами а5а6а7 и получившееся семисимвольное слово посылать в канал. Контрольные символы будем подбирать так, чтобы были четными следующие суммы:

s1= а1 2 3 + a5,

s2= а1 2 4 + a6,

s3= а1 3 4 + a7.

В каждую сумму входит по оному контрольному символу, поэтому данное требование всегда выполнимо.

Благодаря «маленьким хитростям», предусмотренным при формировании контрольных сумм, проверка их четности на выходе канала позволяет однозначно установить, была ли допущена при передаче однократная ошибка и какой из разрядов был при этом искажен (ошибками большей кратности пренебрегаем).Действительно, если один из семи символов был искажен, то по крайней мере одна из сумм обязательно окажется нечетной, т.е. четность всех контрольных сумм s1, s2, s3 свидетельствует об отсутствии однократных ошибок. Далее, лишь одна сумма будет нечетной в том, (и только в том) случае, если искажен входящий в эту сумму один из трех контрольных символов (a5, a6 или a7). Нечетность двух сумм означает, что искажен тот из информационных символов а2, а3 или а4, который входи в обе эти суммы. Наконец, нечетность всех трех сумм означает, что неверно принят входящий во все суммы символ а1.

Итак, в данном примере метод контрольных сумм, увеличивая длину кода в 7/4=1,75 раза за счет введения избыточности, позволяет исправить любую однократную ошибку (но не ошибку большей кратности). Основываясь на этой идее, в принципе, можно построить коды, исправляющие все ошибки большей (но всегда ограниченной) кратности.

6.4.3Коды Хэмминга

Коды, предложенные американским ученым Р. Хэммингом, обладают способностью не только обнаружить, но и исправить одиночные ошибки. Эти коды – систематические.

По методу Хэмминга могут быть построены коды разной длины. При этом чем больше длина кода, тем меньше относительная избыточность. Например, для контроля числа, имеющего 48 двоичных разрядов. Коды Хэмминга используют в основном для контроля передачи информации по каналам связи, что имеет место в вычислительных системах с телеобработкой данных или в системах коллективного пользования.

6.4.4Контроль по модулю

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

Рассмотрим основные положения из теории сравнений.

Если целым числам А и В соответствует один и тот же остаток от деления на третье число р, то числа А и В равноостаточны друг другу по модулю р или сравнимы по модулю р. Сравнения — уравнения типа:

А = В(mod р).

Сравнимость двух чисел равносильна возможности представить их в алгебраическом виде

А = В + р1.

Сравнения обладают рядом свойств:

Сравнения можно почленно складывать. Если А1 ≡ В1(mod р);

А2 ≡ В2(mod р);...; Аn≡Вп(mod р), то А1 + А2 + ... + Ап ≡ В1 + В2 + ... + Вn(mod р).

Следовательно, слагаемое, стоящее в какой-либо части сравнения, можно переносить в другую часть, поменяв при этом его знак, т. е. А + В ≡ С(mod р) или А ≡ С - В(mod р).

Два числа, сравнимые с третьим числом, сравнимы и между собой: если А ≡ В(mod р); С = B(mod р), то А ≡ С(mod р).

Сравнения можно почленно перемножить. Пусть A1 ≡ В1 (mod p); А2 ≡ В2(mod p). Тогда A1 = B1 + l1p; А2 = В2 + l2р.

После умножения получаем А1А2 = В1В2 + В1l2p + В2l1р + l1l2pp. Следовательно, А1А2 = В1В2 + Np, или в общем случае:

А1А2А3...Аm ≡ В1В2В3...Вm (mod p).

Из свойства 3 также следует, что обе части сравнения можно умножить на одно и то же целое число.

Пусть А ≡ В(mod p); К = К(mod p). Тогда АК ≡ ВК(mod p).

Обе части сравнения и модуль можно умножить на одно и то же число:

А = В + lp; Аm = Вm + mlp, т. е. Аm = Вm(mod mp).

Обе части сравнения и модуль можно разделить на любой общий делитель. Пусть А ≡ B(mod p), где А = ad, В = bd, Р = p1d. Тогда А = В + lp.

Подставив в это выражение значения А, В и Р, получим

ad = bd + lp1d.

Разделив уравнение на d, получим а = b + lp1, т. е. a = b(mod p1).

Обе части сравнения можно возвести в степень. Если А ≡ В(mod p),

то А" = В"(mod p).

Из свойства 6 следует, что над сравнениями можно провести операцию извлечения корня n-й степени.

Рассмотренные выше свойства сравнений используются для осуществления операции контроля.

Существуют два метода получения контрольного кода: числовой и цифровой.