2023年信息论实验报告_第1页
2023年信息论实验报告_第2页
2023年信息论实验报告_第3页
2023年信息论实验报告_第4页
2023年信息论实验报告_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

淮阴师范学院(信息论与编码实验报告) ﻩﻩ ﻩ姓名:董宝坤ﻩ ﻩ ﻩ学号:ﻩﻩ ﻩ ﻩ专业:电子信息工程ﻩ ﻩﻩﻩﻩ班级:1305 ﻩ ﻩ指导老师:宋毅实验一、绘制二进制熵函数曲线一、实验目的1.掌握二进制符号熵的计算;2.掌握MATLAB的应用;3.掌握Matlab绘图函数;4.掌握、理解熵函数表达式及其性质二、实验条件计算机一台,MATLAB仿真软件。三、实验内容(1)MATLAB的应用(请参阅相关书籍)(2)打开MATLAB,在命令窗口中输入eidt,弹出编辑窗口,如图1:图1MATLAB的编辑窗口(3)输入源程序:clear;x=0.001:0.001:0.999y=-x.*log2(x)-(1-x).*log2(1-x);plot(x,y);gridon(4)保存文献为entropy.m;(5)单击Debug菜单下的Run,或直接按F5执行;(6)执行后的结果图2:四、实验结果及分析x=0.001:0.001:0.999y=-x.*log2(x)-(1-x).*log2(1-x);plot(x,y);title('ìغ¯ÊýH(p)');Xlabel('p');ylabel('H(p)');gridon分析:=1\*GB2⑴.意义:信源熵为信源的平均不拟定度性,而概率的大小决定了信息量的大小。由图上可知概率为1时,信息量最小,不拟定性最低;概率等于时熵最大。=2\*GB2⑵.可以看出,即p=1或者p=0,则该信源不提供任何信息;反之当二元信源符号0和1以等概率发生的时候,信源熵达成极大值,等于1bit信息量。=3\*GB2⑶.步长为0.001x=0.001:0.01:0.999y=-x.*log2(x)-(1-x).*log2(1-x);plot(x,y);title('ìغ¯ÊýH(p)');Xlabel('p');ylabel('H(p)');gridon分析:(1)熵函数是一个严格上凸函数(2)熵的极大值,二进符号的熵在p(x1)=p(x2)=0.5取得极大值(3)调调整p(x1)的取值步长,重画该曲线。当步长改变为0.01,步长变大的时候,可以看出是一段一段的连接的,当步长较大的时候,非常明显。假如开始点是0的时候,则从步长的长度开始计算。实验二、一般信道容量计算一、实验目的1.熟悉工作环境及Matlab软件2.理解平均互信息量表达式及其性质3.理解信道容量的含义二、实验条件计算机一台,MATLAB仿真软件。三、实验原理1.平均互信息量(I(X;Y))是记录平均意义下的先验不拟定性与后验不拟定性之差,是互信息量的记录平均:2.离散信道的数学模型离散信道的数学模型一般如图1所示。图中输入和输出信号用随机矢量表达,输入信号为X=(X1,X2,…,XN),输出信号为Y=(Y1,Y2,…,YN);每个随机变量Xi和Yi又分别取值于符号集A={a1,a2,…,ar}和B={b1,b2,…,bs},其中r不一定等于s;条件概率P(y|x)描述了输入信号和输出信号之间的记录依赖关系,反映了信道的记录特性。YYX信道图1离散信道模型二元对称信道这是很重要的一种特殊信道(简记为BSC),。它的输入符号X取值于{0,1},输出符号Y取值于{0,1},r=s=2,a1=b1=0,a2=b2=1,传递概率为,,其中,表达信道输入符号为0而接受到的符号为1的概率,表达信道输入符号为1而接受到的符号为0的概率,它们都是单个符号传输发生错误的概率,通常用p表达。而和是无错误传输的概率,通常用表达。X1-pY二元对称信道用矩阵来表达,即得二元对称信道的传递矩阵为依此类推,一般离散单符号信道的传递概率可用以下形式的矩阵来表达,即b1b2…bs并满足式()。为了表述简便,记,信道的传递矩阵表达为并且满足平均互信息平均互信息表达接受到输出符号后平均每个符号获得的关于输入变量X的信息量,也表达输入与输出两个随机变量之间的记录约束限度。其中X是输入随机变量,Y是输出随机变量。平均互信息是互信息(即接受到输出符号y后输入符号x获得的信息量)的记录平均值,所以永远不会取负值。最差情况是平均互信息为零,也就是在信道输出端接受到输出符号Y后不获得任何关于输入符号X的信息量。对于每一个拟定信道,都有一个信源分布,使得信息传输率达成最大值,我们把这个最大值称为该信道的信道容量。相应的输入概率分布称为最佳输入分布。四、实验内容1.绘制平均互信息量图形对于二元对称信道的输入概率空间为平均互信息:根据:所以:请绘制当从0到1之间变化时的平均互信息熵曲线2.信道容量图形一个信道是一个二进制输入,二进制输出的信道,输入和输出字母表,且该信道特性由发送1码和0码的两个错误转移概率和来表征。绘出当时的平均互信息和间的函数关系。拟定每种情况下的信道容量。五、实验结果及分析clear;w=0.5;p=0.001:0.001:0.999;y=-(w.*(1-p)+(1-w).*p).*log(w.*(1-p)+(1-w).*p)-(w.*p+(1-w).*(1-p)).*log(w.*p+(1-w).*(1-p))+p.*log(p)+(1-p).*log(1-p);plot(p,y);title('二进制信道的信道容量');Xlabel('p');ylabel('I(W;Y)');gridon当BSC信道,C=1-H(w),当w=0时,错误概率为0,无差错,信道容量达成最大,每符号1bit,输入端的信息所有传输至输出端;当w=1/2时,错误概率与对的概率相同,从输出端得不到关于输入端的任何信息,互信息为0,在信道接受端平均每个符号才获得最小的信息量,即信道容量为0;clear;p=0.1;w=0.001:0.001:0.999;y=-(w.*(1-p)+(1-w).*p).*log(w.*(1-p)+(1-w).*p)-(w.*p+(1-w).*(1-p)).*log(w.*p+(1-w).*(1-p))+p.*log(p)+(1-p).*log(1-p);plot(w,y);title('二进制信道的信道容量');Xlabel('w');ylabel('I(W;Y)');gridonclear;[w,p]=meshgrid(0.00001:0.001:1);y=-(w.*(1-p)+(1-w).*p).*log(w.*(1-p)+(1-w).*p)-(w.*p+(1-w).*(1-p)).*log(w.*p+(1-w).*(1-p))+p.*log(p)+(1-p).*log(1-p);meshz(w,p,y);title('二进制信道的信道容量');Xlabel('w');ylabel('p');zlabel('I(W;Y)');gridon当固定信道时,只有当输入变量是等概率分布,即p(x=0)=p(x=1)=在信道接受端平均每个符号才获得最大的信息量,即等于1.w=0.9998p=0:0.1:1IXY=-(w.*(1-p)+(1-w).*p).*log2(w.*(1-p)+(1-w).*p)-(w.*p+(1-w).*(1-p)).*log2(w.*p+(1-w).*(1-p))+(p.*log2(p)+(1-p).*log2(1-p))stem(p,IXY);gridontitle('ÐŵÀÈÝÁ¿')xlable('p')ylable('??????')在这个三维图上面可以看出是前面二个图形的综合。是w,p与I(X;Y)之间的关系,当p一定期,是w与I(X;Y)之间的关系,即I(w;y)是关于输入信源的概率分布的上凸函数。当w一定期,是p与与I(X;Y)之间的关系,是关于信道传递概率p的下凸函数。你能从实验图形中了解它的一些什么性质?实验总结:当w固定期,即信源固定后,I(p;y)是关于信道传递概率p的下凸函数。信道输出端获得关于信源的信息量是信道传递概率的下凸函数。也就是说,对于每一种信源都存在一种最差的信道,此信道的干扰最大,即输出端所获得的信息量最小。当p固定期,即固定某信道时,选择不同的信源与信道连接,在信道输出端收到每个符号后所获得的信息量是不同的。并且对于每一个固定信道,一定存在一种信源,使输出端获得的信息量最大。I(w;y)是关于输入信源的概率分布的上凸函数,即对于每一个拟定信道,都有一个信源分布,使得信息传输率达成最大值,我们把这个最大值称为该信道的信道容量。相应的输入概率分布称为最佳输入分布。实验=3\*CHINESENUM3三、绘制离散信源信息率失真函数曲线实验一、实验目的:1.了解率失真函数性质、意义。2.掌握简朴的率失真函数计算方法;3.掌握使用Matlab实现一般率失真函数的计算方法;二、实验条件计算机一台,MATLAB仿真软件。三、实验原理二元对称信源的R(D)函数设二元信源U={0,1},其分布概率而接受变量v={0,1},设汉明失真矩阵为:因而最小失真度。并能找到满足该最小失真的实验信道,且是一个无噪无损信道,其信道矩阵为:要达成最大允许失真,唯一拟定此时,可计算得信息传输率一般情况下,当时可以计算得:二元对称信源信息率失真函数为可以计算得:二元对称信源信息率失真函数为四、实验内容1.从理论上计算r=s=2。p(u=1)=p,p(u=2)=1-p;d=[0,1;1,0]的率失真函数R(D)。2.对一般性的DMS信源,计算率失真函数R(D)的理论公式进行推导。3.找出比较合适的方程求解方法。4.使用编制Matlab编制程序求解一般的率失真函数R(D)。5.给定r=s=2。p(u=1)=0.4,p=(u=2)=0.6;d=[0,1;1,0],测试程序,即比较程序运营结果与理论计算结果,6.改变参数,画出函数图。五、思考题你能从实验图形中了解它的一些什么性质?六、注意事项1.提前预习实验,认真阅读实验原理。2.认真高效的完毕实验,实验过程中服从实验室管理人员以及实验指导老师的管理。3.实验报告规定有:问题的提出:涉及R(D)的物理意义、用途(可以举出具体的用途)、计算的困难性等。解决问题的原理方法:涉及所有的公式推导的细节。解决问题的具体方法:涉及程序框图及Matlab源程序。实验结果:运用你的程序给出不同参数得到的实验结果。结果分析:涉及R(D)的性质、程序收敛情况、程序改善的方向等。4.每个同学必须独立完毕实验(不能抄袭,否则两人均为零分),实验成绩是该门课程成绩的重要依据。p1=0.4;d1=0:0.001:0.4y1=-p1.*log2(p1)-(1-p1).*log2(1-p1)+d1.*log2(d1)+(1-d1).*log2(1-d1);p2=0.3;d2=0:0.001:0.3gridony2=-p2.*log2(p2)-(1-p2).*log2(1-p2)+d2.*log2(d2)+(1-d2).*log2(1-d2);plot(d1,y1,'k-');hold;plot(d2,y2);gridontitle('ÀëÉ¢ÐÅÔ´ÐÅÏ¢ÂÊʧÕ溯Êý')xlabel('D');ylabel('R(D)');R(D)在定义域内是失真度D的U型下凸函数。R(D)在定义域内是关于D的连续函数。R(D)的单调递减性,允许的失真度越大,所规定的信息率越小。当D相同时,信源越趋于等概率分布,R(D)就越大。由最大离散熵定理,信源越趋于等概率分布,即不拟定性越大,要去除这不拟定性所需的信息传输率就越大,而R(D)正是去除信源不拟定性所必须的信息传输率。实验总结:物理意义:对于给定的信源,在满足保真度准则下,必须传送的最小信息量,它既反映了用户容忍限度,也反映了信息率允许压缩的最小值,R(D)越大,越难压缩,反之可压缩率就大;对于固定的信源分布,平均互信息量I(X;Y)是信道转移概率

