资源描述:
《计算信息熵及其互信息[实用论文]》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、信息论实验一计算信息熵及其互信息实验者:班级:学号:2009年10月20日实验一计算信息熵及其互信息一.实验目的1.理解信源的概念。2.了解如何获得图片信息。3.学会计算图片信息熵。4.学会计算两个图片信息的互信息。二.实验原理1.信息论是运用概率论与数理统计的方法研究信息、信息熵、通信系统、数据传输、密码学、数据压缩等问题的应用数学学科。信息论将信息的传递作为一种统计现象来考虑,给出了估算通信信道容量的方法。信息传输和信息压缩是信息论研究中的两大领域。这两个方面又由信息传输定理、信源-信道隔离定理相互联系。香农(ClaudeShannon)被称
2、为是“信息论之父”。人们通常将香农于1948年10月发表于《贝尔系统技术学报》上的论文《AMathematicalTheoryofCommunication》(通信的数学理论)作为现代信息论研究的开端。这一文章部分基于哈里·奈奎斯特和拉尔夫·哈特利先前的成果。在该文中,香农给出了信息熵(以下简称为“熵”)的定义:这一定义可以用来推算传递经二进制编码后的原信息所需的信道带宽。熵度量的是消息中所含的信息量,其中去除了由消息的固有结构所决定的部分,比如,语言结构的冗余性以及语言中字母、词的使用频度等统计特性。信息论中熵的概念与物理学中的热力学熵有着紧密
3、的联系。玻尔兹曼与吉布斯在统计物理学中对熵做了很多的工作。信息论中的熵也正是受之启发。互信息(MutualInformation)是另一有用的信息度量,它是指两个事件集合之间的相关性。两个事件X和Y的互信息定义为:I(X,Y)=H(X)+H(Y)-H(X,Y)其中H(X,Y)是联合熵(JointEntropy),其定义为:互信息与多元对数似然比检验以及皮尔森χ2校验有着密切的联系。2.MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Si
4、mulink两大部分。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。本次试验我们将利用MATLAB对图像的信息熵和互信息进行计算。三.实验内容1.获取有重叠部分的两张照片。然后利用PHOTOSHOP将照片处理成灰度图像:2.利用MATLAB计算两张照片的信息熵及其互信息:源代码如下:a=imread('1.jpg');b=imread('2.jpg');a=d
5、ouble(a);b=double(b);[Ma,Na]=size(a);[Mb,Nb]=size(b);M=min(Ma,Mb);N=min(Na,Nb);%初始化直方图数组hab=zeros(256,256);ha=zeros(1,256);hb=zeros(1,256);%归一化ifmax(max(a))~=min(min(a))a=(a-min(min(a)))/(max(max(a))-min(min(a)));elsea=zeros(M,N);endifmax(max(b))-min(min(b))b=(b-min(min(b)))/
6、(max(max(b))-min(min(b)));elseb=zeros(M,N);enda=double(int16(a*255))+1;b=double(int16(b*255))+1;%统计直方图fori=1:Mforj=1:Nindexx=a(i,j);indexy=b(i,j);hab(indexx,indexy)=hab(indexx,indexy)+1;%联合直方图ha(indexx)=ha(indexx)+1;%a图直方图hb(indexy)=hb(indexy)+1;%b图直方图endend%计算联合信息熵hsum=sum(s
7、um(hab));index=find(hab~=0);p=hab/hsum;Hab=sum(sum(-p(index).*log(p(index))));%计算a图信息熵hsum=sum(sum(ha));index=find(ha~=0);p=ha/hsum;Ha=sum(sum(-p(index).*log(p(index))));%计算b图信息熵hsum=sum(sum(hb));index=find(hb~=0);p=hb/hsum;Hb=sum(sum(-p(index).*log(p(index))));%计算a和b的互信息mi=H
8、a+Hb-Hab;%计算a和b的归一化互信息mi1=hab/(Ha+Hb);3.用图像处理软件对两张照片进行裁剪,使它们的相同部分越来越