《信息论》实验指导书—应用MATLAB软件实现
《信息与编码理论》上机实验指导书 ——————— 应用 MATLAB 软件实现 UPC 通信工程系 1 前 言 本实验系列是采用 MATLAB 软件,主要针对《信息论基础》课程中的相关内 容进行的实验。 MATLAB 是一完整的并可扩展的计算机环境,是一种进行科学和工程计算的 交互式程序语言。 它的基本数据单元是不需要制定维数的矩阵, 它可直接用于表 达数学的算式和技术概念,解决同样的数值计算问题,使用 MATLAB 要比使用 Basic、 Fortran和 C 语言等提高效率许多倍。 MATLAB还是一种有利的教学工具, 在大学的线性代数课程以及其它领域的高一级课程的教学中,已称为标准的教学 工具。 该指导书共安排了4 个实验,现就一些情况作简要说明: 各实验要求学生在MATLAB 系统上尽量独立完成,弄懂。实验内容紧扣课程 教学内容的各主要基本概念, 希望同学们在完成每个实验后, 对所学的内容起到 巩固和加深理解的作用。 每个实验做完后必须交一份实验报告。 恳请各位实验老师和同学在实验中提出宝贵意见,以利于以后改进提高。 2 目 录 实验一 离散信源及其信息测度.3 实验二 离散信道及其容量.6 实验三 无失真信源编码.8 实验四 有噪信道编码10 附录 部分常用 MATLAB 命令.12 3 实验一 离散信源及其信息测度 一、[实验目的] 离散无记忆信源是一种最简单且最重要的信源, 可以用完备的离散型概率空 间来描述。 本实验通过计算给定的信源的熵, 加深对信源及其扩展信源的熵的概 念的理解。 二、[实验环境] windows XP,MATLAB 三、[实验原理] 信源输出的各消息的自信息量的数学期望为信源的信息熵,表达式如下 1 ()[ ()]( )log( ) q ii i H XE I xip xp 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,其概率空间为 01 0.70.3 X P 求该信源的熵和其二次、三次扩展信源的熵。 (编写一M 函数文件: function [H_X1,H_X2,H_X3]=t03(X1,P1) %t03 求信源和其二次、三次扩展信源的熵 %输入为X1,P1,分别为信源符号和概率阵 %输出为原离散信源的熵H_X1和二次、三次扩展信源的熵 H_X2、H_X3 4 4、某离散二维平稳信源的概率空间: 设发出的符号只与前一个符号有关。 求: (a)认为信源符号之间无依赖性时, 信源 X 的信息熵 H(X);(b)认为有依赖性时的条件熵 H(X2|X1);(c)联合熵 H(X1X2);(d)根据以上三者之间的关系,验证结果的正确性。 5、有两个二元随机变量X 和 Y,它们的联合概率分布函数如下表: Y X 0 1 0 1/8 3/8 1 3/8 1/8 同时定义另一随机变量 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 熵,可将其概率代入信息熵的计算公式得到,二次,三次 X1X2 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 = 5 扩展信源,可先求出其概率空间。 4.由离散二维平稳信源的概率空间,及信息熵,条件熵,联合熵的公式,可得到 我们要的结果。 5、计算各种情况的概率,X 的概率,Y 的概率,Z=XY 联合概率等,然后代入 公 式求解。 6、程序代码: clear all,clc; %test1.1 %有条100 字符英文信息,假定其中每字符从26 个英文字母和1 个空格中等概选取 %求每条信息提供的信息量 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/2 p_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)已知发出的符号,求收到符号后得到的信息量 6 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_u1 v1*l og2(p_v1_u1) %test1.3 c=[0.3,0.7]; [y1,y2,y3]=t05(c) %信源的熵和其二次、三次扩展信源的熵 %test1.4 P_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_