Количество информации и энтропия



Дата29.10.2023
өлшемі0.6 Mb.
#481875
түріЛабораторная работа
ТИ №3 ИБ01 Кондауров С.Н. MathLab

    Бұл бет үшін навигация:
  • Цель

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное образовательное
учреждение высшего образования
«Юго-Западный государственный университет»

Лабораторная работа № 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.

Достарыңызбен бөлісу:




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет