实验一-信息熵与图像熵计算-正确

合集下载

图像熵

图像熵

OpenMp
(1)、OpenMP只能并行化for循环,它不会并行while和 do-while循环,而且只能并行循环次数在for循环外面就确 定了的for循环。 (2)、循环变量只能是整型和指针类型(不能是浮点型)
OpenMp使用
(3)、循环语句只能是单入口单出口的。循环内部不能改 变index,而且里面不能有goto、break、return。但是可以 使用continue,因为它并不会减少循环次数。另外exit语句 也是可以用的,因为它的能力太大,他一来,程序就结束了。
double Result::result(Mat* Xiang,vector<double>*Rp,vector<double>* Gp,vector<double>* Bp,vector<double>* Ri,vector<double>* Gi,vector<double>* Bi) { double E=0,Er=0,Eg=0,Eb=0; double all=(*Xiang).cols*((*Xiang).rows); int j=0; #pragma omp parallel for for(j;j<256;j++){ pictureData(Xiang, j, Ri, Gi, Bi);} #pragma omp parallel for int k=0; for(k;k<256;k++){ (*Rp).at(k)=(*Ri).at(k)/all; (*Gp).at(k)=(*Gi).at(k)/all; (*Bp).at(k)=(*Bi).at(k)/all; if( (*Rp).at(k)==0) { (*Rp).at(k)=1;} if((*Gp).at(k)==0) { (*Gp).at(k)=1;} if((*Bp).at(k)==0) { (*Bp).at(k)=1;} Er+=(*Rp).at(k)*log((*Rp).at(k)); Eg+=(*Gp).at(k)*log((*Gp).at(k)); Eb+=(*Bp).at(k)*log((*Bp).at(k)); }

信息熵与图像熵计算

信息熵与图像熵计算

p (a i ) ∑ n《信息论与编码》课程实验报告班级:通信162姓名:李浩坤 学号:163977实验一信息熵与图像熵计算 实验日期:2018.5.31一、实验目的 1.复习 MATLAB 的基本命令,熟悉 MATLAB 下的基本函数。

2. 复习信息熵基本定义, 能够自学图像熵定义和基本概念。

二、实验原理及内容1.能够写出 MATLAB 源代码,求信源的信息熵。

2.根据图像熵基本知识,综合设计出 MATLAB 程序,求出给定图像的图像熵。

1.MATLAB 中数据类型、矩阵运算、图像文件输入与输出知识复习。

2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。

自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。

所发出的消息不同,它们所含有的信息量也就不同。

任何一个消息的自信息量都代表不了信源所包含的平均自信息量。

不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量: H (X ) = E [ log 1 ] = -∑ p (a i ) log p (a i )i =1信息熵的意义:信源的信息熵H 是从整个信源的统计特性来考虑的。

它是从平均意义上来表征信源的总体特性的。

对于某特定的信源,其信息熵只有一个。

不同的信源因统计特性不同,其熵也不同。

1. 学习图像熵基本概念,能够求出图像一维熵和二维熵。

图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。

图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令 P i 表示图像中灰度值为 i 的像素所占的比例,则定义灰度图像的一元灰度熵为:255H = p i log p ii =0图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。

选择图像的邻域灰度均值作为灰度分布的空间特征量,与图像的像素灰度组成特征二元组,记为( i, j ),其中i 表示像素的灰度值(0 <= i <= 255),j 表示邻域灰度(0 <= j <= 255),pij=f (i, j) / N 2上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中f(i, j)为特征二元组(i, j)出现的频数,N 为图像的尺度,定义离散的图像二维熵为:255H =pij log piji=0构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征.三、实验步骤1.求解信息熵过程:1)输入一个离散信源,并检查该信源是否是完备集。

实验一-信息熵与图像熵计算-正确

实验一-信息熵与图像熵计算-正确

实验一信息熵与图像熵计算(2 学时)一、实验目的1.复习MATLAB的基本命令,熟悉MATLAB下的基本函数;2.复习信息熵基本定义,能够自学图像熵定义和基本概念。

二、实验内容1.能够写出MATLAB源代码,求信源的信息熵;2.根据图像熵基本知识,综合设计出MATLAB程序,求出给定图像的图像熵。