p(bj/ai)

的下凸函数。也就是说:存在一个信道使某一特定信源通过此信道传输时,信道的平均互信息达成极小值.用途:量化,频带压缩,数据转换,数据压缩等等开始框图:开始输入二源对称信道概率输入二源对称信道概率信源信源熵汉明失真信源汉明失真信源H(D)输出率失真函数输出率失真函数R(D)结束结束计算过程:性质:R(D)是非负的实数,定义域为0到Dmax,其值为0到H(X);当D>Dmax时,R(D)=0。R(D)是关于D的下凸函数,因而也是关于D的连续函数。R(D)是关于D的严格递减函数。对于同一D,信源分布越均匀,R(D)就越大,信源压缩的也许性越小,反之,若信源分布越不均匀,即信源剩余度越大R(D)就越小,压缩的也许性越大。 实验四、香农编码一、实验目的(1)了解香农编码的基本原理及其特点;(2)熟悉掌握香农编码的方法和环节;(3)掌握Matlab编写香农编码的程序。二、实验条件计算机一台,MATLAB仿真软件。三、实验原理哈夫曼编码的环节如下:⑴将信源消息符号按其出现的概率大小依次排列p(x1)≥p(x2)≥…≥p(xn)⑵取两个概率最小的字母分别配以0和1两码元,并将这两个概率相加作为一个新字母的概率,与未分派的二进符号的字母重新排队。⑶对重排后的两个概率最小符号反复环节⑵的过程。⑷不断继续上述过程,直到最后两个符号配以0和1为止。⑸从最后一级开始,向前返回得到各个信源符号所相应的码元序列,即相应的码字。四、实验内容(1)根据香农编码的方法和环节,用香农编码编写程序(2)用编写的源程序验证书中例题的对的性。五、实验报告规定总结香农编码的基本原理及其特点?functiony=b2d10(x)%十进制小数转化为2进制fori=1:8temp=x.*2;if(temp<1)y(i)=0;x=temp;else y(i)=1;x=temp-1;endendclc;clear;a=[0.20,0.19,0.18,0.17,0.15,0.10,0.01];k=length(a);y=0;%数组长度(即行数或列数中的较大值)fori=1:k-1%替换最大约率forn=i+1:kif(a(i)<a(n))t=a(i);a(i)=a(n);a(n)=t;endendends=zeros(k,1);b=zeros(k,1);p=zeros(k,1);%表达k行一列全是0的数组form=1:k%步长为1s(m)=y;y=y+a(m);b(m)=ceil(-log2(a(m)));%ceil表达向离他最近的大整数圆整,求编码位数x=zeros(b(m),1);%b(m)行一列全是0的数组x=s(m);%求和结果,累加概率p=b2d10(x);%调用函数b2d10,函数表达十进制小数转化为二进制forr=1:b(m)%步长为1z(r)=p(r);enddisp('输出结果为:')%disp相称于输出,c语言中的putchardisp('初始概率'),disp(a(m))disp('求和结果'),disp(s(m))disp('编码位数'),disp(b(m))disp('最终编码'),disp(z')end输出结果为:初始概率0.2023求和结果0编码位数3最终编码000输出结果为:初始概率0.1900求和结果0.2023编码位数3最终编码001输出结果为:初始概率0.1800求和结果0.3900编码位数3最终编码011输出结果为:初始概率0.1700求和结果0.5700编码位数3最终编码100输出结果为:初始概率0.1500求和结果0.7400编码位数3最终编码101输出结果为:初始概率0.1000求和结果0.8900编码位数4最终编码1110输出结果为:初始概率0.0100求和结果0.9900编码位数7最终编码1111110实验总结:香农编码的原理:香农第一定理指出了平均码长与信源之间的关系,同时也指出了可以通过编码使平均码长达成极限值,这是一个很重要的极限定理。香农第一定理指出,选择每个码字的长度Ki满足下式

I(xi)≤K﹤I(xi)+1,

i

就可以得到这种码。这种编码方法就是香农编码。香农编码多余度稍大,效率低,实用性不强。但是它是依据编码定理而来,有重要的理论意义。香农编码是码符号概率大的用短码表达,概率小的是用长码表达,程序中对概率排序,最后求得的码字就依次与排序后的符号概率相应。先拟定了码字长度,而编码效率不高。香农码有系统的、惟一的编码方法过程:信源消息符号ai符号概率p(ai)累加概率pi-logp(ai)码字长度Ki码字a10.2002.343000a20.190.22.413001a30.180.392.483011a40.170.572.563100a50.150.742.743101a60.100.893.3441110a70.010.996.6671111110实验五、Huffman编码一、实验目的进一步熟悉Huffman编码过程;掌握Matlab程序的设计和调试技术。二、实验条件计算机一台,MATLAB仿真软件。三、实验原理1、二进制Huffman编码的基本原理及算法(1)把信源符号集中的所有符号按概率从大到小排队。(2)取概率最小的两个符号作为两片叶子合并(缩减)到一个节点。(3)视此节点为新符号,其概率等于被合并(缩减)的两个概率之和,参与概率排队。(4)反复(2)(3)两环节,直至所有符号都被合并(缩减)到根。(5)从根出发,对各分枝标记0和1。从根到叶的途径就给出了各个码字的编码和码长。2、程序设计的原理(1)程序的输入:以一维数组的形式输入要进行huffman编码的信源符号的概率,在运营该程序前,显示文字提醒信息,提醒所要输入的概率矢量;然后对输入的概率矢量进行合法性判断,原则为:假如概率矢量中存在小于0的项,则输入不合法,提醒重新输入;假如概率矢量的求和大于1,则输入也不合法,提醒重新输入。(2)huffman编码具体实现原理:1>在输入的概率矩阵p对的的前提条件下,对p进行排序,并用矩阵L记录p排序之前各元素的顺序,然后将排序后的概率数组p的前两项,即概率最小的两个数加和,得到新的一组概率序列,反复以上过程,最后得到一个记录概率加和过程的矩阵p以及每次排序之前概率顺序的矩阵a。2>新生成一个n-1行n列,并且每个元素具有n个字符的空白矩阵,然后进行huffman编码:将c矩阵的第n-1行的第一和第二个元素分别令为0和1(表达在编码时,根节点之下的概率较小的元素后补0,概率较大的元素后补1,后面的编码都遵守这个原则)然后对n-i-1的第一、二个元素进行编码,一方面在矩阵a中第n-i行找到值为1所在的位置,然后在c矩阵中第n-i行中找到相应位置的编码(该编码即为第n-i-1行第一、二个元素的根节点),则矩阵c的第n-i行的第一、二个元素的n-1的字符为以上求得的编码值,根据之前的规则,第一个元素最后补0,第二个元素最后补1,则完毕该行的第一二个元素的编码,最后将该行的其他元素按照“矩阵c中第n-i行第j+1列的值等于相应于a矩阵中第n-i+1行中值为j+1的前面一个元素的位置在c矩阵中的编码值”的原则进行赋值,反复以上过程即可完毕huffman编码。3、哈夫曼编码的程序流程图:初始化原始消息数初始化原始消息数将n个消息进行排序装入哈夫曼数据装入哈夫曼数据使左分支编码为1,右分值编码为0码字初始化为码字初始化为0排序列表初始化获得哈夫曼码字获得哈夫曼码字分别遍历左右分支节结束将最后两个出现概率最小的消息合成一个消息将最后两个出现概率最小的消息合成一个消息将消息添加到队列的最后为n-1消息重新进行排列做准备遍历至原始消息,即叶子节点,输出读码字开始四、实验规定输入:信源符号个数r、信源的概率分布P;输出:每个信源符号相应的Huffman编码的码字。五、实验报告规定总结Huffman编码的基本原理及其特点?function[h,l]=huffman(p)p=[0.200.190.180.170.100.150.01]if(length(find(p<0))~=0)error('Notaprob,negativecomponent');endif(abs(sum(p)-1)>10e-10)error('Notaprob.vector,componentdonotaddto1')endn=length(p);fori=1:n-1forj=i:nifp(i)<=p(j)q=p(i);p(i)=p(j);p(j)=q;endendenddisp('¸ÅÂÊ·Ö²¼'),pq=p;m=zeros(n-1,n);fori=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];endfori=1:n-1c(i,:)=blanks(n*n);endc(n-1,n)='0';c(n-1,2*n)='1';fori=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==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';forj=1:i-1c(n-i,(j+1)*n+1:(j+2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论