搜档网
当前位置:搜档网 › 关于信源熵的实验报告讲解

关于信源熵的实验报告讲解

关于信源熵的实验报告讲解
关于信源熵的实验报告讲解

实验报告

实验名称关于信源熵的实验课程名称信息论与编码

姓名xxx 成绩90

班级电子信息

1102学号0909112204

日期2013.11.22地点综合实验楼

实验一关于信源熵的实验

一、实验目的

1. 掌握离散信源熵的原理和计算方法。

2. 熟悉matlab 软件的基本操作,练习使用matlab 求解信源的信息熵。

3. 自学图像熵的相关概念,并应用所学知识,使用matlab 或其他开发工具

求解图像熵。

4. 掌握Excel的绘图功能,使用Excel绘制散点图、直方图。

二、实验原理

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,即信源的概率空间为:

则该二元信源的信源熵为:

H( X) = - plogp–qlogq = - plogp –(1 - p)log(1- p)

即:H (p) = - plogp –(1 - p)log(1- p) 其中 0 ≤ p ≤1

3. MATLAB二维绘图

用matlab 中的命令plot( x , y) 就可以自动绘制出二维图来。

例1-2,在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 ) %绘制图形

4. MATLAB求解离散信源熵

求解信息熵过程:

1) 输入一个离散信源,并检查该信源是否是完备集。

2) 去除信源中符号分布概率为零的元素。

3) 根据平均信息量公式,求出离散信源的熵。

5. 图像熵的相关知识

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

一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi 表示图像中灰度

值为i 的像素所占的比例,则定义灰度图像的一元灰度熵为:

图像熵计算过程:

1) 输入一幅图像,并将其转换成灰度图像。

2) 统计出图像中每个灰度阶象素概率。

3) 计算出一幅图像的一维熵。

6. Excel的绘图功能

比如:用Excel或制作二元熵函数曲线。具体步骤如下:

1)启动Excel应用程序。

2)准备一组数据 p。在 Excel的一个工作表的 A 列(或其它列)输入一组 p ,

取步长为0.01 ,从0 至100 产生101 个p(利用Excel填充功能)。3)使用 Excel的计算功能,在 B 列中用二元熵函数计算公式,求得 A 列中

各数值对应的二元熵值。比如:在单元格B2中输入公式:

=-A2*LOG(A2,2)-(1-A2)*LOG(1-A2,2)。

4)使用Excel的图表向导,图表类型选“XY散点图”,子图表类型选“无

数据点平滑散点图”,绘制二元熵函数散点图。

三、实验内容

1、使用matlab 软件绘制二元信源熵函数曲线,并说明其物理意义。

2、使用 matlab 软件求解离散单符号信源熵,请自己构造两个信源空间,根

据求解结果说明其物理意义。

3、使用 matlab 软件计算图像一维图像熵,请自己选择任意两幅图像,根据

求解结果说明其物理意义。

4、使用Excel软件,绘制二元信源熵函数曲线的散点图。

5、使用Excel软件,绘制(3)中两幅图像的灰度直方图(0 到255 各灰度

占图像像素的比例值,使用柱状图绘制其比列分布)。

四、程序设计与算法描述

(1)绘制二元信源熵函数曲线

实验代码:

p=0.00001:0.001:1;

H=-(p).*log2(p)-(1-p).*log2(1-p);

plot(p,H);

实验结果如下:

物理意义:(1)信源熵为信源的平均不确定性,而概率的大小决定了信息量的大小。

(2)由上图可知概率为1时,信息量最小,不确定性最低;概率等于0.5时熵最大。

(2)求解离散单符号信源熵

程序代码:

(1)

X=[1 2 3 4 5 6]

P=[1/6 1/6 1/6 1/6 1/6 1/6]

H=6*(-(1/6)*log(1/6))

(2)

X=[0 1 2 3 4 5 6 7 8 9]

P=[0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1] H=10*(-0.1)*log(0.1)

实验结果如下所示:

图1:

计算结果表明了信源的平均不确定度。

图2:

计算结果表明了信源的平均不确定度。

计算图像一维图像熵

选择的两幅图像如下:

实验代码如下:

(1)filename='winter.jpg'; imfinfo(filename)

imgRgb=imread(filename); imshow(imgRgb);

A=rgb2gray(imgRgb);

figure

imshow(A);

imwrite(A,'winter1.jpg');

[M,N]=size(A);

p=zeros(256,1);

for m=1:M;

for n=1:N;

if A(m,n)==0;

i=1;

else

i=A(m,n);

end

p(i)=p(i)+1;

end

end

p=p./(M*N)

result=0;

for i=1:length(p)

if p(i)==0;

result=result;

else

result=result-p(i)*log2(p(i)); end

end

result

(3)用Excel软件,绘制二元信源熵函数曲线的散点图

取步长为0.01 ,从0 至100 产生101 个p

各数值对应的二元熵值。比如:在单元格B2中输入公式:

=-A2*LOG(A2,2)-(1-A2)*LOG(1-A2,2)。

使用Excel的图表向导,图表类型选“XY散点图”,子图表类型选“无数据点平滑散点图”,绘制二元熵函数散点图。

在Excel中的数据如下:

0.01 0.080793

0.02 0.141441

0.03 0.194392

0.04 0.242292

0.05 0.286397

0.06 0.327445

0.07 0.365924

0.08 0.402179

0.09 0.43647

0.1 0.468996

0.11 0.499916

0.12 0.529361

0.13 0.557438

0.14 0.584239

0.15 0.60984

0.16 0.63431

0.17 0.657705

0.18 0.680077

0.19 0.701471

0.2 0.721928

0.21 0.741483

0.22 0.760168

0.23 0.778011

0.24 0.79504

0.25 0.811278

0.26 0.826746

0.27 0.841465

0.28 0.855451

0.29 0.868721