三、实验仪器、设备1.计算机-系统最低配置256M内存、P4 CPU;2.MATLAB编程软件。

四实验流程图五实验数据及结果分析四、实验原理1.MATLAB中数据类型、矩阵运算、图像文件输入与输出知识复习。

2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。

自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。

所发出的消息不同,它们所含有的信息量也就不同。

任何一个消息的自信息量都代表不了信源所包含的平均自信息量。

不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量:1( ) 1 ( ) [log ] ( ) log ( ) i n i i p a i H E p a p a X 信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。

它是从平均意义上来表征信源的总体特性的。

对于某特定的信源,其信息熵只有一个。

不同的信源因统计特性不同,其熵也不同。

3.学习图像熵基本概念,能够求出图像一维熵和二维熵。

图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。

图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为:2550 log i i i p p H图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。

选择图像的邻域灰度均值作为灰度2分布的空间特征量,与图像的像素灰度组成特征二元组,记为(i,j),其中i表示像素的灰度值(0<=i<=255),j表示邻域灰度(0<=j<=255),2 ( , ) / ij p f i j N上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中f(i,j)为特征二元组(i,j)出现的频数,N为图像的尺度,定义离散的图像二维熵为:2550 log ij ij i p p H构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征。

信息熵的计算方法

信息熵的计算方法

信息熵的计算方法信息熵是信息论中的一个重要概念,用来衡量一个随机变量的不确定性。

在实际应用中,我们经常需要计算信息熵来评估信息的复杂度和不确定性,从而为数据分析和决策提供依据。

本文将介绍信息熵的计算方法,希望能够帮助读者更好地理解和运用这一概念。

信息熵的定义。

在介绍信息熵的计算方法之前,我们先来回顾一下信息熵的定义。

对于一个离散型随机变量X,其概率分布为P(X=x_i),其中i=1,2,...,n。

那么X的信息熵H(X)定义为:H(X) = -Σ P(X=x_i) log2 P(X=x_i)。

其中log2表示以2为底的对数。

信息熵H(X)衡量了随机变量X的不确定性,当X的概率分布更加均匀时,其信息熵会更大,反之则会更小。

计算方法。

下面我们将介绍信息熵的具体计算方法。

假设我们有一个离散型随机变量X,其取值范围为{x1, x2, ..., xn},对应的概率分布为{p1, p2, ..., pn}。

那么,我们可以按照以下步骤来计算X的信息熵:1. 计算每个取值对应的信息量。

首先,我们需要计算每个取值对应的信息量,即-log2P(X=x_i)。

这一步可以通过遍历所有取值,计算其信息量并存储起来。

2. 计算加权平均值。

接下来,我们需要将每个取值的信息量进行加权平均,即Σ P(X=x_i) (-log2 P(X=x_i))。

这一步可以通过遍历所有取值,根据其概率分布进行加权求和。

3. 计算信息熵。

最后,我们将加权平均值取负号,即-H(X) = Σ P(X=x_i) log2 P(X=x_i)。

这一步即可得到随机变量X的信息熵。

举例说明。

为了更好地理解信息熵的计算方法,我们举一个简单的例子。

假设我们有一个随机变量X,其取值范围为{0, 1},对应的概率分布为{0.3, 0.7}。

那么,我们可以按照以下步骤来计算X的信息熵: 1. 计算每个取值对应的信息量。

当X=0时,-log2 P(X=0) = -log2 0.3 ≈ 1.737。

信息熵与图像熵的计算

信息熵与图像熵的计算

实验一信息熵与图像熵计算一、实验目的1.复习MATLAB 的基本命令,熟悉MATLAB 下的基本函数。

2.复习信息熵基本定义, 能够自学图像熵定义和基本概念。

二、实验仪器、设备1.计算机-系统最低配置 256M 内存、P4 CPU。

2.Matlab 仿真软件- 7.0 / 7.1 / 2006a 等版本Matlab 软件。

三、实验内容与原理(1)内容:1.能够写出MATLAB 源代码,求信源的信息熵。

2.根据图像熵基本知识,综合设计出MATLAB 程序,求出给定图像的图像熵。

(2)原理1. MATLAB 中数据类型、矩阵运算、图像文件输入与输出知识复习。

