信息论与编码实验
实验名称:信息熵与图像熵计算
一、实验目的:复习信息熵基本定义, 能够自学图像熵定义和基本概念。
二、实验内容与原理:
内容:
1.能够写出MATLAB 源代码,求信源的信息熵。
2.根据图像熵基本知识,综合设计出MATLAB 程序,求出给定图像的图像熵。
原理:
1.MATLAB 中数据类型、矩阵运算、图像文件输入与输出知识复习。
2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。 自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。所发出 的消息不同,它们所含有的信息量也就不同。任何一个消息的自信息量都代表不了信源所包含的平均自信息量。不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量:
信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。它是从平均意义上来表征信源的总体特性的。对于某特定的信源,其信息熵只有一个。不同的信源因统计特性不同,其熵也不同.
三、实验步骤
1.求解信息熵过程:
1) 输入一个离散信源,并检查该信源是否是完备集。
2) 去除信源中符号分布概率为零的元素。
3) 根据平均信息量公式,求出离散信源的熵。
H PilogPi
i
具体实现的C语言代码:
#include
#include
int main()
{
double a[100],count=0,H=0;%定义了一个双精度的数组,用以输入概率值 %count用以统计概率和
% H为 离散信源的熵
int i;
printf("输入概率和为1的4个概率值:\n");
for (i=0;i<4;i++)
{
scanf("%lf",&a[i]);
}