0.31 0.893173 0.32 0.904381 0.33 0.914926 0.34 0.924819 0.35 0.934068 0.36 0.942683 0.37 0.950672 0.38 0.958042 0.39 0.9648 0.4 0.970951 0.41 0.9765 0.42 0.981454 0.43 0.985815 0.44 0.989588 0.45 0.992774 0.46 0.995378 0.47 0.997402 0.48 0.998846 0.49 0.999711 0.5 1 0.51 0.999711 0.52 0.998846 0.53 0.997402 0.54 0.995378 0.55 0.992774 0.56 0.989588 0.57 0.985815 0.58 0.981454 0.59 0.9765 0.6 0.970951 0.61 0.9648 0.62 0.958042 0.63 0.950672 0.64 0.942683 0.65 0.934068 0.66 0.924819 0.67 0.914926 0.68 0.904381 0.69 0.893173 0.7 0.881291 0.71 0.868721 0.72 0.855451 0.73 0.841465

0.75 0.811278

0.76 0.79504

0.77 0.778011

0.78 0.760168

0.79 0.741483

0.8 0.721928

0.81 0.701471

0.82 0.680077

0.83 0.657705

0.84 0.63431

0.85 0.60984

0.86 0.584239

0.87 0.557438

0.88 0.529361

0.89 0.499916

0.9 0.468996

0.91 0.43647

0.92 0.402179

0.93 0.365924

0.94 0.327445

0.95 0.286397

0.96 0.242292

0.97 0.194392

0.98 0.141441

0.99 0.080793

1 #NUM! 所绘制图像如下:

(5)用Excel软件,绘制(3)中两幅图像的灰度直方图

实验步骤:先在MATLAB里面计算出(3)中各级灰度值的概率,(3)中的图像都是128*128的,灰度级有256个。在Excel中做出柱状图。

0.0001

0.0001

0.0001

0.0002

0.0004

0.0006

0.001

0.0016

0.0027

0.0035

0.006

0.0057

0.0076 0.0084 0.0092 0.0101 0.011 0.0118 0.0121 0.013 0.0131 0.0139 0.0137 0.0147 0.0142 0.0147 0.0151 0.0147 0.0152 0.0157 0.0152 0.0159 0.0163 0.0165 0.0166 0.0168 0.0173 0.0174 0.018 0.0176 0.0184 0.0179 0.0176 0.018 0.0174 0.0169 0.0169 0.0163 0.0155 0.015 0.0144 0.0141 0.0132 0.0127 0.0119

0.0105 0.01 0.0096 0.0088 0.0083 0.0079 0.0075 0.0068 0.0063 0.006 0.0056 0.0051 0.005 0.0046 0.0043 0.0041 0.0039 0.0035 0.0033 0.0033 0.0031 0.0031 0.003 0.0027 0.0026 0.0026 0.0025 0.0024 0.0024 0.0024 0.0025 0.0024 0.0025 0.0023 0.0023 0.0023 0.0022 0.0023 0.0021 0.0021 0.0022 0.0021 0.0021

0.002 0.002 0.002 0.002 0.002 0.002 0.0019 0.0019 0.0019 0.0019 0.0019 0.0018 0.0018 0.0018 0.0018 0.0018 0.0018 0.0019 0.0018 0.0018 0.0017 0.0017 0.0017 0.0016 0.0017 0.0016 0.0016 0.0016 0.0016 0.0017 0.0016 0.0015 0.0016 0.0017 0.0015 0.0016 0.0015 0.0015 0.0015 0.0015 0.0016 0.0015 0.0015

0.0015 0.0014 0.0015 0.0014 0.0014 0.0013 0.0013 0.0013 0.0013 0.0014 0.0013 0.0013 0.0013 0.0013 0.0012 0.0013 0.0011 0.0011 0.0012 0.0012 0.0011 0.0011 0.0011 0.0011 0.001 0.0011 0.001 0.001 0.001 0.0009 0.001 0.0009 0.001 0.0009 0.001 0.0009 0.001 0.0009 0.0009 0.0008 0.0009 0.0009 0.0008

0.0008 0.0008 0.0007 0.0007 0.0007 0.0008 0.0007 0.0007 0.0007 0.0006 0.0006 0.0007 0.0006 0.0006 0.0006 0.0005 0.0006 0.0005 0.0005 0.0005 0.0004 0.0004 0.0005 0.0004 0.0004 0.0004 0.0004 0.0004 0.0003 0.0003 0.0004 0.0003 0.0003 0.0002 0.0002 0.0002 0.0002 0.0002 0.0002 0.0002 0.0002 0.0001 0.0001

0.0001

0.0001

0.0001

0.0001

得到下图所示柱状图:

信源及信源熵习题答案