2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。

自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。

所发出的消息不同,它们所含有的信息量也就不同。

任何一个消息的自信息量都代表不了信源所包含的平均自信息量。

不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量:信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。

它是从平均意义上来表征信源的总体特性的。

对于某特定的信源,其信息熵只有一个。

不同的信源因统计特性不同,其熵也不同。

3.学习图像熵基本概念,能够求出图像一维熵和二维熵。

图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。

图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi 表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为:255log i iip p ==∑H图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。

选择图像的邻域灰度均值作为灰度分布的空间特征量,与图像的像素灰度组成特征二元组,记为( i, j ),其中i 表示像素的灰度值(0 <= i <= 255),j 表示邻域灰度(0 <= j <= 255),2(,)/ijP f i j N =上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中f(i, j) 为特征二元组(i, j)出现的频数,N 为图像的尺度,定义离散的图像二维熵为:255logij ijip p ==∑H构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征.四、实验步骤1.求解信息熵过程:1) 输入一个离散信源,并检查该信源是否是完备集。

信息论实验信息熵函数的计算

信息论实验信息熵函数的计算

信息论实验信息熵函数的计算信息熵是信息论中的一个重要概念,用于度量信息的不确定性或者随机性。

它可以描述信息源的平均信息量,也可以用于衡量编码的效率。

本文将介绍信息熵的计算方法,并通过实例来说明如何计算信息熵。

首先,我们需要了解如何计算一个离散概率分布的信息熵。

对于一个离散概率分布,它可以由一个概率密度函数来描述,其中每个事件的概率都是非负的,并且所有事件的概率之和为1、令p(x)表示事件x的概率,则该分布的信息熵H(X)可以通过以下公式计算:H(X) = -∑ [p(x) * log₂(p(x))]其中,∑表示对所有事件求和。

log₂表示以2为底的对数函数。

该公式的物理意义是,对于每个事件x,我们将其概率p(x)与以2为底的对数计算结果相乘,并将所有结果相加,得到的值即为信息熵。

为了更好地理解信息熵的计算过程,我们可以通过一个实例来进行展示。

假设有一个硬币的抛掷实验,在该实验中,正面向上和反面向上的概率分别为p(正)=1/2和p(反)=1/2、则该实验的信息熵可以使用以下公式进行计算:H(硬币实验) = -[1/2 * log₂(1/2) + 1/2 * log₂(1/2)]首先,我们需要计算log₂(1/2)的值。

根据对数的定义,我们可以将此式化简为:H(硬币实验)=-[1/2*(-1)+1/2*(-1)]=-(-1/2+1/2)=-0正如我们所期望的,在这个实验中,硬币是确定性的,即每次抛掷都会出现正面或反面。

因此,硬币实验的信息熵为0,意味着在该实验中我们不需要任何信息来描述结果。

接下来,我们来计算一个更复杂的实例,假设有一组骰子的抛掷实验,其中每个面出现的概率分别为p(1)=1/6,p(2)=1/6,p(3)=1/6,p(4)=1/6,p(5)=1/6,p(6)=1/6、我们可以使用以上公式计算该实验的信息熵:H(骰子实验) = -[1/6 * log₂(1/6) + 1/6 * log₂(1/6) + 1/6 *log₂(1/6) + 1/6 * log₂(1/6) + 1/6 * log₂(1/6) + 1/6 * log₂(1/6)]首先,我们需要计算log₂(1/6)的值。

信息熵与图像熵的计算

信息熵与图像熵的计算

信息熵与图像熵的计算信息熵是信息论中一个重要的概念,用来衡量信源中包含的信息量。

而图像熵是在图像处理中引入的概念,用来衡量图像中的信息量。

1.信息熵的概念信息熵是用来度量一个信源的平均信息量的,也可以看作是随机变量的不确定性的度量。

信息熵的计算公式如下:H(X) = -Σ(p(x) * log2(p(x)))其中,X表示一个离散型的信源,p(x)表示X取值为x的概率。

计算信息熵的步骤如下:1)统计信源中每个离散值出现的概率;2)根据计算出的概率值,计算每个离散值的信息量;3)将每个离散值的信息量相加,即可以得到信源的信息熵。

