ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:146.12KB ,
资源ID:9418800      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9418800.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《信息论》实验指导书应用MATLAB软件实现.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

《信息论》实验指导书应用MATLAB软件实现.docx

1、信息论实验指导书应用MATLAB软件实现 信息与编码理论上机实验指导书 应用MATLAB软件实现 UPC通信工程系前 言 本实验系列是采用MATLAB软件,主要针对信息论基础课程中的相关内容进行的实验。 MATLAB是一完整的并可扩展的计算机环境,是一种进行科学和工程计算的交互式程序语言。它的基本数据单元是不需要制定维数的矩阵,它可直接用于表达数学的算式和技术概念,解决同样的数值计算问题,使用MATLAB要比使用Basic、Fortran和C语言等提高效率许多倍。MATLAB还是一种有利的教学工具,在大学的线性代数课程以及其它领域的高一级课程的教学中,已称为标准的教学工具。 该指导书共安排了4

2、个实验,现就一些情况作简要说明:各实验要求学生在MATLAB系统上尽量独立完成,弄懂。实验内容紧扣课程教学内容的各主要基本概念,希望同学们在完成每个实验后,对所学的内容起到巩固和加深理解的作用。每个实验做完后必须交一份实验报告。恳请各位实验老师和同学在实验中提出宝贵意见,以利于以后改进提高。实验一 离散信源及其信息测度.3实验二 离散信道及其容量.6实验三 无失真信源编码.8实验四 有噪信道编码.10附录 部分常用MATLAB命令.12实验一 离散信源及其信息测度一、实验目的离散无记忆信源是一种最简单且最重要的信源,可以用完备的离散型概率空间来描述。本实验通过计算给定的信源的熵,加深对信源及其

3、扩展信源的熵的概念的理解。二、实验环境windows XP,MATLAB 三、实验原理信源输出的各消息的自信息量的数学期望为信源的信息熵,表达式如下 信源熵是信源的统计平均不确定性的描述,是概率函数的函数。四、实验内容 1、有条100字符英文信息,假定其中每字符从26个英文字母和1个空格中等概选取,那么每条信息提供的信息量为多少若将27个字符分为三类,9个出现概率占2/7,13个出现概率占4/7,5个出现占1/7,而每类中符号出现等概,求该字符信源的信息熵。 2、二进制通信系统使用0、1,由于存在失真,传输会产生误码,用符号表示下列事件:u0:一个0发出;u1:一个1发出;v0:一个0收到;v

4、1:一个1收到;给定下列概率:p(u0)=1/2,p(v0|u0)=3/4,p(v0|u1)=1/2。求:(a)已知发出一个0,求收到符号后得到的信息量;(b)已知发出的符号,求收到符号后得到的信息量; 3、给定离散无记忆信源X,其概率空间为 求该信源的熵和其二次、三次扩展信源的熵。(编写一M函数文件:function H_X1,H_X2,H_X3=t03(X1,P1)%t03 求信源和其二次、三次扩展信源的熵%输入为X1,P1,分别为信源符号和概率阵%输出为原离散信源的熵H_X1和二次、三次扩展信源的熵H_X2、H_X3X1X2P00 01 02 10 11 12 20 21 221/4 1

5、/18 0 1/18 1/3 1/18 0 1/18 7/36= 4、某离散二维平稳信源的概率空间: 设发出的符号只与前一个符号有关。求:(a)认为信源符号之间无依赖性时,信源X的信息熵H(X);(b)认为有依赖性时的条件熵H(X2X1);(c)联合熵H(X1X2);(d)根据以上三者之间的关系,验证结果的正确性。 5、有两个二元随机变量X和Y,它们的联合概率分布函数如下表: Y X01 01/8 3/81 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)

6、,I(X;Z),I(X;Y|Z); 五、实验过程每个实验项目包括:1)设计思路2)实验中出现的问题及解决方法;1)设计思路1、每字符从26 个英文字母和1 个空格中等概选取,一共100 个字符,那么可以组成27100 条消息,每条消息出现的概率是1/(27100),由自信息量公式可得每条消息的自信息量。2、求出各种条件概率,将其代入信息量公式计算信息量。3、离散无记忆信源X 熵,可将其概率代入信息熵的计算公式得到,二次,三次扩展信源,可先求出其概率空间。4.由离散二维平稳信源的概率空间,及信息熵,条件熵,联合熵的公式,可得到我们要的结果。5、计算各种情况的概率,X 的概率,Y 的概率,Z=XY

