4.Проблема кодирования. Однозначность декодирования. Коды Хэмминга.
В широком смысле слова под кодированием понимают сопоставление элементам множества Q произвольной природы элементов множества K также произвольной природы.
В узком смысле слова под кодированием понимают преобразование слов в некотором алфавите в слова в другом алфавите. Под словом понимаем любую последовательность символов. Обозначим через А* множество слов в алфавите A, включая пустое слово e.
Будем рассматривать такие преобразования слов в слова, которые являются отображениями, т.е. однозначным соответствием.
Пусть А– алфавит сообщений , В – кодирующий алфавит. Под кодированием, таким образом, понимают отображение из понимают А* в B* f : А* B* (рис.2.1).
Слова из R = Domf (из области определения f) называются сообщениями. Если , то называется кодом слова . Множество C=Imf (область значений f) называется код множества R..
Кодом называется также правило, которое сообщению сопоставляет его код , т.е. код – алгоритм, определяющий отображение f.
Декодированием называется преобразование, обратное кодированию, которое позволяет по коду восстановить исходное сообщение. Ясно, что декодирование возможно, если у f есть обратное отображение f –1 . В этом случае говорят, что кодирование взаимно однозначно (или что код является разделимым).
Кодирование как преобразование слов в слова обычно преследует следующие цели:
– удобство хранения и передачи данных,
– обеспечение помехоустойчивости при передаче данных по каналу связи
Кодирование, осуществляемое с целью защиты от действий злоумышленника, обычно называют шифрованием.
При рассмотрении вопросов, связанных с кодированием, обычно имеют в виду следующую схему передачи данных и использованием каналов связи.
Задача состоит в том, чтобы придумать такой способ кодирования, чтобы выполнялось . В основе многочисленных существующих методов кодирования лежат два основных вида кодирования: алфавитное (побуквенное) и равномерное (блочное).
1. Алфавитное кодирование – кодирование, определяемое соответствием:
где , слова
При этом соответствии каждому сообщению сопоставляется код . Соответствие называется схемой алфавитного кодирования, а слова – элементарными кодами (они заменяют один символ в сообщении).
Пример 1. Рассмотрим схему кодирования
Тогда сообщению сопоставляется код .
2. Равномерное кодирование – кодирование, определяемое соответствием:
где
при этом соответствии сообщению сопоставляется его код .
Соответствие называется схемой равномерного кодирования, а – элементарными кодами.
Заметим, что при равномерном кодировании слова одинаковой длины кодируются словами одинаковой длины, а если для слова существует представление вида , то оно единственно (т.к. имеют одинаковую длину).
Пример 2. Рассмотрим схему равномерного кодирования
,
Тогда слову сопоставляется код
Как при алфавитном, так и при равномерном декодирование состоит в разбиении кодового слова на элементарные коды и сопоставлении им прообразов (согласно схеме).
Пример . При равномерном кодировании со схемой