第二章: 试问四进制、八进制脉冲所含信息量是二进制脉冲的多少倍 解: 四进制脉冲可以表示4个不同的消息,例如:{0, 1, 2, 3} 八进制脉冲可以表示8个不同的消息,例如:{0, 1, 2, 3, 4, 5, 6, 7} 二进制脉冲可以表示2个不同的消息,例如:{0, 1} 假设每个消息的发出都是等概率的,则: 四进制脉冲的平均信息量H(X 1) = log 2n = log 24 = 2 bit/symbol 八进制脉冲的平均信息量H(X 2) = log 2n = log 28 = 3 bit/symbol 二进制脉冲的平均信息量H(X 0) = log 2n = log 22 = 1 bit/symbol 《 所以: 四进制、八进制脉冲所含信息量分别是二进制脉冲信息量的2倍和3倍。 居住某地区的女孩子有25%是大学生,在女大学生中有75%是身高160厘米以上的,而女孩子中身高160厘米以上的占总数的一半。假如我们得知“身高160厘米以上的某女孩是大学生”的消息,问获得多少信息量 解: 设随机变量X 代表女孩子学历 X x 1(是大学生) x 2(不是大学生) P(X) ( 设随机变量Y 代表女孩子身高 Y y 1(身高>160cm ) y 2(身高<160cm ) P(Y) " 已知:在女大学生中有75%是身高160厘米以上的 即:p(y 1/ x 1) = 求:身高160厘米以上的某女孩是大学生的信息量 即:bit y p x y p x p y x p y x I 415.15.075.025.0log )()/()(log )/(log )/(2111121111=??? ???-=? ? ????-=-= 一副充分洗乱了的牌(含52张牌),试问 (1) 任一特定排列所给出的信息量是多少 (2) 若从中抽取13张牌,所给出的点数都不相同能得到多少信息量 》 解: (1) 52张牌共有52!种排列方式,假设每种排列方式出现是等概率的则所给出的信息量是: bit x p x I i i 581.225!52log )(log )(2==-= (2) 52张牌共有4种花色、13种点数,抽取13张点数不同的牌的概率如下:

第3章_离散信源(1)题与答案

3.1 设有一离散无记忆信源,其概率空间为 ??? ? ??=====??????8/14/1324/18/310)(4321x x x x X P X 该信源发出的信息序列为(202 120 130 213 001 203 210 110 321 010 021 032 011 223 210)。 求: (1) 此消息的自信息量是多少? (2) 此消息中平均每符号携带的信息量是多少? 解: (1) 此消息总共有14个0、13个1、12个2、6个3,因此消息发出的概率是: 6 2514814183?? ? ?????? ?????? ??=p 此消息的信息量是:bit p I 811.87log =-= (2) 此消息中平均每符号携带的信息量是:bit n I 951.145/811.87/== 3.2 某一无记忆信源的符号集为{0, 1},已知信源的概率空间为 ???? ??=??????4/34/110 )(X P X (1) 求信息符号的平均熵; (2) 由100个符号构成的序列,求某一特定序列(例如有m 个“0”和(100 - m )个“1”)的自信息量的表达式; (3) 计算(2)中序列的熵。 解: (1) bit x p x p X H i i i 811.043log 4341log 41 )(log )()(=??? ??+-=-=∑ (2) bit m x p x I x p m i i m m m i 585.15.4143 log )(log )(4 34341)(100 100100 100100+=-=-==? ? ? ?????? ??=--- (3) bit X H X H 1.81811.0100)(100)(100=?== 3.5 某信源的消息符号集的概率分布和二进制代码如题表3.2所列。 题表 3.2

第二章信源熵-习题答案(精品文档)

· 1 · 2.1 试问四进制、八进制脉冲所含信息量是二进制脉冲的多少倍? 解: 四进制脉冲可以表示4个不同的消息,例如:{0, 1, 2, 3} 八进制脉冲可以表示8个不同的消息,例如:{0, 1, 2, 3, 4, 5, 6, 7} 二进制脉冲可以表示2个不同的消息,例如:{0, 1} 假设每个消息的发出都是等概率的,则: 四进制脉冲的平均信息量H(X 1) = log 2n = log 24 = 2 bit/symbol 八进制脉冲的平均信息量H(X 2) = log 2n = log 28 = 3 bit/symbol 二进制脉冲的平均信息量H(X 0) = log 2n = log 22 = 1 bit/symbol 所以: 四进制、八进制脉冲所含信息量分别是二进制脉冲信息量的2倍和3倍。 2.2 居住某地区的女孩子有25%是大学生,在女大学生中有75%是身高160厘米以上的,而女孩子中身高160厘米以上的占总数的一半。假如我们得知“身高160厘米以上的某女孩是大学生”的消息,问获得多少信息量? 解: 设随机变量X 代表女孩子学历 X x 1(是大学生) x 2(不是大学生) P(X) 0.25 0.75 设随机变量Y 代表女孩子身高 Y y 1(身高>160cm ) y 2(身高<160cm ) P(Y) 0.5 0.5 已知:在女大学生中有75%是身高160厘米以上的 即:p(y 1/ x 1) = 0.75 求:身高160厘米以上的某女孩是大学生的信息量 即:bit y p x y p x p y x p y x I 415.15.075.025.0log )()/()(log )/(log )/(2111121111=??? ???-=? ? ????-=-= 2.3 一副充分洗乱了的牌(含52张牌),试问 (1) 任一特定排列所给出的信息量是多少? (2) 若从中抽取13张牌,所给出的点数都不相同能得到多少信息量? 解: (1) 52张牌共有52!种排列方式,假设每种排列方式出现是等概率的则所给出的信息量是: bit x p x I i i 581.225!52log )(log )(2==-= (2) 52张牌共有4种花色、13种点数,抽取13张点数不同的牌的概率如下: bit C x p x I C x p i i i 208.134 log )(log )(4)(1352 13 2 213 52 13 =-=-==

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

实验一信息熵与图像熵计算(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 ii p p H 图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。选择图像的邻域灰度均值作为灰度2

第四章 信源编码 习题解答

第四章信源编码 习题解答 1、一个信源由 1) 哪些是非奇异码?哪些是唯一可译码?哪些是即时码? 2) 分别计算每个唯一可译码的平均码长和编码效率。 解:1)A 、B 、C 、D 、E 、F 是非奇异码。A 、B 、C 、F 是唯一可译码(E 不满足克拉夫特不等式)。A 、C 、F 是即时码(B 是续长码)。 3) 编码A : 平均码长:3A L = 码元/消息 信源熵:111111 ()lb lb 4lb 222441616 H X =---?=比特/消息 编码效率:max ()/2/3 66.7%lb21 A H H X L H η====码码 编码B 和C : 平均码长:111111 23456 2.1252416161616 B C L L ==+?+?+?+?+?= 码元/消息 编码效率:max ()/2/2.125 94.1%lb21 B C H H X L H ηη=====码码 编码F : 平均码长:11 1234 2.524 16F L ??=? +?+?= ??? 码元/消息 编码效率:max ()/2/2.5 80%lb21 F H H X L H η====码码 2、离散无记忆信源X 的概率空间为:1 234567()0.200.190.180.170.150.100.01X x x x x x x x p X ????=???????? 1)对其进行费诺编码,并计算其编码效率; 2)对其进行哈夫曼编码,并将其编码效率与费诺编码相比较。