7、 联合概率等,然后代入公式求解。6、程序代码: clear all,clc;%有条100 字符英文信息,假定其中每字符从26 个英文字母和1 个空格中等概选取%求每条信息提供的信息量H1=log2(27100)%事件: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_

8、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*log2(p_v1_u1)%c=,;y1,y2,y3=t05(c)%信源的熵和其二次、三次扩展信源的熵%P_X1X2=1/4 1/18 0

9、;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.3fn,H_X);%(b)认为有依赖性时的条件熵H(X2X1);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);fpri

10、ntf(X 的条件熵: n H_X1_X2=%6.3fn,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.3fn,H_X1X2);%有两个二元随机变量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=t

11、03(X1,P1)%t03%输入为X1,P1,分别为信源符号和概率阵%输出为原离散信源的熵和扩展信源的熵X2=X_grow(2);p0=;p1=1-p0;H_X1=sum(-P1.*log2(P1);l=length(X1);P=zeros(1:l2);for i=1:l2l1=length(find(X2(i,:);P2(i)=p0(l-l1)*p1l1;endH_X2=sum(-P2.*log2(P2);%-function s=X_grow(n)s=zeros(2n,n);for i=2:2nj=n;%for j=6:-1:1s(i,:)=s(i-1,:);s(i,j)=s(i-1,j)

12、+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

13、(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 =H_V_U =y1 =y2 =y3 =X 的信源熵: H_X= X 的条件熵:H_X1_X2= X 的条件熵:H_X1_X2= X 的条件熵:H_X1_X2= X 的联合熵:H_X1X2= X 的联合熵:H_X1X2= X 的联合熵:H_X1X2= 2)实验中出现的问题及解决方法;实验中遇到的问题有很多,如各种概率空间的计算,弄混,概念不清楚,公式不熟悉,对信息论的定理概念及

14、意义不理解,不能灵活运用。对于各种概率的计算,需要准确分析,然后逐一进行计算。信息论的定理概念及意义,翻书查阅,尽可能的熟悉,理解,并加以运用。六、实验总结通过实验,回顾了各种概率的求解方法,该实验主要是计算消息的信息量,信息熵。在实验过程中,不断地学习查阅课本,巩固了上课的知识,对所学的定理和公式有了更加深刻的认识和理解。实验二 离散信道及其容量一、实验目的1、理解离散信道容量的内涵;2、掌握求二元对称信道(BSC)互信息量和容量的设计方法;3、掌握二元扩展信道的设计方法并会求其平均互信息量。二、实验环境windows XP,MATLAB 7三、实验原理若某信道输入的是N维序列x,其概率分布

15、为q(x),输出是N维序列y,则平均互信息量记为I(X;Y),该信道的信道容量C定义为。四、实验内容 1、给定BSC信道,信源概率空间为 信道矩阵 求该信道的I(X;Y)和容量,画出I(X;Y)和、C和p的关系曲线。 2 、编写一M脚本文件,实现如下功能: 在任意输入一信道矩阵P后,能够判断是否离散对称信道,若是,求出信道容量C。 3、已知X=(0,1,2);Y=(0,1,2,3),信源概率空间和信道矩阵分别为 0 0 P= 求: 平均互信息量; 4、 对题(1)求其二次扩展信道的平均互信息I(X;Y)。五、实验过程每个实验项目包括:1)设计思路2)实验中出现的问题及解决方法;1)设计思路1、

16、信道容量max (X; Y)C = I,因此要求给定信道的信道容量,只要知道该信道的最大互信息量,即求信道容量就是求信道互信息量的过程。程序代码:clear all,clc;w=;w1=1-w;p=;XP = p1=1-p;save data1 p p1;I_XY=(w*p1+w1*p)*log2(1/(w*p1+w1*p)+(w*p+w1*p1)*log2(1/(w*p+w1*p1)- .(p*log2(1/p)+p1*log2(1/p1);C=1-(p*log2(1/p)+p1*log2(1/p1);fprintf(互信息量:%6.3fn信道容量:%6.3f,I_XY,C);p=eps:1

17、-eps;p1=1-p;C=1-(p.*log2(1./p)+p1.*log2(1./p1);subplot(1,2,1),plot(p,C),xlabel(p),ylabel(C);load data1;w=eps:1-eps;w1=1-w;I_XY=(w.*p1+w1.*p).*log2(1./(w.*p1+w1.*p)+(w.*p+w1.*p1).*log2(1./(w.*p+w1.*p1)- .(p.*log2(1./p)+p1.*log2(1./p1);subplot(1,2,2),plot(w,I_XY)xlabel(w),ylabel(I_XY);实验结果:互信息量:信道容量:I

18、(X;Y)和 、C和p的关系曲线图:0 101pC0 101wIY2、离散对称信道:当离散准对称信道划分的子集只有一个时,信道关于输入和输出对称。离散准对称信道:若一个离散无记忆信道的信道矩阵中,按照信道的输出集Y可以将信道划分成n个子集,每个子矩阵中的每一行都是其他行同一组元素的不同排列。实验代码:clc;clear;P=input(输入信道转移概率矩阵:);r,c=size(P);if sum(P,2)-1=zeros(1,r);error(输入的信道矩阵不合法!);%矩阵行和一定要为1endl=1;Sum=0;for j=2:cfor i=1:r%i是行变量for k=1:rif P(k

19、,j)=P(i,1)Sum=Sum+1;break;endendendendif Sum=r*(c-1)fprintf(是离散输出对称信道!n,j);else fprintf(不是对称信道!);end实验结果:输入信道转移概率矩阵: ; 是离散输出对称信道!输入信道转移概率矩阵: ; 不是对称信道!3、二次扩展信道的互信息量I(X;Y)=H(Y)-H(Y|X).实验代码:clc,clear;p=;P_X1=,;p1=1-p;X2=0,0;0,1;1,0;1,1;%二次扩展输入符号阵Y2=X2;%二次扩展输出符号P_X2=P_X1(1)2,P_X1(1)*P_X1(2),P_X1(2)*P_X1

20、(1),P_X1(2)2;%求二次扩展后信道矩阵NN=zeros(4);for i=1:4for j=1:4l=length(find(xor(X2(i,:),Y2(j,:)=0);%比较得正确传递元素个数N(i,j)=p1l*p(2-l);endend%下面求IP_Y2=P_X2*N;P_XY2=P_X2(1)*N(1,:);P_X2(2)*N(2,:);P_X2(3)*N(3,:);P_X2(4)*N(4,:);%联合分布H_Y2=sum(-P_Y2.*log2(P_Y2);H_Y_X2=sum(sum(-P_XY2.*log2(N);I_XY2=H_Y2-H_Y_X2;fprintf(2

21、次扩展信道的平均互信息为:%5.3f,I_XY2);实验结果:2次扩展信道的平均互信息为:2)实验中出现的问题及解决方法;1、信道容量与互信息量有关,而互信息量又与信源熵相关,所以要求得信道容量就必须知道信道传递概率,然后根据公式一步一步计算。2、对于判断离散对称信道,不需要弄清楚的是它的概念,根据定义来判断。3、对于扩展信道,分有记忆的和无记忆的,在不确定的情况下计算扩展信源的熵,我们要根据定义来计算。六、实验总结通过本次实验,我对于信道的分类,各种信道的特点有了一定的认识和了解。实验中涉及的主要是二元对称信道,而它的最佳分布是输入和输出均对称。实验中最主要的部分还是关于信道容量的计算,此次

22、实验,让我们验证了课本上的定理,也让我们更好地理解和掌握了课堂上所学的知识。_实验三 无失真信源编码一、实验目的1、理解香农第一定理指出平均码长与信源之间的关系;2、加深理解香农编码具有的重要的理论意义。3、掌握霍夫曼编码的原理;4、掌握霍夫曼编码的方法和步骤;二、实验环境windows XP,MATLAB 7三、实验原理香农第一定理:设离散无记忆信源为 熵为H(S),其N次扩展信源为 熵为H(SN)。码符号集X=(x1,x2,xr)。先对信源进行编码,总可以找到一种编码方法,构成惟一可以码,使S中每个信源符号所需的平均码长满足: 当N时 是平均码长 是对应的码字长度四、实验内容 1、根据实验

23、原理,设计shannon编码方法,在给定 条件下,实现香农编码并算出编码效率。2、在给定离散无记忆信源SPs1 s2 s3 s41/8 5/16 7/16 1/8= 条件下,实现二进制霍夫曼编码,求最后得到的码字并算出编码效率。五、实验过程每个实验项目包括:1)设计思路2)实验中出现的问题及解决方法;某一离散信源概率分布:p=1/2,1/4,1/8,1/16,1/16 求信源的熵,并对该信源进行二元哈夫曼编码,得到码字和平均码长以及编码效率。Matlab程序:function h,l=huffman(p)p=1/2 1/4 1/8 1/16 1/16;if length(find(p10e-1

24、0 error(Input is not a ,the sun of the components is not equal to 1)endn=length(p); q=p; m=zeros(n-1,n); for i=1:n-1 q,l=sort(q); m(i,:)=l(1:n-i+1),zeros(1,i-1); q=q(1)+q(2),q(3:n),1; end for i=1:n-1 c(i,:)=blanks(n*n); end c(n-1,n)=0; c(n-1,2*n)=1; for i=2:n-1 c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:

25、)=1). -(n-2):n*(find(m(n-i+1,:)=1); c(n-i,n)=0; c(n-i,n+1:2*n-1)=c(n-i,1:n-1); c(n-i,2*n)=1; for j=1:i-1 c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,. n*(find(m(n-i+1,:)=j+1)-1)+1:n*find(m(n-i+1,:)=j+1); end; end for i=1:n h(i,1:n)=c(1,n*(find(m(1,:)=i)-1)+1:find(m(1,:)=i)*n); l1(i)=length(find(abs(h(i,:)=32);

26、 end l=sum(p.*l1)运行结果为:l = ans = 1 01 001 0000 0001六、实验总结 实验四 有噪信道编码一、实验目的1、理解极大似然译码规则;2、掌握简单重复编码方法;3、掌握()线性码及其编码方法;二、实验环境windows XP,MATLAB 7三、实验原理在确定译码规则F(yj)=xi,i=1,2,3,s之后,若信道输出端接收到的符号为yj,则一定译成xi。如果发送端发送的就是xi,这就是正确译码;反之,若发送端发送的是xk,就认为是错误译码。经过译码的平均错误概率为 若选择译码函数F(yj)=x*,使之满足条件 对则称为极大似然译码规则。四、实验内容 P

27、=1、有一BSC信道矩阵: 采用简单重复编码,设计函数在编码次数分别为n=3、5、7、9,输入消息符号个数M=2条件下,求译码平均错误概率PE和信息传输速率R的值。2、对上题的信道矩阵,若采用()线性码,M=4,5,求此时的信息传输速率R和误码率PE。五、实验过程)设有一离散信道,其信道传递矩阵为:,并设试分别按最小错误概率准则与最大似然译码准则确定译码规则,并计算相应的平均错误概率。 1、按最小错误概率准则,P(ab)=1/4 1/6 1/12,1/24 1/8 1/12 ,1/12 1/24 1/8Matlab程序: p=(1/4+1/24)+(1/6+1/8)+(1/12+1/12)运行结果:p = ,即相应平均错误概率为:按最大似然译码准则译码规则:Matlab程序:p2=1/2*(1/3+1/6)+1/4*(1/6+1/3)+1/4*(1/3+1/6)程序运行结果:p2 =即相应平均错误概率为:附录:部分常用MATLAB命令管理命令和函数help在线帮助文件doc装入超文本说明whatM、MAT、MEX文件的目录列表type列出M文件lookfor通过help条目搜索关键字which定位函数和文件

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2