МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное образовательное
учреждение высшего образования
«Юго-Западный государственный университет»
Лабораторная работа № 3
По дисциплине: «Теория информации»
Тема: «Количество информации и энтропия»
Выполнил: Кондауров С.Н.
студент группы ИБ-01б
Проверил: Хмелевская А. В.
ст. преп.
Курск, 2023
Цель: изучить понятия количества информации и энтропии, овладеть программными средствами их расчета в MATLAB.
Выполнение работы
Для того, чтобы не путаться со скриптами для каждой лабораторной будем создавать рабочую директорию и помещать туда скрипты.
Задание 1.1. Построить графики зависимости количества информации от вероятности символа по формуле (1.1) при различных значениях v.
Создадим скрипт и введем необходимо данные.
Далее нажмем на кнопку “Run”. После этого происходит последовательное выполнение скрипта в программе, если будут какие-либо ошибки MathLab.
Сначала вводим необходимы значения вероятности, далее идет подсчет кол-ва информации, а далее с помощью функции plot создается график по необходимым значения p от i. Потом присваиваются необходимые подписи и ставится ограничение.
В данном случае получили следующий результат:
Задание 1.2. Построить график зависимости энтропии двоичного источника от вероятности символа по формуле (1.6).
Ввели необходимые данные:
После запуска получили следующий результат:
Задание 1.3 Дискретный источник инфрмации имеет объем алфавита т = 3. Определить энтропию источника, если: а) символы алфавита равновероятны;
б) символы вырабатываются с вероятностями р(а1) = 0, 25;
р(а2) = 0,3; р(а3) = 0,45.
На какую величину уменьшается энтропия во втором случае?
Введем скрипт:
При расчете через скрипт получили следующие результат:
Вероятности символов: 0.2500 0.3000 0.4500
Сумма вероятностей: 1
Объем алфавита: 3
Максимальная энтропия, бит/символ: 1.5850
Энтропия источника, бит/символ: 1.539
Разность энтропий, бит/символ: 0.0459
Задание 1.4 Анлогично 1.3 , но при условии, что m = 4 и р(а1) = 0, 1;
р(а2) = 0,2; р(а3) = 0,3, р(а4) = 0,4
Изменили скрипт с учетом задания:
После запуска скрипта получили следующие результаты:
Вероятности символов:
0.1000 0.2000 0.3000 0.4000
Сумма вероятностей:
1
Объем алфавита:
4
Максимальная энтропия, бит/символ:
2
Энтропия источника, бит/символ:
1.8464
Разность энтропий, бит/символ:
0.1536
Задание 1.5 Аналогично с 1.4, только при условии что m=5 и p(a,) = 0,8; p(a2) = 0,15; p(a3) = 0,03; p(a4) = 0,01; p(a5) = 0,01
Как и в предыдущем случае скопируем и модифицирует скрипт для данной задачи.
Далее выполним данный скрипт и получим следующие результаты:
Вероятности символов:
0.8000 0.1500 0.0300 0.0100 0.0100
Сумма вероятностей:
1
Объем алфавита:
5
Максимальная энтропия, бит/символ:
2.3219
Энтропия источника, бит/символ:
0.9527
Разность энтропий, бит/символ:
1.3692
Задание 1.6. Построить график функции f[p(ai)]=-p(ai) log p(ai) и исследовать влияние вероятности р(аi) появления отдельного символа а; на величину энтропии источника в целом. Исследовать функцию f[p(ai)] на экстремум.
Запишем необходимый скрипт:
%Script_1_6
%Построение графика одного слагаемого в зависимости от вероятности символа
clear all; close all; clc
%Задание анонимной функции
%
fun=@(x) -x.*log2(x+(x==0));
%---------------------------
%Задание значений вероятности
p=0:.001:1;
%Расчет значений энтропии
y=fun(p);
%Построение графика
plot(p,y)
grid
xlabel('Вероятность символа р')
ylabel('Функция f(p), бит')
title('График функции f (р)')
%Определение максимума функции по графику
[fm,im]=max(y);
disp('Определение максимума функции по графику')
disp('Максимум функции, бит:')
disp(fm)
disp('Значение аргумента:')
disp(p(im))
%Численное определение максимума функции
[pm,fm]=fminbnd(@ (x) x.*log2(x+(x==0)),.2,.7);
disp('Численное определение максимума функции')
disp('Максимум функции, бит:')
disp(-fm)
disp('Значение аргумента:')
disp(pm)
%Точное определение максимума функции
pm=l/exp(1);
fm=-pm*log2(pm);
disp('Toчнoe определение максимума функции')
disp('Максимум функции:')
disp(fm)
disp('Значение аргумента:')
disp(pm)
%Обозначение максимума на графике
line( [0 pm],[fm fm],'LineStyle','--')
line([pm pm],[fm 0], 'LineStyle','--')
hold on
plot(pm,fm,'r.')
После выполнения скрипта получили следующие данные:
Определение максимума функции по графику
Максимум функции, бит:
0.5307
Значение аргумента:
0.3680
Численное определение максимума функции
Максимум функции, бит:
0.5307
Значение аргумента:
0.3679
Toчнoe определение максимума функции
Максимум функции:
0.5307
Значение аргумента:
0.3679
Также получили графическое отображение.
Вывод: изучил понятия количества информации и энтропии, овладел программными средствами их расчета в MATLAB.
Достарыңызбен бөлісу: |