解:1)费诺编码: 平均码长:()()()0.20.1720.190.180.1530.10.014 2.74L =+?+++?++?=码元/符号 信源熵: ()0.20lb0.200.19lb0.190.18lb0.180.17lb0.170.15lb0.150.1lb0.10.01lb0.01 2.60/874H X =-------= 比特符号 编码后平均码元熵:() 2.60874 0.95212.74H X H L ===码比特/码元 编码效率:max 0.9521 95.21%lb2 H H η= ==码码 2)哈夫曼编码: 码长 码字 信源X p (X ) 2 10 x 1 2 11 x 2 3 000 x 3 3 001 x 4 3 010 x 5 4 0110 x 6 4 0111 x 7 平均码长:()()()0.20.1920.180.170.1530.10.014 2.72L =+?+++?++?=码元/符号 编码后平均码元熵:() 2.60874 0.95912.72H X H L ===码比特/码元 编码效率:max 0.9591 95.91%lb2 H H η= ==码码 与费诺编码相比,哈夫曼编码的编码效率要高于费诺编码。 一般情况下哈夫曼编码效率较高,但费诺编码如果每次划分概率很接近,则效率也很高。

实验1_信息论相关实验实验报告

信息论与编码实验一实验报告 学生姓名周群创 指导教师张祖平 学号0909110814 专业班级电子信息1101

实验一关于信源熵的实验 一、实验目的 1. 掌握离散信源熵的原理和计算方法。 2. 熟悉matlab 软件的基本操作,练习使用matlab 求解信源的信息熵。 3. 自学图像熵的相关概念,并应用所学知识,使用matlab 或其他开发工具求解图像熵。 4. 掌握Excel 的绘图功能,使用Excel 绘制散点图、直方图。 二、实验原理 1. 离散信源相关的基本概念、原理和计算公式 产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。 随机事件的自信息量I(x i)为其对应的随机变量x i 出现概率对数的负值。即: I(x i)= -log2 p(x i) 随机事件X 的平均不确定度(信源熵)H(X)为离散随机变量x i 出现概 率的数学期望,即:

H(X )=-∑p(x )I (x ) =-∑p(x ) log p(x ) 2. 二元信源的信息熵 设信源符号集X={0,1},每个符号发生的概率分别为p(0)=p,p(1)=q, p+ q=1,即信源的概率空间为 则该二元信源的信源熵为: H(X) = - p log p –q log q = - p log p – (1- p) log (1- p) 即:H (p) = - p log p – (1- p) log (1- p) 其中0 ≤p ≤1 3. MATLAB 二维绘图 用matlab 中的命令plot(x, y)就可以自动绘制出二维图来。 例1-2,在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) %绘制图形 4. MATLAB 求解离散信源熵 求解信息熵过程: 1) 输入一个离散信源,并检查该信源是否是完备集。 2) 去除信源中符号分布概率为零的元素。 3) 根据平均信息量公式,求出离散信源的熵。 5. 图像熵的相关知识 图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。图像的

第二章信源信息熵

第二章信源与信息熵 主要内容:(1)信源的描述与分类;(2)离散信源熵和互信息;(3)离散序列信源的熵;(4)连续信源的熵和互信息;(5)冗余度。 重点:离散/连续信源熵和互信息。 难点:离散序列有记忆信源熵。 说明:本章内容主要针对信源,但是很多基本概念却是整个信息论的基础,所以安排了较多课时。由于求熵涉及一些概率论的基础知识,考虑到大四的同学可能对这部分知识已经遗忘,故适当复习部分概率论知识。较难的 2.1.2节马尔可夫信源部分放置在本章最后讲,便于同学理解。本章概念和定理较多,比较抽象,课堂教学时考虑多讲述一些例题,通过例题来巩固概念和消化定理。 作业: 2.1—2.7,2.10,2.12。 课时分配:10课时。 板书及讲解要点: 在信息论中,信源是发出消息的源,信源输出以符号形式出现的具体消息。如果符号是确定的而且预先是知道的,那么该消息就无信息而言。只有当符号的出现是随机的,预先无法确定,一旦出现某个符合就给观察者提供了信息。因此应该用随机变量或随机矢量来表示信源,运用概率论和随机过程的理论来研究信息,这就是香农信息论的基本点。 2.1 信源的描述与分类 在通信系统中收信者在未收到消息以前对信源发出什么消息是不确定的,是随机的,所以可用随机变量、随机序列或随机过程来描述信源输出的消息,或者说用一个样本空间及其概率测度——概率空间来描述信源。 信源:产生随机变量、随机序列和随机过程的源。 信源的基本特性:具有随机不确定性。 信源的分类 离散信源:文字、数据、电报——随机序列 连续信源:话音、图像——随机过程 离散信源:输出在时间和幅度上都是离散分布的消息。

消息数是有限的或可数的,且每次只输出其中一个消息,即两两不相容。 发出单个符号的无记忆信源 离散无记忆信源: 发出符号序列的无记忆信源 离散信源 离散有记忆信源: 发出符号序列的有记忆信源 发出符号序列的马尔可夫信源 概率论基础: 无条件概率,条件概率和联合概率的性质和关系: (1) 非负性 0()()(/)(/)()1i j j i i j i j p x p y p y x p x y p x y ≤≤,,,, (2) 完备性 111 1 11 ()1,()1,(/)1, (/)1,()1 n m n i j i j i j i m m n j i i j j j i p x p y p x y p y x p x y ===========∑∑∑∑∑∑ 1 1 ()(),()()n m i j j i j i i j p x y p y p x y p x ====∑∑ (3) 联合概率 ()()(/)()(/)()()()(/)()(/)() i j i j i j i j i j i j j i j i j i p x y p x p y x p y p x y X Y p x y p x p y p y x p y p x y p x =====当与相互独立时,, (4) 贝叶斯公式 1 1 () () (/)(/)() () i j i j i j j i n m i j i j i j p x y p x y p x y p y x p x y p x y === = ∑∑, 2.1.1 无记忆信源: 例如扔骰子,每次试验结果必然是1~6点中的某一个面朝上。可以用一个离散型随机变量X 来描述这个信源输出的消息。

关于信源熵的实验报告讲解

实验报告 实验名称关于信源熵的实验课程名称信息论与编码 姓名xxx 成绩90 班级电子信息 1102学号0909112204 日期2013.11.22地点综合实验楼

实验一关于信源熵的实验 一、实验目的 1. 掌握离散信源熵的原理和计算方法。 2. 熟悉matlab 软件的基本操作,练习使用matlab 求解信源的信息熵。 3. 自学图像熵的相关概念,并应用所学知识,使用matlab 或其他开发工具 求解图像熵。 4. 掌握Excel的绘图功能,使用Excel绘制散点图、直方图。 二、实验原理 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,即信源的概率空间为: 则该二元信源的信源熵为: H( X) = - plogp–qlogq = - plogp –(1 - p)log(1- p) 即:H (p) = - plogp –(1 - p)log(1- p) 其中 0 ≤ p ≤1 3. MATLAB二维绘图 用matlab 中的命令plot( x , y) 就可以自动绘制出二维图来。 例1-2,在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 ) %绘制图形 4. MATLAB求解离散信源熵 求解信息熵过程: 1) 输入一个离散信源,并检查该信源是否是完备集。

第二章 信源与信息度量 习题

第二章 信源与信息度量 习题 1. 某大学设置五个学院,每个学院的学生数分别为 学院: 数学 物理 外语 外贸 医学 人数: 300 400 500 600 200 问“某学生王某是外语学院学生”这一消息提供的信息量是多少? 2. 同时扔出两个正常的骰子,也就是各面呈现的概率都是1/6,求: (1) 事件“2和5同时呈现”的自信息量; (2) 事件“两个4同时呈现”的自信息量; (3) 事件“至少呈现一个1”的自信息量。 3. 字母“e ” 在英文中出现的概率是0.103,字母“c ”出现的概率为0.022,字母“x ”出现的概率是0.001,求这些字母各自的自信息量。 4. 某电子厂共能生产A 、B 、C 、D 四种仪器,其中A 因技术落后停产了,B 占全部产量的20%,C 占30%,D 占50%。有两个消息“现在完成1台仪器B ”,和“现在完成1台仪器C ”,试确定哪一种消息提供的信息量大些?其中有什么规律? 5. 某地,35%的女孩上大学,65%的女大学生身高超过1.6米,而一个女孩身高超过1.6米的概率是50%,现有一条消息:说某一个身高超过1.6米的女孩是大学生,求这条消息的信息量。 6. 试求: (1) 在一付标准的扑克牌中抽出一张(每张牌均认为是不同的)的平均信息量。 (2) 若扑克牌仅按它的等级鉴定而不问它的花色(大、小王属同一等级),重复上述计算。 7. 某地的天气预报为:晴(占4/8),多云(占2/8),雨(占1/8),雪(占1/8),冰雹(占0/8);而当地老农对天气的预测只能做到:晴(占7/8),雨(占1/8)。试求两者对天气预报各自提供的平均信息量,并说明从中得到的规律。 8. 某离散无记忆平稳信源的概率空间为:12340123()3/81/41/41/8X x x x x p X ====????=????? ???,若某消息符号序列为:202 120 130 213 001 203 210 110 321 010 021 032 011 223 210,求: (1) 该消息的自信息量; (2) 该消息平均每个符号携带的信息量。 9. 若每帧电视图像由3×105 个像素组成,且像素是独立变化的。每个像素取128个不同的亮度电平,并设亮度电平等概率出现。

信息论与编码第二章 信源熵习题的答案[最新]

2.1 试问四进制、八进制脉冲所含信息量是二进制脉冲的多少倍? 解: 四进制脉冲可以表示4个不同的消息,例如:{0, 1, 2, 3} 八进制脉冲可以表示8个不同的消息,例如:{0, 1, 2, 3, 4, 5, 6, 7} 二进制脉冲可以表示2个不同的消息,例如:{0, 1} 假设每个消息的发出都是等概率的,则: 四进制脉冲的平均信息量symbol bit n X H / 24log log )(1=== 八进制脉冲的平均信息量symbol bit n X H / 38log log )(2=== 二进制脉冲的平均信息量symbol bit n X H / 12log log )(0=== 所以: 四进制、八进制脉冲所含信息量分别是二进制脉冲信息量的2倍和3倍。 2.2 居住某地区的女孩子有25%是大学生,在女大学生中有75%是身高160厘米以上的,而女孩子中身高160厘米以上的占总数的一半。假如我们得知“身高160厘米以上的某女孩是大学生”的消息,问获得多少信息量? 解: 设随机变量X 代表女孩子学历 X x 1(是大学生) x 2(不是大学生) P(X) 0.25 0.75 设随机变量Y 代表女孩子身高 Y y 1(身高>160cm ) y 2(身高<160cm ) P(Y) 0.5 0.5 已知:在女大学生中有75%是身高160厘米以上的 即:bit x y p 75.0)/(11= 求:身高160厘米以上的某女孩是大学生的信息量 即:bit y p x y p x p y x p y x I 415.15 .075.025.0log )()/()(log )/(log )/(11111111=?-=-=-= 2.3 一副充分洗乱了的牌(含52张牌),试问 (1) 任一特定排列所给出的信息量是多少? (2) 若从中抽取13张牌,所给出的点数都不相同能得到多少信息量? 解: (1) 52张牌共有52!种排列方式,假设每种排列方式出现是等概率的则所给出的信息量是: ! 521)(=i x p bit x p x I i i 581.225!52log )(log )(==-= (2) 52张牌共有4种花色、13种点数,抽取13张点数不同的牌的概率如下:

第三章 信源及信源熵

第三章 信源及信源熵 ?信源的主要问题: 信源的描述(数学建模); 信源输出信息能力的定量分析(信源熵); 信源信息的有效表示(信息编码)。 编码器 信道 译码器 信宿 噪声源 信源

第三章 信源及信源熵 ?信源的主要问题: 信源的描述(数学建模); 信源输出信息能力的定量分析(信源熵); 信源信息的有效表示(信息编码)。 编码器 信道 译码器 信宿 噪声源 信源

第三章信源及信源熵 ?3.1 信源的分类及其数学模型?3.2 离散单符号信源 ?3.3 离散多符号信源 ?3.3.1 离散平稳信源 ?3.3.2 离散平稳无记忆信源 ?3.3.3 离散平稳有记忆信源 ?3.3.4 马尔可夫信源 ?3.4 信源的相关性和剩余度

3.1 信源的分类及其数学模型 ?信源的分类 分类1:根据信源输出的消息在时间和取值上是离散或连续分。时间(空间)取值信源种类举例数学描述 离散离散 离散信源 (数字信源) 文字、数据、 离散化图像 离散随机变量序列 离散连续连续信号跳远比赛的结果、 语音信号抽样以后 连续随机变量序列 连续连续 波形信源 (模拟信源) 语音、音乐、热噪 声、图形、图像 随机过程 连续离散不常见

3.1 信源的分类及其数学模型 分类2:根据各维随机变量的概率分布是否随时间的推移而变化分。 1)平稳信源 2)非平稳信源 分类3:根据随机变量间是否统计独立分。 1)有记忆信源 2)无记忆信源

3.1 信源的分类及其数学模型 实际信源分类: ()( ()1H NH X H H m ??=???????????∞????????+?? ?? ???? ?X 离散无记忆信源:)记忆长度无限长:离散平稳信源平稳信源离散有记忆信源记忆长度有限马尔可夫信源:连续平稳信源非平稳信源 信源

信源编码实验报告

电子科技大学 实验报告 课程名称信息论与编码 实验名称信源编码 任课教师 姓名学号 时间2018 年11月28 日 一、实验目的和要求 1.掌握对信源变长编码定理的理解; 2.掌握信源编码技术,如香农编码,费诺编码,哈夫曼编码或其他无失真信源 编码技术; 3.对英文小说“Game of Thrones”中出现的26个英文字母和空格符号(一共 27个符号)进行信源编码。 4.至少对前两章“Prologue”和“Bran”中出现的符号进行统计。 5.任意选择一种编程平台,C++,Java,Python,Matlab等等。 6.运行程序后,能够在屏幕上显示每一个符号对应的码字,原始信源的熵,平 均码字长度,码字长度的方差,以及编码效率。

二、 实验内容 1. 对英文小说“Game of Thrones ”中出现的26个英文字母和空格符号(一共27个符号)进行信源编码。 2. 在屏幕上显示每一个符号对应的码字,原始信源的熵,平均码字长度,码字长度的方差,以及编码效率。 三、 实验原理 1. 采用哈夫曼编码完成实验要求 2.哈夫曼(Haveman )编码算法是满足前缀条件的平均二进制码长最短的编-源输出符号,而将较短的编码码字分配给较大概率的信源输出。算法是:在信源符号集合中,首先将两个最小概率的信源输出合并为新的输出,其概率是两个相应输出符号概率之和。这一过程重复下去,直到只剩下一个合并输出为止,这个最后的合并输出符号的概率为1。这样就得到了一张树图,从树根开始,将编码符号1 和0 分配在同一节点的任意两分支上,这一分配过程重复直到树叶。从树根到树叶途经支路上的编码最后就构成了一组异前置码,就是霍夫曼编码输出。 离散无记忆信源: 例如 Uu 1u 2u 3u 4u 5 P (U ) = 0.4 0.2 0.2 0.1 0.1

英语信源汉语信源信息熵的研究

英语信源、汉语信源及其信息熵的研究 摘要 英语信源和汉语信源是两种不同的自然语信源,而信息熵反映了信源的记忆长度,信源的记忆长度越长,熵就越小。只有当记忆长度为0,即信源符号间彼此没有任何依赖关系且等概率分布时,信源熵达到最大值。也就是说,信源符号相关性越强,所提供的平均信息量就越小。所以,研究这两种信源的信息熵,就可以得出每种信源中符号的相关性,和提供的平均信息量,量化的来比较两种语言。 关键词 英语信源 汉语信源 信息熵 正文 一、英语信源及其信息熵 英语字母有26个,加上空格,共27个符号。根据熵的性质,信源的最大熵 02log 27 4.76(/)H bit symbol == 但实际上,英语中的字母并非等概率出现,字母之间还有严格的依赖关系。如果我们对英语书中27个符号出现的概率加以统计,可得: 27个英语字符出现的概率 符号 概率 符号 概率 符号 概率 空格 0.2 S 0.052 Y,M 0.012 E 0.105 H 0.047 G 0.011 T 0.072 D 0.035 B 0.0105 O 0.0654 L 0.029 V 0.008 A 0.063 C 0.023 K 0.003 N 0.059 F,U 0.0225 X 0.002

I 0.055 M 0.021 J,Q 0.001 R 0.054 P 0.0175 Z 0.001 如果不考虑上述符号之间的依赖关系,即近似地认为信源是离散无记忆信源,根据离散上的定义可得 27121()log () 4.03(/) i i i H p a p a bit symbol ==-=∑ 按上述表格中的概率分布,随机选择英语字母排列起来,得到一个信源输出序列: AI_NGAE_ITE_NNR_ASAEV_OTE_BAINTHA_HYROO_POER_SE TRYGAIETRWCO … 可见,这些字母完全是随机排列,毫无相关性,却不是英语单词,所以我们应该考虑字母的依赖性。 为了进一步逼近实际情况,可把婴语信源近似地看作1阶,2阶,…,∞阶马尔可夫信源,求得相应的熵 2 3.32(/)H bit symbol = 3 3.1(/)H bit symbol = 异推出,马尔可夫信源阶数越高,输出的序列越接近实际情况。当依赖关系延伸到无穷远时,信源输出就是真正的英语。所以我们求马尔可夫信源的极限熵 1.4(/)H bit symbol ∞= 二、汉语信源及其信息熵

实验一:绘制信源熵函数曲线

信息与通信工程学院实验报告 (软件仿真性实验) 课程名称:信息论基础 实验题目:绘制信源熵函数曲线指导教师:毛煜茹 班级:15050541学号:19 学生姓名:王宇 一、实验目的和任务 掌握离散信源熵的原理和计算方法。 熟悉matlab软件的基本操作,练习应用matlab软件进行信源熵函数曲线的绘制。 理解信源熵的物理意义,并能从信源熵函数曲线图上进行解释其物理意义。 二、实验内容及原理 2.1实验内容: 用matlab软件绘制二源信源熵函数曲线。根据曲线说明信源熵的物理意义。 2.2实验原理: (1)离散信源相关的基本概念、原理和计算公式 产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。 假定X是一个离散随机变量,即它的取值范围R={x1,x2,x3,…}是有限或可数的。设第i个变量x i 发生的概率为p i=P{X=x i}。则: 定义一个随机事件的自信息量I(x i)为其对应的随机变量x i出现概率对数的负值。即: I(x i )= -log 2 p(x i ) 定义随机事件X的平均不确定度H(X)为离散随机变量x i出现概率的数学期望,即:

