1、实验一 信息量的计算1、基本要求:编写计算离散随机变量的熵、联合熵、条件熵、互信息的 Matlab 程序2、输入:一个离散的概率分布3、输出:信息量(单位比特)4、函数说明:熵 e=Entropy(x) x 是一个向量表示一个离散的概率分布联合熵 e=JEntropy(xy) xy 联合分布密度函数条件熵 e=CEntropy(xy,sign) xy 联合分布密度函数 ,sign=x 表示 y 关于 x 的条件概率,sign= y 表示 x 关于 y的条件概率互信息 e=IInfo(xy)xy 联合分布密度函数%程序:function e=Entropy(x) %熵,x 是一个向量表示一个离散
2、的概率分布x(x=0)=1;e=-sum(x.*log2(x)%function e=JEntropy(xy)%联合熵,xy 联合分布密度函数xy(xy=0)=1;e=-sum(sum(xy.*log2(xy)%function e=CEntropy(xy,sign)%条件熵. xy =联合分布密度函数,sign= x表示 y 关于 x 的条件概率x=sum(xy,2);y=sum(xy,1);if sign=xe=JEntropy(xy)-Entropy(x);elseif sign=ye=JEntropy(xy)-Entropy(y);else e=FALSEendend%function
3、 e=IInfo(xy)% 互信息 , xy 联合分布密度函数x=sum(xy,2);y=sum(xy,1);e=log2(xy)-log2(x*y)%利用下表中的数据进行测试,结果如下:aiaj0 1 20 1/4 1/18 0 11/181 1/18 1/3 1/18 4/92 0 1/18 7/36 1/411/36 4/9 1/4测试结果:x=11/36 4/9 1/4 Entropy(x) e = 1.5426xy=1/4 1/18 01/18 1/3 1/180 1/18 7/36 JEntropy(xy)e = 2.4144 CEntropy(xy,y)e = 0.8717 e=IInfo(xy)e = 1.4210 -1.2895 -Inf-1.2895 0.7549 -1.0000-Inf -1.0000 1.6374