
- •Информатика как наука и как вид практической деятельности.
- •Место информатики в системе наук, направления развития информатики.
- •Направления развития теоретической информатики.
- •Понятие информации. Свойства информации.
- •7. Информация и данные.
- •Структурные типы данных
- •Теория информации. Основные понятия теории информации.
- •Теория кодирования. Основные понятия теории кодирования.
- •Вероятностный подход к определению количества информации.
- •Понятие энтропии, свойства энтропии. Условная энтропия.
- •Условная энтропия
- •Кодирование и декодирование. Эффективность кодирования.
- •Системы счисления.
- •Кодирование алфавитно-цифровой информации в компьютере.
- •Двоичное кодирование. Прямой, обратный, дополнительный код.
- •Прямой код двоичного числа
- •Обратный код двоичного числа
- •Дополнительный код двоичного числа
- •Кодирование текстовой информации.
- •Кодирование графической информации.
- •Разделимые коды. Префиксные коды. Равномерные коды. Избыточные коды.
- •Формула Хартли. Формула Шеннона.
- •Коды с обнаружением ошибок. Коды с исправлением ошибок. Блочные коды.
- •Оптимальные коды. Метод Хафмана.
- •Кодирование Хаффмана
- •Коды Хемминга. Величины Хемминга.
- •Систематические коды[править | править вики-текст]
- •Самоконтролирующиеся коды[править | править вики-текст]
- •Самокорректирующиеся коды[править | править вики-текст]
- •Теоремы Шеннона.
- •Криптографический подход.
- •Машина Тьюринга.
- •Кодирование по Шеннону-Фано
Разделимые коды. Префиксные коды. Равномерные коды. Избыточные коды.
По длине кодов и взаимному расположению в них символов различают равномерные и неравномерные коды. Равномерные коды имеют одинаковую длину комбинаций. Для равномерного кода число возможных комбинаций составляет . Примером такого кода является пятизначный код Бодо, применяемый в телеграфии. Код Бодо содержит пять двоичных элементов (m = 2, n = 5). Число возможных кодовых комбинаций в этом коде равно , что позволяет кодировать все буквы русского алфавита (твердый знак не передают). Однако этого мало для передачи сообщения на русском языке, содержащего буквы, цифры, знаки препинания и условные знаки (точка, запятая, двоеточие, сложение, вычитание, умножение и т. д.). Поэтому применяют «Международный код №2» (МТК-2). В коде МТК-2 используется регистровый принцип, согласно которому одна и та же пятиэлементная кодовая комбинация может использоваться до трех раз в зависимости от положения регистра: русский, латинский, цифровой. Общее число различных знаков при этом равно 84, что достаточно для кодирования телеграммы. Неравномерные коды отличаются тем, что кодовые комбинации у них отличаются друг от друга не только взаимным расположением символов, но и их количеством при минимизации средней длины кодовой последовательности. Это приводит к тому, что различные комбинации имеют различную длительность.
Общая идея построения неравномерных кодов подсказывается теоремой кодирования 1 Шеннона для каналов без помех. Очевидно, что средняя длина неравномерного кода будет минимизироваться тогда, когда с более вероятными сообщениями источника будут сопоставляться более короткие комбинации канальных символов. Однако проблема заключается в том, что у неравномерного кода на приемной стороне оказываются неизвестными границы этих комбинаций. Если же попытаться их выделить, используя известный способ кодирования, то декодирование может оказаться неоднозначным (действительно, если, например, букве А присвоена комбинация 1, букве Б - 0, а букве В - 10, то невозможно определить по принятой комбинации 10, передавались ли буква В или пара букв А и Б). Для того, чтобы используемый код был однозначно декодируемым, он должен удовлетворять некоторым условиям. Однозначное декодирование будет обеспечено, если ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие этим условиям, называются префиксными или неприводимыми. Кстати, равномерный код также является префиксным.
Блочные коды подразделяются на разделимые и неразделимые. К разделимым относятся коды, кодовые комбинации которых состоят из двух частей: информационной и проверочной. Обычно проверочные символы получаются посредством некоторых операций над информационными символами. Разделимые коды условно обозначают в виде (n, k), где n – число символов в кодовой комбинации, k – число информационных символов. Число проверочных символов в разделимых блочных кодах равно r = n-k. К неразделимым относятся коды, кодовые комбинации которых нельзя разделить на информационные и проверочные части. Самый большой класс разделимых кодов составляют систематические коды, у которых значения проверочных символов определяются в результате проведения линейных операций над информационными символами. Последовательность линейных операций и число проверочных символов определяется тем, сколько ошибок должен исправлять и обнаруживать данный код. Проверочные символы могут располагаться на любом месте кодовой комбинации. Однако обычно проверочные символы записывают к информационным символам справа, т.е. располагают на месте младших разрядов. Например, рассмотрим схему наиболее простого систематического кодера (5,4). Здесь всего лишь один проверочный символ формируется из информационных символов путем их суммирования по модулю 2. Этот код называют кодом с проверкой на четность. Так как новую разрешенную комбинацию систематического кода можно получить линейными преобразованиями двух разрешенных, то такие коды часто называют линейными или групповыми. К несистематическим (нелинейным) относятся коды, в которых проверочные символы формируются за счет некоторых нелинейных операций над информационными символами. Примером нелинейного кода является код Бергера.
По признаку помехозащищенности коды, как и методы кодирования, делят на примитивные (первичные, простые, безызбыточные) и помехоустойчивые (корректирующие, избыточные). Коды, у которых все возможные кодовые комбинации используются для передачи информации, называются примитивными или кодами без избыточности. В простых равномерных кодах превращение одного символа комбинации в другой, например 0 в 1 или 1 в 0, приводит к появлению новой разрешенной комбинации, т.е. к ошибке в принятом сообщении.