ИНФОРМАЦИЯ И ЕЕ КОДИРОВАНИЕ

Задача 1.

Задано сообщение из 50 символов на алфавите из 5 букв. Напишите программу, которая вычисляет вероятности каждого символа и по формуле Шеннона определяет среднюю информацию, приходящуюся на 1 символ, и общую информацию в сообщении. Убедитесь в том, что: 1) если все символы одинаковы, информативность сообщения минимальна; 2) если символы алфавита встречаются с равными вероятностями, то сообщение несет максимальное количество информации.

В программе ПР-1 из сообщения r="aqws...ea" вырезается первый, второй, третий и последующие символы, определяется частота (эмпирическая вероятность) каждой буквы алфавита, результат выводится на экран. Для нахождения средней информации, приходящейся на 1 символ, используется формула Шеннона:

Чтобы определить информативность всего сообщения, необходимо получившуюся величину умножить на число символов N. Если какая-либо буква ни разу не встречается в тексте, то ее эмпирическая вероятность равна 0, логарифм не определен. Чтобы избежать этого, вместо ln(pa) в программе вычисляется ln(pa+0.001). С помощью программы можно убедиться в том, что информативность сообщения максимальна тогда, когда все символы используются с равными вероятностями. Если в сообщении повторяется один и тот же символ, то информативность сообщения равна 0.

Программа ПР-1.

Задача 2.

Напишите программу, кодирующую двоичным кодом сообщение из 20 букв на алфавите из 8 букв. На каждую букву приходится три двоичных разряда: a - 000, b - 001, c - 010, ... , h - 111. На экран выводится закодированное сообщение, затем осуществляется декодирование.

Используется программа ПР-2. Из заданного сообщения s="abc..defa" вырезается по одному символу, он кодируется тремя битами и записывается в стринговую переменную b. Аналогичным образом осуществляется декодирование.

Программа ПР-2.

Задача 3.

Имеется сообщение 01101 ... 01. Напишите программу, кодирующую его помехоустойчивым кодом, в котором каждый бит утраивается, затем вносит ошибки с заданной вероятностью p и декодирует сообщение.

Используется программа ПР-3. Из заданного сообщения aa1="01101 ... 01" вырезается по одному символу 0 или 1, он утраивается, то есть получается 000 или 111. Результат выводится на экран. После этого в получившееся закодированное сообщение с заданной вероятностью вносятся ошибки, сообщение выводится на экран. Затем оно декодируется в соответствии с правилом: кодовые последовательности 111, 011, 101, 110 воспринимаются как 1, а кодовые последовательности 000, 100, 010, 001 воспринимаются как 0. Данный код исправляет часть ошибок. Программа вычисляет относительное число ошибок при заданной вероятности p и позволяет изучить k от p и построить график.

Программа ПР-3.

Задача 4.

Имеется сообщение 01101 ... 01. Напишите программу, которая разбивает его на кадры по 7 бит и добавляет восьмой бит четности.

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

Программа ПР-4.

Тексты программ находятся в zip-архиве, файл gl-13.pas.


ВВЕРХ

Майер, Р. В. Задачи, алгоритмы, программы / Р. В. Майер [Электронный ресурс]. - Глазов: ГГПИ, 2012 // Web-site http://maier-rv.glazov.net .