Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика экз.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
372.68 Кб
Скачать

Кодирование информации.

Процесс преобразования сигнала из формы, удобной для непосредственного использования информации, в форму, удобную для передачи, хранения или автоматической переработки (например: Аналого-цифровой преобразователь).

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

Рис. 1 Философский подход к кодированию.

Кодирование (философия) - преобразование смысла в сигнал. Преобразование сигнала в смысл - декодирование.

Рис. 2 Практический подход к кодированию.

Кодирование (практика) - преобразование сигнала 1 в сигнал 2 без изменения смысла.

Код - правило замены одного символа на другой.

Виды кодов.

 1) структурный 

  1. линейный D1→D2 : первичный (А, Б), вторичный (1, 2)

  2. табличный D1→D2, D`2

 2) по типам сигнала 

  1. числовой (1, 2, 3, 4...)

  2. текстовый (символьный) (А, Б, В, Г...)

  3. графический (▲, ♠, ♣, ▼...)

  4. звуковой

В 1946 году Фон Нейман доказал что любой вид кода можно представить в виде нулей и единиц, то есть системы двоичного кодирования.

Самоконтролирующиеся коды

Коды Хэмминга являются самоконтролирующимися кодами, то есть кодами, позволяющими автоматически обнаруживать ошибки при передаче данных. Для их построения достаточно приписать к каждому слову один добавочный (контрольный) двоичный разряд и выбрать цифру этого разряда так, чтобы общее количество единиц в изображении любого числа было, например, четным. Одиночная ошибка в каком-либо разряде передаваемого слова (в том числе, может быть, и в контрольном разряде) изменит четность общего количества единиц. Счетчики по модулю 2, подсчитывающие количество единиц, которые содержатся среди двоичных цифр числа, могут давать сигнал о наличии ошибок.

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

Самокорректирующиеся коды

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

Диапазон m

kmin

1

2

2-4

3

5-11

4

12-26

5

27-57

6

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

Основными характеристиками самокорректирующихся кодов являются:

  1. Число разрешенных и запрещенных комбинаций. Если n - число символов в блоке, r - число проверочных символов в блоке, k - число информационных символов, то - число возможных кодовых комбинаций, - число разрешенных кодовых комбинаций, - число запрещенных комбинаций.

  2. Избыточность кода. Величину называют избыточностью корректирующего кода.

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

  4. Число обнаруживаемых и исправляемых ошибок. Если g - количество ошибок, которое код способен исправить, то необходимо и достаточно, чтобы

  5. Корректирующие возможности кодов.

Граница Плоткина даёт верхнюю границу кодового расстояния или при

Граница Хемминга устанавливает максимально возможное число разрешенных кодовых комбинаций где - число сочетаний из n элементов по i элементам. Отсюда можно получить выражение для оценки числа проверочных символов: Для значений разница между границей Хемминга и границей Плоткина невелика.

Граница Варшамова-Гильберта для больших n определяет нижнюю границу числа проверочных символов Все вышеперечисленные оценки дают представление о верхней границе d при фиксированных n и k или оценку снизу числа проверочных символов

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

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

.

Примеры:

Расстояние Хэмминга обладает свойствами метрики, удовлетворяя следующим условиям:

Избыточное кодирование - вид кодирования, использующий избыточное количество информации с целью последующего контроля целостности данных при записи/воспроизведении информации или при её передаче по линиям связи.

Алгоритм Хаффмана — адаптивный простой алгоритм оптимального префиксного кодирования алфавита с минимальной избыточностью. Был разработан в 1952 году аспирантом Массачусетского технологического института Дэвидом Хаффманом при написании им курсовой работы. В настоящее время используется во многих программах сжатия данных.

Этот метод кодирования состоит из двух основных этапов:

  1. Построение оптимального кодового дерева.

  2. Построение отображения код-символ на основе построенного дерева.

Кодирование Хаффмана

Один из первых алгоритмов эффективного кодирования информации был предложен Д. А. Хаффманом в 1952 году. Идея алгоритма состоит в следующем: зная вероятности символов в сообщении, можно описать процедуру построения кодов переменной длины, состоящих из целого количества битов. Символам с большей вероятностью ставятся в соответствие более короткие коды. Коды Хаффмана обладают свойством префиксности (т.е. ни одно кодовое слово не является префиксом другого), что позволяет однозначно их декодировать.

Классический алгоритм Хаффмана на входе получает таблицу частот встречаемости символов в сообщении. Далее на основании этой таблицы строится дерево кодирования Хаффмана (Н-дерево). [1]

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

Выбираются два свободных узла дерева с наименьшими весами.

Создается их родитель с весом, равным их суммарному весу.

Родитель добавляется в список свободных узлов, а два его потомка удаляются из этого списка.

Одной дуге, выходящей из родителя, ставится в соответствие бит 1, другой — бит 0.

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

Допустим, у нас есть следующая таблица частот:

15 7 6 6 5

А Б В Г Д

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

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

Для данной таблицы символов коды Хаффмана будут выглядеть следующим образом.

А Б В Г Д

0 100 101 110 111

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

При этом общая длина сообщения, состоящего из приведённых в таблице символов, составит 87 бит (в среднем 2,2308 бита на символ). При использовании равномерного кодирования общая длина сообщения составила бы 117 бит (ровно 3 бита на символ). Заметим, что энтропия источника, независимым образом порождающего символы с указанными частотами, составляет ~2,1858 бита на символ, т.е. избыточность построенного для такого источника кода Хаффмана, понимаемая, как отличие среднего числа бит на символ от энтропии, составляет менее 0,05 бит на символ.

Классический алгоритм Хаффмана имеет ряд существенных недостатков. Во-первых, для восстановления содержимого сжатого сообщения декодер должен знать таблицу частот, которой пользовался кодер. Следовательно, длина сжатого сообщения увеличивается на длину таблицы частот, которая должна посылаться впереди данных, что может свести на нет все усилия по сжатию сообщения. Кроме того, необходимость наличия полной частотной статистики перед началом собственно кодирования требует двух проходов по сообщению: одного для построения модели сообщения (таблицы частот и Н-дерева), другого для собственно кодирования. Во-вторых, избыточность кодирования обращается в ноль лишь в тех случаях, когда вероятности кодируемых символов являются обратными степенями числа 2. В-третьих, для источника с энтропией, не превышающей 1 (например, для двоичного источника), непосредственное применение кода Хаффмана бессмысленно.

Код Грея — система счисления, в которой два соседних значения различаются только в одном разряде. Наиболее часто на практике применяется рефлексивный двоичный код Грея, хотя в общем случае существует бесконечное множество кодов Грея для систем счисления с любым основанием. В большинстве случаев, под термином «код Грея» понимают именно рефлексивный бинарный код Грея.

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

Код Грея назван «рефлексивным» (отражённым) из-за того, что первая половина значений при изменении порядка эквивалентна второй половине, за исключением старшего бита. Старший бит просто инвертируется. При делении каждой новой половины пополам это свойство сохраняется (см. самоподобие).

Код назван в честь исследователя Фрэнка Грея, работавшего в лаборатории «Bell labs». Грей запатентовал (патент № 2632058) и использовал этот код в своей импульсной системе связи.

Коды Грея часто используются в датчиках-энкодерах. Их использование удобно тем, что два соседних значения шкалы сигнала отличаются только в одном разряде. Также они используются для кодирования номера дорожек в жёстких дисках.

Код Грея можно использовать также и для решения задачи о Ханойских башнях.

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

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

5

Теория информации (математическая теория связи) — раздел прикладной математики, радиотехники (теория обработки сигналов), информатики, аксиоматически определяющий понятие информации, её свойства и устанавливающий предельные соотношения для систем передачи данных. Как и любая математическая теория, оперирует с математическими моделями, а не с реальными физическими объектами (источниками и каналами связи). Использует, главным образом, математический аппарат теории вероятностей и математической статистики.

ТЕОРИЯ ИНФОРМАЦИИ [information theory] (или математическая теория связи) — раздел кибернетики, исследующий процессы хранения, преобразования и передачи информации; это основная часть кибернетики, поэтому последнюю тоже иногда называют “теорией информации”.

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

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

В настоящее время получили распространение два подхода к определению понятия " количество информации": вероятностный (чаще используется в теории информации) и объемный ( чаще используется в вычислительно технике).

Вероятностный подход предложил один из основоположников кибернетики американский математик Клод Шеннон. В качестве единицы информации он предложил принять один бит ( англ . bit — bi nary digi t — двоичная цифра ).

Бит — количество информации, необходимое для различения двух равновероят-ных сообщений (типа " орел "—" решка ", "чет"—" нечет" и т.п.).

Существует формула , связывающая количество вариантов исхода N и количест -во информации I , которое несет сообщение : N=2 в степени I

Следствие: I = logN по основанию 2

Пример 1: Сообщение об исходе опыта бросания монеты (2 равновозможных со -бытия –«орел » - « решка ») содержит количество информации, равное одному биту.

Действительно, возможных вариантов исхода N при бросании монеты – два

" орел "—" решка ". Значит , 2 = 2 в степени I . Следовательно I = 1.

Пример 2: Какое количество информации содержит сообщение об исходе опыта

бросания двух монет ?

Решение : Подсчитаем количество равновозможных исходов: орел - решка ; решка -орел ; орел -орел ; решка - решка , т.е . четыре . Значит , N=4. Получим : 4=2 в степени I

Отсюда, I =2.

Ответ: Количество информации=2 бита.

Объемный подход. В вычислительной технике битом называют наименьшую " порцию" памяти компьютера , необходимую для хранения одного из двух знаков : "0" и "1", используемых для внутримашинного представления данных и команд.

Бит — слишком мелкая единица измерения. На практике чаще применяется более крупная единица — байт, равная восьми битам. Именно восемь битов требуется для того, чтобы закодировать любой из 256 символов алфавита клавиатуры компьютера (256=28).

1 Терабайт ( Тб) = 1024 Гб = 2 в 40й байт,

1 Петабайт ( Пб) = 1024 Тб = 2 в 50й байт,

1 Эксабайт ( Эб) = 1024 Пб = 2 в 60й байт.

Аналитики из Калифорнийского университета утверждают, что человечеству по-требовалось 300 тысяч лет, чтобы создать первые 12 эксабайт информации, зато вторые 12 эксабайт были созданы всего за два года .

Формула Хартли определяет количество информации, содержащееся в сообщении длины n.

Имеется алфавит А, из букв которого составляется сообщение:

Количество возможных вариантов разных сообщений:

где N — возможное количество различных сообщений, шт; m — количество букв в алфавите, шт; n — количество букв в сообщении, шт.

Пример: Алфавит состоит из двух букв «B» и «X», длина сообщения 3 буквы — таким образом, m=2, n=3. При выбранных нами алфавите и длине сообщения можно составить разных сообщений «BBB», «BBX», «BXB», «BXX», «XBB», «XBX», «XXB», «XXX» — других вариантов нет.

Формула Хартли определяется:

где I — количество информации, бит.

При равновероятности символов формула Хартли переходит в собственную информацию.

Формула Хартли была предложена Ральфом Хартли в 1928 году как один из научных подходов к оценке сообщений.