实验一 离散信源及其信息测度
- 格式:doc
- 大小:49.00 KB
- 文档页数:6
信息论与编码实验一离散信源信息量的计算【实用版】目录一、信息论与编码实验一概述二、离散信源的定义与分类三、离散信源信息量的计算方法四、实验过程及结果分析五、总结正文一、信息论与编码实验一概述信息论与编码实验一是一门关于信息论的基本概念和方法的实验课程。
信息论是研究信息传输、存储、处理和控制的科学,其目的是为了提高通信系统的效率和可靠性。
实验一的主要目的是让学生了解离散信源的定义、性质和计算方法,并掌握如何使用 Matlab 软件进行离散信源信息量的计算。
二、离散信源的定义与分类离散信源是指其输出信号为离散信号的信源,常见的离散信源有伯努利信源、马尔可夫信源等。
根据信源的性质和特点,离散信源可以分为离散无记忆信源和离散有记忆信源。
离散无记忆信源是指信源的输出信号只与当前输入信号有关,而与过去的输入信号无关;离散有记忆信源是指信源的输出信号与过去的输入信号有关。
三、离散信源信息量的计算方法离散信源的信息量是指信源输出的符号所包含的信息量,通常用比特(bit)来表示。
离散信源的信息量的计算方法主要有两种:一种是基于概率的计算方法,另一种是基于熵的计算方法。
基于概率的计算方法是通过计算信源输出符号的概率来计算信息量;基于熵的计算方法是通过计算信源的熵来计算信息量。
熵是信息论中用于度量信息量的一个重要概念,它表示信息的不确定性。
四、实验过程及结果分析在实验过程中,学生需要首先了解离散信源的定义和性质,然后通过Matlab 软件计算离散信源的熵,并根据熵的计算结果分析信源的信息量。
在实验中,学生需要编写 Matlab 程序,计算离散信源的熵,并绘制熵的图像。
通过实验,学生可以加深对离散信源的理解和掌握离散信源信息量的计算方法。
五、总结信息论与编码实验一是一门关于信息论的基本概念和方法的实验课程。
通过实验,学生可以了解离散信源的定义和性质,掌握离散信源信息量的计算方法,并熟练使用 Matlab 软件进行离散信源信息量的计算。
预备知识一、矩阵处理1)在MATLAB中矩阵的创建应遵循以下基本常规:矩阵元素应用方括号([])括住;每行内的元素间用逗号(,)或空格隔开;行与行之间用分号(;)或回车键隔开;元素可以是数值或表达式。
2)矩阵赋值若A=[1 2 3; 4 5 6; 7 8 9;10 11 12]若A=[1 2 3; 4 5 6; 7 8 9;10 11 12],选出前3行构成矩阵B,B=A(1:3,:)选出前2列构成矩阵C,C=A(:,1:2)3)矩阵删除在MATLAB中可以对数组中的单个元素、子矩阵和所有元素进行删除操作,删除就是将其赋值为空矩阵(用[]表示)。
若将A的2,3行去除,则A([2,3],:)=[]4)矩阵变换A' %矩阵A的转置A(:) %矩阵A按列展开形成一维数组5)矩阵运算点运算两个矩阵之间的点运算是按照数组运算规则计算,矩阵的对应元素直接运算。
要求参加运算的矩阵大小必须相同。
有“.*”、“./”和“.\”三种运算符。
乘法运算两个矩阵的维数相容时(A的列数等于B的行数),可以进行A乘B的乘法运算。
二、M文件if语句最简单的选择结构语句,其基本格式为:if 表达式语句组end说明:表达式多为关系或逻辑表达式。
如果表达式为真(非零),就执行if和end之间的语句组,然后再执行end之后的语句;如果表达式为假(零),就直接执行end之后的语句。
for语句for语句为计数循环语句,在许多情况下,循环条件是有规律变化的,通常把循环条件初值、终值和变化步长放在循环语句的开头,这种形式就是for语句的循环结构。
for循环的一般形式是:for 循环变量名=表达式1:表达式2:表达式3语句体end说明:其中表达式1的值是循环变量的初值,表达式2的值是循环步长,表达式3的值是循环变量的终值。
初值、步长和终值可以取整数、小数、正数和负数,步长可以缺省,缺省值为1。
continue语句continue语句用于控制for循环或while循环跳过某些执行语句,当出现continue 语句时,则跳过循环体中所有剩余的语句,继续下一次循环,即结束本次循环。
实用文档信息理论与编码实验指导书电子与电气工程学院罗晓琴编实验要求1、实验前认真阅读实验指导书的内容,并完成预习任务。
2、复习Matlab的相关知识,完成仿真。
3、要熟悉本次实验的任务。
4、实验过程中要认真记录实验结果,仿真结果需经指导教师审阅。
5、实验后每位同学要独立完成实验报告的内容。
目录实验一离散信源的自信息量和熵 (3)实验二最大离散熵定理 (6)实验三费诺编码 (9)实验四霍夫曼编码 (13)实验五香农编码 (16)实验一:计算离散信源的自信息量和熵一、实验目的1、熟悉离散信源的特点。
2、学习Matlab 仿真离散信源的方法。
3、学习离散信源自信息量和信源熵的计算方法。
4、熟悉 Matlab 编程。
二、实验设备 1、计算机2、软件:Matlab 三、实验原理本实验主要完成信源概率分布的自信息量以及信源熵的计算。
计算公式如下:一个字符它所携带的信息量是和该字符出现的概率有关,概率可以表征自信息量的大小自信息的计算公式为:21()log aI a p = 自信息量有两个含义:第一、当事件发生前,表示该事件发生的不确定性; 第二、当事件发生后,标是该事件所提供的信息量. 自信息量的单位取决于对数所取的底,若以2为底,单位为比特,以e 为底,单位为奈特,以10为底,单位为哈特。
在通信系统中,通常取比特为单位,底数2略去不写。
由于自信息I(a)是一个随机变量,不能用来表征整个信源的不确定度。
所以我们用平均自信息量来表征整个信源的不确定度。
平均自信息量就是信源输出所有消息的自信息的数学期望,又称为信息熵、信源熵,简称熵。
熵(平均自信息)的计算公式为:22111()log log qqi i i i i iH x p p p p ====-∑∑信息熵H (x )是对信源的平均不确定性的描述。
它从平均意义上来表征信源的总体信息测度。
对于某特定的信源,其信息熵是一个确定的数值。
信息熵具有如下三种物理意义。
实验一 离散信源及其信息测度一、[实验目的]离散无记忆信源是一种最简单且最重要的信源,可以用完备的离散型概率空间来描述。
本实验通过计算给定的信源的熵,加深对信源及其扩展信源的熵的概念的理解。
二、[实验环境]windows XP,MATLAB三、[实验原理]信源输出的各消息的自信息量的数学期望为信源的信息熵,表达式如下 1()[()]()log ()qi i i H X E I xi p x p x ===-∑信源熵是信源的统计平均不确定性的描述,是概率函数()p x 的函数。
四、[实验内容]1、有条100字符英文信息,假定其中每字符从26个英文字母和1个空格中等概选取,那么每条信息提供的信息量为多少?若将27个字符分为三类,9个出现概率占2/7,13个出现概率占4/7,5个出现占1/7,而每类中符号出现等概,求该字符信源的信息熵。
2、二进制通信系统使用0、1,由于存在失真,传输会产生误码,用符号表示下列事件:u0:一个0发出;u1:一个1发出;v0:一个0收到;v1:一个1收到;给定下列概率:p(u0)=1/2,p(v0|u0)=3/4,p(v0|u1)=1/2。
求:(a)已知发出一个0,求收到符号后得到的信息量;(b)已知发出的符号,求收到符号后得到的信息量;3、给定离散无记忆信源X ,其概率空间为010.70.3X P ⎡⎤⎡⎤=⎢⎥⎢⎥⎣⎦⎣⎦求该信源的熵和其二次、三次扩展信源的熵。
(编写一M 函数文件: function [H_X1,H_X2,H_X3]=t03(X1,P1)%t03 求信源和其二次、三次扩展信源的熵%输入为X1,P1,分别为信源符号和概率阵%输出为原离散信源的熵H_X1和二次、三次扩展信源的熵H_X2、H_X34、某离散二维平稳信源的概率空间:设发出的符号只与前一个符号有关。
求:(a)认为信源符号之间无依赖性时,信源X 的信息熵H(X);(b)认为有依赖性时的条件熵H (X2|X1);(c)联合熵H(X1X2);(d)根据以上三者之间的关系,验证结果的正确性。
5、有两个二元随机变量X 和Y ,它们的联合概率分布函数如下表:同时定义另一随机变量Z=X*Y ,试求:a 、熵H(X),H(Z),H(X,Z)和H(X,Y,Z);b 、条件熵H(X|Y),H(X|Z),H(Y|X,Z);c 、互信息I(X;Y),I(X;Z),I(X;Y|Z);五、[实验过程]每个实验项目包括:1)设计思路2)实验中出现的问题及解决方法;1)设计思路1、每字符从26 个英文字母和1 个空格中等概选取,一共100 个字符,那么可以 组成27^100 条消息,每条消息出现的概率是1/(27^100),由自信息量公式可 得每条消息的自信息量。
2、求出各种条件概率,将其代入信息量公式计算信息量。
3、离散无记忆信源X 熵,可将其概率代入信息熵的计算公式得到,二次,三次 扩展信源,可先求出其概率空间。
4.由离散二维平稳信源的概率空间,及信息熵,条件熵,联合熵的公式,可得到 我们要的结果。
5、计算各种情况的概率,X 的概率,Y 的概率,Z=XY 联合概率等,然后代入公 式求解。
6、程序代码:clear all,clc;%test1.1%有条100 字符英文信息,假定其中每字符从26 个英文字母和1 个空格中等概选取 %求每条信息提供的信息量X 1X 2 P 00 01 02 10 11 12 20 21 22 1/4 1/18 0 1/18 1/3 1/18 0 1/18 7/36=H1=log2(27^100)%test1.2%事件:u0:一个0 发出;u1:一个1 发出; v0:一个0 收到;v1:一个1 收到;%给定下列概率:p(u0)=1/2,p(v0|u0)=3/4,p(v0|u1)=1/2p_u0=1/2;p_v0_u0=3/4;p_v0_u1=1/2;p_v1_u0=1-p_v0_u0;%(a)已知发出一个0,求收到符号后得到的信息量;H_V_u0=p_v0_u0*log2(p_v0_u0)-p_v1_u0*log2(p_v1_u0);%(b)已知发出的符号,求收到符号后得到的信息量p_u1=1-p_u0;p_v1_u1=1-p_v0_u1;p_u0v0=p_v0_u0*p_u0;p_u0v1=p_v1_u0*p_u0;p_u1v0=p_v0_u1*p_u1;p_u1v1=p_v1_u1*p_u1;H_V_U=-p_u0v0*log2(p_v0_u0)-p_u0v1*log2(p_v1_u0)-p_u1v0*log2(p_v0_u1)-p_u1v1*l og2(p_v1_u1)%test1.3c=[0.3,0.7];[y1,y2,y3]=t05(c)%信源的熵和其二次、三次扩展信源的熵%test1.4P_X1X2=[1/4 1/18 0;1/18 1/3 1/18;0 1/18 7/36];%联合分布%(a)认为信源符号之间无依赖性时,信源X 的信息熵H(X);P_X=sum(P_X1X2);H_X=sum(-P_X.*log2(P_X));fprintf('X 的信源熵: H_X=%6.3f\n',H_X);%(b)认为有依赖性时的条件熵H(X2|X1);P_X1_X2=[P_X1X2(:,1)/P_X(1),P_X1X2(:,2)/P_X(2),P_X1X2(:,3)/P_X(3)];%条件矩阵P_X1_X2(find(P_X1_X2==0))=1;%将0 换为1H_X1_X2=sum(-P_X1X2.*log2(P_X1_X2));fprintf('X 的条件熵: \n H_X1_X2=%6.3f\n',H_X1_X2);%(c)联合熵H(X1X2)P_X1X2(find(P_X1X2==0))=1;%将0 换为1H_X1X2=sum(-P_X1X2.*log2(P_X1X2));fprintf('X 的联合熵: \n H_X1X2=%6.3f\n',H_X1X2);%test1.5%有两个二元随机变量X 和Y,同时定义另一随机变量Z=X*Y,试求:% a、熵H(X),H(Z),H(X,Z)和H(X,Y,Z);% b、条件熵H(X|Y),H(Y|X,Z);% c、互信息I(X;Y),I(X;Y|Z);功能函数t03:function [H_X1,H_X2,H_X3]=t03(X1,P1) %t03%输入为X1,P1,分别为信源符号和概率阵%输出为原离散信源的熵和扩展信源的熵X2=X_grow(2);p0=0.7;p1=1-p0;H_X1=sum(-P1.*log2(P1));l=length(X1);P=zeros(1:l^2);for i=1:l^2l1=length(find(X2(i,:)));P2(i)=p0^(l-l1)*p1^l1;endH_X2=sum(-P2.*log2(P2));%------------------------------------ ---------------function s=X_grow(n)s=zeros(2^n,n);for i=2:2^nj=n;%for j=6:-1:1s(i,:)=s(i-1,:);s(i,j)=s(i-1,j)+1;for j=n:-1:1if (s(i,j)==2)s(i,j)=0;s(i,j-1)=s(i,j-1)+1;endendEnd功能函数t05:function [H_X1,H_X2,H_X3]=t05(P1)H_X1=sum(-P1.*log2(P1));x=zeros(1,length(P1)^2);y=zeros(1,length(P1)^3);a=1;b=1;for i=1:length(P1)for j=1:length(P1)x(a)=P1(i)*P1(j);a=a+1;endendH_X2=sum(-x.*log2(x));for i=1:length(P1)for j=1:length(P1)for k=1:length(P1)y(b)=P1(i)*P1(j)*P1(k);b=b+1;endendendH_X2=sum(-x.*log2(x));H_X3=sum(-y.*log2(y));部分结果:H1 =475.4888H_V_U =0.9056y1 =0.8813y2 =1.7626y3 =2.6439X 的信源熵: H_X= 1.543X 的条件熵:H_X1_X2= 0.209X 的条件熵:H_X1_X2= 0.472X 的条件熵:H_X1_X2= 0.191X 的联合熵:H_X1X2= 0.732X 的联合熵:H_X1X2= 0.992X 的联合熵:H_X1X2= 0.6912)实验中出现的问题及解决方法;实验中遇到的问题有很多,如各种概率空间的计算,弄混,概念不清楚,公式不熟悉,对信息论的定理概念及意义不理解,不能灵活运用。
对于各种概率的计算,需要准确分析,然后逐一进行计算。
信息论的定理概念及意义,翻书查阅,尽可能的熟悉,理解,并加以运用。
六、[实验总结]通过实验,回顾了各种概率的求解方法,该实验主要是计算消息的信息量,信息熵。
在实验过程中,不断地学习查阅课本,巩固了上课的知识,对所学的定理和公式有了更加深刻的认识和理解。