2.图像熵的概念图像熵是用来衡量图像中信息量的一个指标。

在图像处理中,图像熵用来描述图像的纹理复杂程度,即图像中包含的信息量。

图像熵的计算公式如下:H(I) = -Σ(p(i) * log2(p(i)))其中,I表示一个图像,p(i)表示图像中像素值为i的概率。

计算图像熵的步骤如下:1)统计图像中每个像素值出现的概率;2)根据计算出的概率值,计算每个像素值的信息量;3)将每个像素值的信息量相加,即可以得到图像的熵。

3.信息熵与图像熵的比较信息熵和图像熵的计算方法相似,但是在具体的应用场景中存在一些差别。

首先,信息熵是用来度量信源的不确定性,所以信源可以是任意类型的数据,包括离散型信源和连续型信源。

而图像熵是针对图像数据的一种度量,因此信源是离散型的。

其次,图像熵主要用来衡量图像的纹理复杂程度,所以在计算图像熵时,通常会将图像转化为灰度图像。

这样做的目的是忽略图像的颜色信息,只关注亮度信息,因为在大多数场景下,图像的颜色信息对于图像的信息量没有太大的贡献。

此外,信息熵和图像熵的计算结果都是一个非负数,越大表示信息量越大,越小表示信息量越少。

当信息熵或图像熵为0时,表示信源或图像中只有一个确定的值,没有任何信息的不确定性。

总结来说,信息熵和图像熵都是衡量信息量的一种指标,用来描述数据的不确定性或者纹理复杂程度。

信息论编码实验一熵的计算

信息论编码实验一熵的计算

实验一 熵的计算一、 实验目的通过本次实验的练习,使学生进一步巩固熵的基本概念,掌握熵的统计方法,培养学生使用编程工具进行分析计算的基本能力。