∑∑-==i i i i i i x p x p x I x p X H )(log )()()()( 单位为 比特/符号 或 比特/符号序列。 平均不确定度H (X )的定义公式与热力学中熵的表示形式相同,所以又把平均不确定度H (X )称为信源X 的信源熵。 必须注意以下几点: 某一信源,不管它是否输出符号,只有这些符号具有某些概率特性,必有信源的熵 值;这熵值是在总体平均上才有意义,因而是个确定值,一般写成H (X ),X 是指随机变量的整体(包括概率分布)。 信息量则只有当信源输出符号而被接收者收到后,才有意义,这就是给与信息者的 信息度量,这值本身也可以是随机量,也可以与接收者的情况有关。 熵是在平均意义上来表征信源的总体特征的,信源熵是表征信源的平均不确定度, 平均自信息量是消除信源不确定度时所需要的信息的量度,即收到一个信源符号,全部解除了这个符号的不确定度。或者说获得这么大的信息量后,信源不确定度就被消除了。信源熵和平均自信息量两者在数值上相等,但含义不同。 当某一符号x i 的概率p (x i )为零时,p (x i )log p (x i ) 在熵公式中无意义,为此规定这 时的 p (x i )log p (x i ) 也为零。当信源X 中只含有一个符号x 时,必有p (x )=1,此时信源熵H (X )为零。 例1-1,设信源符号集X ={0,1},每个符号发生的概率分别为p (0)=p ,p (1)=q ,p+ q =1,即信源的概率空间为 ?? ????=?????? 1 0q p P X 则该二元信源的信源熵为: H (X ) = - p log p – q log q = - p log p – (1- p )log (1- p) 即:H (p) = - p log p – (1- p )log (1- p) 其中0 ≤ p ≤1

信源及信源熵习题答案

· 1 · 第二章: 2.1 试问四进制、八进制脉冲所含信息量是二进制脉冲的多少倍? 解: 四进制脉冲可以表示4个不同的消息,例如:{0, 1, 2, 3} 八进制脉冲可以表示8个不同的消息,例如:{0, 1, 2, 3, 4, 5, 6, 7} 二进制脉冲可以表示2个不同的消息,例如:{0, 1} 假设每个消息的发出都是等概率的,则: 四进制脉冲的平均信息量H(X 1) = log 2n = log 24 = 2 bit/symbol 八进制脉冲的平均信息量H(X 2) = log 2n = log 28 = 3 bit/symbol 二进制脉冲的平均信息量H(X 0) = log 2n = log 22 = 1 bit/symbol 所以: 四进制、八进制脉冲所含信息量分别是二进制脉冲信息量的2倍和3倍。 2.2 居住某地区的女孩子有25%是大学生,在女大学生中有75%是身高160厘米以上的,而女孩子中身高160厘米以上的占总数的一半。假如我们得知“身高160厘米以上的某女孩是大学生”的消息,问获得多少信息量? 解: 设随机变量X 代表女孩子学历 X x 1(是大学生) x 2(不是大学生) P(X) 0.25 0.75 设随机变量Y 代表女孩子身高 Y y 1(身高>160cm ) y 2(身高<160cm ) P(Y) 0.5 0.5 已知:在女大学生中有75%是身高160厘米以上的 即:p(y 1/ x 1) = 0.75 求:身高160厘米以上的某女孩是大学生的信息量 即:bit y p x y p x p y x p y x I 415.15.075.025.0log )()/()(log )/(log )/(2111121111=??? ???-=? ? ????-=-= 2.3 一副充分洗乱了的牌(含52张牌),试问 (1) 任一特定排列所给出的信息量是多少? (2) 若从中抽取13张牌,所给出的点数都不相同能得到多少信息量? 解: (1) 52张牌共有52!种排列方式,假设每种排列方式出现是等概率的则所给出的信息量是: bit x p x I i i 581.225!52log )(log )(2==-= (2) 52张牌共有4种花色、13种点数,抽取13张点数不同的牌的概率如下: bit C x p x I C x p i i i 208.134 log )(log )(4)(1352 13 2 213 52 13=-=-==

英语信源汉语信源信息熵的研究

英语信源、汉语信源及其信息熵的研究 摘要英语信源和汉语信源是两种不同的自然语信源,而信息熵反映了信源的记忆长度,信源的记忆长度越长,熵就越小。只有当记忆长度为0,即信源符号间彼此没有任何依赖关系且等概率分布时,信源 符号概率符号概率符号概率 空格0.2 S 0.052 Y,M 0.012 E 0.105 H 0.047 G 0.011 T 0.072 D 0.035 B 0.0105 O 0.0654 L 0.029 V 0.008 0.023 K 0.003 A 0.063 C N 0.059 F,U 0.0225 X 0.002 I 0.055 M 0.021 J,Q 0.001

R 0.054 P 0.0175 Z 0.001 如果不考虑上述符号之间的依赖关系,即近似地认为信源是离散无记忆信源,根据离散上的定义可得 27121()log () 4.03(/) i i i H p a p a bit symbol ==-=∑ 1.4(/)H bit symbol ∞= 二、汉语信源及其信息熵 对于英语,字符数少,可轻松的计算出英语信源的信息熵,但是对于汉语这个中文字符极其庞大的信源,科学家们做出了大量的统计

与计算。方法同上面的英语信源信息熵的计算,不过计算量增加了非常多。下面是截取的一些统计资料。 CCL 语料库-现代汉语总字频数:307,317,060 总字种数:9711 字频表: 的:11523375 一:4140344 是:3291508 了:3059837 在:2933070 人:2827726 不:2733842 国:2645758 有:2507415 中:2182025 他:2029395 这:1968713 我:1940875 和:1872750 大:1832977 (ZIPF'S LAW)核算,汉字的容量极限是12366个汉字,汉字的平均信息量是9.65比特 三、英语信源和汉语信源的比较 显而易见,汉语信源的信源熵远远大于英语信源的信息熵,说明

信息论与编码实验报告-信源熵值的计算

实验报告 课程名称:信息论与编码姓名: 系: 专业: 年级: 学号: 指导教师: 职称: 年月日

实验一 信源熵值的计算 一、 实验目的 1 进一步熟悉信源熵值的计算 2熟悉 Matlab 编程 二、实验原理 熵(平均自信息)的计算公式 ∑∑=--==q i i i q i i i p p p p x H 1 212log 1 log )( MATLAB 实现:))(log *.(2x x sum HX -=;或者))((log *)(2i x i x h h -= 流程:第一步:打开一个名为“nan311”的TXT 文档,读入一篇英文文章存入一个数组temp ,为了程序准确性将所读内容转存到另一个数组S ,计算该数组中每个字母与空格的出现次数(遇到小写字母都将其转化为大写字母进行计数),每出现一次该字符的计数器+1; 第二步:计算信源总大小计算出每个字母和空格出现的概率; 最后,通过统计数据和信息熵公式计算出所求信源熵值(本程序中单位为奈特nat )。 程序流程图:

三、实验内容 1、写出计算自信息量的Matlab 程序 2、已知:信源符号为英文字母(不区分大小写)和空格。 输入:一篇英文的信源文档。 输出:给出该信源文档的中各个字母与空格的概率分布,以及该信源的熵。 四、实验环境 Microsoft Windows 7 Matlab 6.5 五、编码程序 #include"stdio.h" #include #include #define N 1000 int main(void) { char s[N]; int i,n=0; float num[27]={0}; double result=0,p[27]={0}; FILE *f; char *temp=new char[485]; f=fopen("nan311.txt","r"); while (!feof(f)) { fread(temp,1, 486, f);} fclose(f); s[0]=*temp; for(i=0;i='a'&&s[i]<='z') num[s[i]-97]++; else if(s[i]>='A'&&s[i]<='Z')

信息论第二章答案

试问四进制、八进制脉冲所含信息量是二进制脉冲的多少倍 解: 四进制脉冲可以表示4个不同的消息,例如:{0, 1, 2, 3} 八进制脉冲可以表示8个不同的消息,例如:{0, 1, 2, 3, 4, 5, 6, 7} 二进制脉冲可以表示2个不同的消息,例如:{0, 1} 假设每个消息的发出都是等概率的,则: 四进制脉冲的平均信息量symbol bit n X H / 24log log )(1=== 八进制脉冲的平均信息量symbol bit n X H / 38log log )(2=== 二进制脉冲的平均信息量symbol bit n X H / 12log log )(0=== 所以: 四进制、八进制脉冲所含信息量分别是二进制脉冲信息量的2倍和3倍。 一副充分洗乱了的牌(含52张牌),试问 (1) 任一特定排列所给出的信息量是多少 (2) 若从中抽取13张牌,所给出的点数都不相同能得到多少信息量 解: (1) 52张牌共有52!种排列方式,假设每种排列方式出现是等概率的则所给出的信息量是: ! 521)(= i x p bit x p x I i i 581.225!52log )(log )(==-= (2) 52张牌共有4种花色、13种点数,抽取13张点数不同的牌的概率如下: (a)p(x i )=52/52 * 48/51 * 44/50 * 40/49 * 36/48 * 32/47 * 28/46 * 24/45 * 20/44 * 16/43 * 12/42 * 8/41 * 4/40= (b)总样本:C 1352, 其中13点数不同的数量为4*4*4*…*4=413 。所以,抽取13张点数不同的牌的概率: bit C x p x I C x p i i i 208.134 log )(log )(4)(1352 13 13 52 13 =-=-== 居住某地区的女孩子有25%是大学生,在女大学生中有75%是身高160厘米以上的,而女孩子中身高160厘米以上的占总数的一半。假如我们得知“身高160厘米以上的某女孩是大学生”的消息,问获得多少信息量 解: 设随机变量X 代表女孩子学历 X x 1(是大学生) x 2(不是大学生) P(X) 设随机变量Y 代表女孩子身高 Y y 1(身高>160cm ) y 2(身高<160cm ) P(Y) 已知:在女大学生中有75%是身高160厘米以上的

信源熵值计算实验报告

实验一.信源熵值计算 1.实验目的 进一步熟悉信源熵值的计算 掌握编程语言字符处理程序的设计和调试技术 2.实验要求 已知:信源符号为英文字母(不区分大小写)和空格。 输入:一篇英文的信源文档。 输出:给出该信源文档的中各个字母与空格的概率分布,以及该信源的熵。 3.程序流程 第一步:打开一个名为“guojia ”的TXT 文档,读入一篇英文文章存入一个数组temp ,为了程序准确性将所读内容转存到另一个数组S ,计算该数组中每个字母与空格的出现次数(遇到小写字母都将其转化为大写字母进行计数),每出现一次该字符的计数器+1; 第二步:计算信源总大小计算出每个字母和空格出现的概率; 最后,通过统计数据和信息熵公式计算出所求信源熵值(本程序中单位为奈特nat )。 程序流程图: ↓ 4.程序如下:

#include"stdio.h" #include #include #define N 1000 int main(void) { char s[N]; int i,n=0; float num[27]={0}; double result=0,p[27]={0}; FILE *f; char *temp=new char[485]; f=fopen("guojia.txt","r"); while (!feof(f)) { fread(temp,1, 486, f);} fclose(f); s[0]=*temp; for(i=0;i='a'&&s[i]<='z') num[s[i]-97]++; else if(s[i]>='A'&&s[i]<='Z') num[s[i]-65]++; } printf("文档中各个字母出现的频率:\n"); for(i=0;i<26;i++) { p[i]=num[i]/strlen(s); printf("%3c:%f\t",i+65,p[i]); n++; if(n==3) { printf("\n");

相关主题