信息熵的计算与分析
- 一、[实验目的]
- 二、[实验环境]
- 三、[实验原理]
- 四、[实验内容]
- 五、[实验过程]
- 1、二元信源熵函数曲线
- 2、求解离散单符号信源熵
- 3、计算图像一维图像熵
一、[实验目的]
1、掌握离散信源熵的原理和计算方法。
2、熟悉matlab 软件的基本操作,练习使 用matlab 求解信源的信息熵。
3、自学图像熵的相关概念,并应用所学知识,使用matlab进行编程求解图像熵。
二、[实验环境]
windows XP,MATLAB
三、[实验原理]
-
离散信源相关的基本概念、原理和计算公式
产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。
随机事件的自信息量I(xi)为其对应的随机变量xi 出现概率对数的负值。即: I (xi )= -log2p ( xi)
随机事件X 的平均不确定度(信源熵)H(X)为离散随机变量 xi 出现概率的数学期望,即: -
二元信源的信息熵
设信源符号集X={0,1} ,每个符号发生的概率分别为p(0)= p,p(1)= q,p+ q =1,即信源的概率空间为 :
则该二元信源的信源熵为:
[ X P ] = [ 0 1 p q ] \left[ \begin{matrix} X\\ P\\ \end{matrix} \right] = \left[ \begin{matrix} 0 & 1\\ p & q \end{matrix} \right] [XP]=[0p1q]H( X) = - plogp–qlogq = - plogp –(1 - p)log(1- p)
即:H § = - plogp –(1 - p)log(1- p) 其中 0 ≤ p ≤1 -
MATLAB二维绘图
用matlab 中的命令plot( x , y) 自动绘制二维图来。
例,在matlab 上绘制余弦曲线图,y=cos x ,其中 0 ≤ x ≤ 2。
x =0:0.1:2*pi; %生成横坐标向量,使其为 0,0.1,0.2,…,6.2
y =cos(x ); %计算余弦向量
plot(x ,y ) %绘制图形
- MATLAB求解离散信源熵
求解信息熵过程:- 输入一个离散信源,并检查该信源是否是完备集。
- 去除信源中符号分布概率为零的元素。
- 根据平均信息量公式,求出离散信源的熵。
- 图像熵的相关知识
图像熵是一种特征的统计形式,反映图像中平均信息量的多少。图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi 表示图像中灰度值为i 的像素所占的比例,则定义灰度图像的一元灰度熵为Pi对应灰度值自信息量的概率平均值。 图像熵计算过程:- 输入一幅图像,并将其转换成灰度图像。
- 统计出图像中每个灰度阶象素概率。
- 计算出一幅图像的一维熵。
四、[实验内容]
1、使用matlab 软件绘制二元信源熵函数曲线,并说明其物理意义。
2、使用 matlab 软件求解离散单符号信源熵,请自己构造两个信源空间,根据求解结果说明其物理意义。
3、使用 matlab 软件计算图像一维图像熵,请自己选择任意两幅图像,根据求解结果说明其物理意义。
五、[实验过程]
1、二元信源熵函数曲线
实验代码:
clc;
p=0.00:0.01:1;
H=-p.*log2(p)-(1-p).*log2(1-p);
plot(p,H);
实验结果:
物理意义:
(1)信源熵为信源的平均不确定性,而概率的大小决定了信息量的大小;
(2)由上图可知概率为1时,信息量最小,不确定性最低;概率为0.5时熵最大。
2、求解离散单符号信源熵
实验代码:
p1=[0.1,0.4,0.5,0.1];
h1=-p1.*log2(p1);
h1=sum(h1);
p2=[0.3,0.2,0.4,0.1];
h2=-p2.*log2(p2);
h2=sum(h2);
h1,h2
实验结果:
计算结果表明:信源的平均不确定度
3、计算图像一维图像熵
实验代码:
clear all;
close all;
image = imread('f:\pic\jackson.jpg');%读入和显示图像
subplot(2,1,1);
imshow(image,[]);
subplot(2,1,2);
image1 = rgb2gray(image);
imshow(image1,[]);
[C1 R1]=size(image1); %求图像的规格
image1_size=C1*R1; %图像像素点的总个数
H1=0;
n=zeros(256,1); %产生一个256行1列的全零矩阵
for i=1:C1
for j=1:R1
img_level=image1(i,j)+1; %获取图像的灰度级
n(img_level)=n(img_level)+1; %统计每个灰度级像素的点数
end
end
for k=1:256 %循环
p(k)=n(k)/image1_size %计算每一个像素点的概率
if p(k)~=0; %如果像素点的概率不为零
H1=-p(k).*log2(p(k))+H1; %求熵值的公式
end
end
H1 %显示熵值
实验结果:
物理意义:
图像熵反映了图像中含有多少平均信息量,一维熵也表示图像灰度分布的聚集特征。