Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лк7А.Сжатие данных.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
140.29 Кб
Скачать

Биты четности

Использование битов четности (контрольных битов) является типовым решением для основной памяти. Принцип состоит в том, что если каждая обрабатываемая битовая комбинация будет содержать нечетное количество единиц, то обнаружение комбинации с четным количеством единиц будет свидетельствовать об ошибке. Реализация принципа достигается добавлением к уже существующему коду дополнительного бита, который устанавливается либо в 1, либо в 0 так, чтобы общее количество единиц в комбинации стало нечетным. Обычно этот бит четности является старшим битом. В результате, например, 8-ми разрядный код ASCII становится 9-ти разрядным и символ ‘A’ будет представлен как 101000001, а символ ‘F’ как 001000110, так что в обоих случаях количество единиц нечетно. При записи информации схема управления памятью автоматически добавляет контрольный бит. При считывании информации схема управления памятью подсчитывает количество единиц. Если ошибка не обнаружена, контрольный бит удаляется и образуется исходная комбинация. В противном случае считанное значение возвращается с указанием, что оно искажено.

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

Коды с исправлением ошибок

Принцип действия основан на применении кодировок с достаточно длинными дистанциями Хэмминга (R.W. Hamming ‑ первый исследователь в области разработки кодов с исправлением ошибок). Дистанция Хэмминга между двумя битовыми комбинациями равна количеству битов, отличающихся в этих комбинациях. Пусть, например,

Символ

Код

Дистанция Хэмминга

A

000000

4

B

001111

3

C

010011

4

D

011100

4

E

100110

4

F

101001

3

G

110101

4

H

111010

Если в результате сбоя в одиночном бите появится ошибка, она легко будет установлена, так как получившаяся комбинация не будет допустимой. В любой комбинации надо будет «испортить» не меньше трех битов. Кроме того, исправить ошибку будет нетрудно. Надо только просмотреть допустимые комбинации и найти ту из них, которая находится на дистанции, равной единице от имеющейся комбинации. Например, недопустимый код 101111 находится на единичной дистанции от 001111, кодирующей символ B. Значит, можно сделать вывод, что 101111 – это ошибочный код для B и исправить ошибку. Чем больше дистанция Хэмминга, тем больше ошибок можно обнаружить и исправить. Разработка эффективных кодов с достаточно длинными дистанциями Хэмминга невозможна без знания алгебраической теории кодирования, которая является частью линейной алгебры и теории матриц.

Методы коррекции ошибок широко используются в драйверах магнитных дисков большой емкости, чтобы снизить вероятность искажения хранимой информации в результате дефектов поверхности диска. Формат CD-ROM (и прочие) также имеет средства, позволяющие снизить вероятность появления ошибок (до одной на 20000 компакт-дисков).

Расстояние Хэмминга — число позиций, в которых соответствующие символы двух слов одинаковой длины различны. В более общем случае расстояние Хэмминга применяется для строк одинаковой длины любых q-ичных алфавитов и служит метрикой различия (функцией, определяющей расстояние в метрическом пространстве) объектов одинаковой размерности.

Первоначально метрика была сформулирована Ричардом Хэммингом во время его работы в Bell Labs для определения меры различия между кодовыми комбинациями (двоичными векторами) в векторном пространстве кодовых последовательностей, в этом случае расстоянием Хэмминга между двумя двоичными последовательностями (векторами) и длины называется число позиций, в которых они различны — в такой формулировке расстояние Хэмминга вошло в словарь алгоритмов и структур данных национального института стандартов и технологий США (англ. NIST Dictionary of Algorithms and Data Structures). Расстояние Хэмминга является частным случаем метрики Минковского:

.