信息熵的计算与分析

一、[实验目的]

1、掌握离散信源熵的原理和计算方法。
2、熟悉matlab 软件的基本操作,练习使 用matlab 求解信源的信息熵。
3、自学图像熵的相关概念,并应用所学知识,使用matlab进行编程求解图像熵。

二、[实验环境]

windows XP,MATLAB

三、[实验原理]

  1. 离散信源相关的基本概念、原理和计算公式
    产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。
    随机事件的自信息量I(xi)为其对应的随机变量xi 出现概率对数的负值。即: I (xi )= -log2p ( xi)
    随机事件X 的平均不确定度(信源熵)H(X)为离散随机变量 xi 出现概率的数学期望,即:

  2. 二元信源的信息熵
    设信源符号集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

  3. 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 ) %绘制图形

  1. MATLAB求解离散信源熵
    求解信息熵过程:
    1. 输入一个离散信源,并检查该信源是否是完备集。
    2. 去除信源中符号分布概率为零的元素。
    3. 根据平均信息量公式,求出离散信源的熵。
  2. 图像熵的相关知识
    图像熵是一种特征的统计形式,反映图像中平均信息量的多少。图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi 表示图像中灰度值为i 的像素所占的比例,则定义灰度图像的一元灰度熵为Pi对应灰度值自信息量的概率平均值。 图像熵计算过程:
    1. 输入一幅图像,并将其转换成灰度图像。
    2. 统计出图像中每个灰度阶象素概率。
    3. 计算出一幅图像的一维熵。

四、[实验内容]

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 %显示熵值

实验结果:

在这里插入图片描述
在这里插入图片描述

物理意义:
图像熵反映了图像中含有多少平均信息量,一维熵也表示图像灰度分布的聚集特征。

  • 5
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值