二、 实验仪器与软件1. PC 机1台2. MATLAB7.0环境三、实验原理1. 信息熵的基本原理离散信源数学模型如下(设该信源可能取的符号有n 个):⎭⎬⎫⎩⎨⎧=⎥⎦⎤⎢⎣⎡)(,),(,),(),( ,, , , , )( 2121n i n i a p a p a p a p a a a a X P X则该信源的信息熵为:)(log )()(21i ni i x p x p X H ∑==H(X)是信源X 中每个事件出现的平均信息量,或者说H(X)表示了信源X 中各符号出现的平均不确定性。

● 图像的信息熵:设数字图像的灰度级集合为{r 1,r 2,…,r m },其对应的概率分别为p (r 1),p (r 2),…,p (r m ),则图像的信息熵可以定义为:图像的信息熵表示像素各个灰度级位数的统计平均值,它给出了对此输入灰度级集合进行无失真图像编码时所需要的平均位数的下限。

2. 图像文件的读取● 函数imread () MATLAB 通过函数imread 完成图像的读取,该函数语法格式如下:I = imread(filename,fmt)用于读取由filename 指定的图像数据到数组A 中,参数fmt 对应于所有图像处理工具所支持的图像文件格式。

如I=imread ('rice.tif');● 函数imhist () 显示图像的直方图 用法: imhist(I,n) 计算和显示图像I 的直方图,n 为指定的灰度级数目,默认为256。

如果I 是二值图像,那么n 仅有两个值。

[counts,x] = imhist(I) 返回直方图数据向量counts 或相应的色彩值向量x 。

● 函数size(a) 表示矩阵a 每个维度的长度 如size([1 2 3;4 5 6]),返回[2 3],表示该矩阵有2行3列 ● find ()寻找非零元素下标 如:x = [11 0 33 0 55]; find(x) ans = 1 3 5 find(x == 0)ans = 2 4 ● 相关函数 点运算 在MATLAB 中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一信息熵与图像熵计算(2 学时)一、实验目的1.复习MATLAB的基本命令,熟悉MATLAB下的基本函数;2.复习信息熵基本定义,能够自学图像熵定义和基本概念。

二、实验内容1.能够写出MATLAB源代码,求信源的信息熵;2.根据图像熵基本知识,综合设计出MATLAB程序,求出给定图像的图像熵。

三、实验仪器、设备1.计算机-系统最低配置256M内存、P4 CPU;2.MATLAB编程软件。

四实验流程图五实验数据及结果分析四、实验原理1.MATLAB中数据类型、矩阵运算、图像文件输入与输出知识复习。

2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。

自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。

所发出的消息不同,它们所含有的信息量也就不同。

任何一个消息的自信息量都代表不了信源所包含的平均自信息量。

不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量:1( ) 1 ( ) [log ] ( ) log ( ) i n i i p a i H E p a p a X信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。

它是从平均意义上来表征信源的总体特性的。

对于某特定的信源,其信息熵只有一个。

不同的信源因统计特性不同,其熵也不同。

3.学习图像熵基本概念,能够求出图像一维熵和二维熵。

图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。

图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为:2550 log i i i p p H图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。

选择图像的邻域灰度均值作为灰度2分布的空间特征量,与图像的像素灰度组成特征二元组,记为(i,j),其中i表示像素的灰度值(0<=i<=255),j表示邻域灰度(0<=j<=255),2 ( , ) / ij p f i j N上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中f(i,j)为特征二元组(i,j)出现的频数,N为图像的尺度,定义离散的图像二维熵为:2550 log ij ij i p p H构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征。

五、实验步骤1.求解信息熵过程:(1)输入一个离散信源,并检查该信源是否是完备集;(2)去除信源中符号分布概率为零的元素;(3)根据平均信息量公式,求出离散信源的熵。

2.图像熵计算过程:(1)输入一幅图像,并将其转换成灰度图像;(2)统计出图像中每个灰度阶象素概率;(3)统计出图像中相邻两象素的灰度阶联合分布矩阵;(4)根据图像熵和二阶熵公式,计算出一幅图像的熵。

六、实验报告要求1.按照本节内容后实验报告形式书写;2.实验总结和心得要详细,可以根据自己实验情况,写出建议。

七、实验注意事项1.MATLAB语言课下多复习,尽量采用模块化编程方法,通过函数调用形式运行程序。

2.仔细理解、体会图像熵的概念,能够将其联合熵的概念理解透彻。

八、思考题举例说明图像熵、信息熵在现实中有何实践指导意义?附录1:实验报告样式:实验报告班级:姓名:学号:组别:同组人:课程名称:实验室:实验时间:(使用实验报告纸的,以上内容可按照实验报告纸格式填写)实验一信息熵与图像熵计算3一、实验目的:二、实验内容与原理:三、实验器材(设备、元器件、软件工具、平台):四、实验步骤:五、程序流程图:六、实验数据及结果分析:七、实验结论:八、思考题:九、编程、调试过程中遇到的问题及解决方法:十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。

附录2:图像一维二维熵程序:close all; clc;I=imread('11.bmp');img=rgb2gray(I);imview(I),imview(img);[ix,iy]=size(img);P1=imhist(img)/(ix*iy);temp=double(img);temp=[temp,temp(:,1)];CoefficientMat=zeros(256,256);for x=1:ixfor y=1:iyi=temp(x,y); j=temp(x,y+1);CoefficientMat(i+1,j+1)=CoefficientMat(i+1,j+1)+1; endendP2 = CoefficientMat./(ix*iy);H1=0; H2=0;for i=1:256if P1(i)~=0H1=H1-P1(i)*log2(P1(i));endfor j=1:256if P2(i,j)~=0H2=H2-P2(i,j)*log2(P2(i,j));endendendH2=H2/2;sprintf('1 ord image entropy is:%d',H1)sprintf('2 ord image entropy is:%d',H2)实验二香农编码(2 个学时)一、实验目的1.了解香农编码的基本原理及其特点;2.熟悉掌握香农编码的方法和步骤;3.掌握MATLAB 编写香农编码的程序。

二、实验内容1.根据香农编码的方法和步骤,用香农编码编写程序;2.用编写的源程序验证书中例题的正确性。

三、实验仪器、设备1.计算机-系统最低配置256M 内存、P4 CPU;2. MATLAB 编程软件。

四、实验原理1.香农编码原理:香农第一定理指出了平均码长与信源之间的关系,同时也指出了可以通过编码使平均码长达到极限值,这是一个很重要的极限定理。

香农第一定理指出,选择每个码字的长度i K 满足下式:I (Xi ) K I (Xi ) 1,i就可以得到这种码,这种编码方法就是香农编码。

2.香农编码算法:1.将信源消息符号按其出现的概率大小依次排列:1 2 n P(X ) P(X ) , ,P(X )2.确定满足下列不等式整数码长i K ;log2p( ) log2 ( ) 1 i i i x K p x3.为了编成唯一可译码,计算第i 个消息的累加概率;11( )ii kkp p x4.将累加概率i P变成二进制数;5.取i P二进制数的小数点后i K 位即为该消息符号的二进制码字。

五、实验步骤1.根据实验原理,设计香农编码程序;2.输入一组信源消息符号概率,可以求香农编码、平均码长和编码效率。

六、实验报告要求51. 按照本节内容后实验报告形式书写;2. 实验总结和心得要详细,可以根据自己情况写出建议。

七、实验注意事项1.香农编码是符号概率大的用短表示,小长程序中香农编码是符号概率大的用短表示,小长程序中香农编码是符号概率大的用短表示,小长程序中需要对概率进行排序,此我们调用MATLAB MATLABMATLABMATLABMATLAB的库函数;2.最后需要注意的是,求得码字依次与排序符号概率对应;3.向无穷方取最小正整数位ceilceilceil 函数。

八、思考题举例说明香农编码在现实中有际作用,列一个子并简要说明?附录1:实验报告样式:实验报告班级:姓名:学号:组别:同组人:课程名称:实验室:实验时间:(使用实验报告纸的,以上内容可按照实验报告纸格式填写)实验二香农编码一、实验目的:二、实验内容与原理:三、实验器材(设备、元器件、软件工具、平台):四、实验步骤:五、程序流程图:六、实验数据及结果分析:七、实验结论:八、思考题:九、编程、调试过程中遇到的问题及解决方法:十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。

附录2:香农编码程序:close all;clc;n=input('输入信源符号个数:');p=zeros(1,n);for i=1:np(1,i)=input('输入信源符号概率:');endif sum(p)<1||sum(p)>1error('输入概率不符合概率分布')end6y=fliplr(sort(p));D=zeros(n,4);D(:,1)=y';for i=2:nD(1,2)=0;D(i,2)=D(i-1,1)+D(i-1,2);endfor i=1:nD(i,3)=-log2(D(i,1));D(i,4)=ceil(D(i,3));endDA=D(:,2)';B=D(:,4)';Code_length=0;for j=1:nCode_length=Code_length+p(j)*D(j,4);endH=0;for j=1:nH=H+p(j)*log2(1/p(j));endfor j=1:nfprintf('输入信源符号概率为%f的码字为:',p(1,j)); C=deczbin(A(j),B(j));disp(C)endEfficiency=H/(Code_length)fprintf('平均码长:\n');disp(Code_length)fprintf('\n 香农编码效率:\n');disp(Efficiency)A:累加概率;B:码子长度。

:码子长度。

function [C]=deczbin(A,B)C=zeros(1,B); temp=A;for i=1:Btemp=temp*2;if temp>1temp=temp-1;C(1,i)=1;elseC(1,i)=0;endend7实验三费诺编码(2 学时)一、实验目的掌握费诺编码方法的基本步骤及优缺点。

二、实验内容对于给定的信源的概率分布,按照费诺编码的方法进行计算机实现。

三、实验仪器、设备1.计算机-系统最低配置256M 内存、P4 CPU;2.MATLAB 编程软件。

四、实验原理1.费诺编码原理:费诺编码就是通过使编码中各个句号出现的概率大致相等,实现概率均匀化,从而减少冗余度,提高编码效率。

凡是能载荷一定的信息量,且码字的平均长度最短,可分离的变长码的码字集合称为最佳变长码。

在编N 进制码时首先将信源消息符号按其出现的额概率一次又小到大排列开来,并将排列好的心愿符号按概率值分N 大组,使N 组的概率之和近似相同,并对各组赋予一个N 进制码元0、1...N-1。

之后再针对每一个大组内的心愿符号做如上处理,即再分为概率相同的N 组,赋予N 进制码元。

相关文档
最新文档