信息论与编码课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

河南理工大学课程设计报告书信息论与编码课程设计报告设计题目:统计信源熵与香农编码专业班级学号学生姓名指导教师教师评分2014年3月24日河南理工大学课程设计报告书1目录一、设计任务与要求.................................................2二、设计思路.......................................................2三、设计流程图.....................................................3四、程序运行及结果.................................................5五、心得体会.......................................................6参考文献..........................................................6附录:源程序........................................................7河南理工大学课程设计报告书2一、设计任务与要求1、统计信源熵要求:统计任意文本文件中各字符(不区分大小写)数量,计算字符概率,并计算信源熵。2、香农编码要求:任意输入消息概率,利用香农编码方法进行编码,并计算信源熵和编码效率。二、设计思路1、统计信源熵:统计信源熵就是对一篇英文文章(英文字母数为N),通过对其中的a,b,c,d/A,B,C,D.....(不区分大小写)统计每个字母的个数n,有这个公式P=n/N可得每个字母的概率,最后又信源熵计算公式H(x)=1(x)log(x)niiipp,可计算出信源熵H,所以整体步骤就是先统计出英文段落的总字符数,在统计每个字符的个数,即每遇到同一个字符就++1,直到算出每个字符的个数,进而算出每个字符的概率,再由信源熵计算公式计算出信源熵。2、香农编码:香农编码主要通过一系列步骤支出平均码长与信源之间的关系,同时使平均码长达到极限值,即选择的每个码字的长度ik满足下式:(x)(x)1,iiiiIIk具体步骤如下:a、将信源消息符号按其出现的概率大小依次排列为:12......npppb、确定满足下列不等式的整数码长ik为:(p)(p)1iiilblbkc、为了编成唯一可译码,计算第i个消息的累加概率:11(a)iikkpp河南理工大学课程设计报告书3d、将累加概率Pi变换成二进制数。e、取Pi二进制数的小数点后Ki位即为该消息符号的二进制码字。在香农编码中对于求解编码效率主要是依靠这个公式:R=H(X)/K,其中1(a)niiikpk对于求解信源熵主要依靠公式:H(x)=1(x)log(x)niiipp,三、设计流程图1、统计信源熵:2、香农编码河南理工大学课程设计报告书4河南理工大学课程设计报告书5四、程序运行及结果1、统计信源熵:2、香农编码:河南理工大学课程设计报告书6五、心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。在这个过程中,不仅锻炼了我们缜密的思维和坚持不解的毅力,更磨练了一个队伍的团结互助的精神,只有通过大家一起努力才能将课程设计的所有环节都顺利的完成,另外程序设计中我们遇到问题并解决问题的过程,使得我们独自探索并解决问题的能力了有了一个提高,这有利于我们以后的学习。在此次课程设计中,我们主要是做了统计信源熵与香农编码这两个题目,初一看题目感觉应该很简单,但真正的去做的时候才发现并不是想象的那么简单,由于信息论与编码是年前学的,而课程设计是现在才做,所以经历一个寒假,整本书的知识点都忘得差不多了,所以不得不重新复习课本,以便于自己能好的完成这次的课程设计。另外就是对以前的大一学的C语言也是一个考验,虽然在平时也用一些相关方面的知识,但是相对完成此次的编程任务显然不太容易,所以这次课程设计不仅锻炼了我们做文档,做PPT的能力,也帮助我们对相关知识的做了一个整体复习。还有就是在此过程中,也遇到了一些自己不能解决的问题,就会请教其他组员,一起共同讨论,直到解决,这是的我们充分认识到了团队协作的重要性,也体验到了在问题得到解决的时候所独有的那份喜悦。也体会到了与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。我认为,在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考,在各种其它能力上也都有了提高。更重要的是,在课程设计上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。参考文献[1]曹雪虹,张宗橙.信息论与编码.北京:清华大学出版社,2007.[2]王慧琴.数字图像处理.北京:北京邮电大学出版社,2007.[3]刘宏.C++程序设计教程.武汉:武汉大学出版社,2005.河南理工大学课程设计报告书7[4]杨永国,张冬明.VisualC++6.0实用教程.北京:清华大学出版社,2007.[5]陈运.信息论与编码[M].北京:电子工业出版社,2011.[6]姚领田.精通MFC程序设计[M].北京:人民邮电出版社,2006.[7]傅祖芸.信息论—基础理论与应用(第二版).北京:电子工业出版社,2007.5[8]傅祖芸.信息论基础.北京:电子工业出版社,1989[9]RW汉明.朱雪龙译.编码和信息理论.北京:科学出版社,1984附录:源程序1、统计信源熵:#includestdio.h#includemath.hvoidmain(){intch[50]={0};intsum=0,n=0;inti;doublep[50]={0};doubleH=0;charc;printf(作者:于文达王晨杨帅张健\n);printf(pleaseinputanessay:\n);while((c=getchar())!='\n'){for(i=65;i=90;i++){if(i==c){ch[i-65]++;sum++;}}for(i=97;i=112;i++){if(c==i){ch[i-97]++;sum++;}河南理工大学课程设计报告书8}}for(i=0;i50;i++){p[i]=(double)ch[i]/(double)sum;if(p[i]!=0){printf(p(%c)=%1.2f,i+65,p[i]);n++;}if(n==3){printf(\n);n=0;}}for(i=0;i=25;i++){if(p[i]!=0)H=H+p[i]*(log(p[i]));}printf(\n);printf(信息熵=%f,-H);printf(\n);}2、香农编码#includestdio.h#includemath.hvoidmain(){inti,n,j,k;floatsum=0;floatp[100]={0};floatm,H1=0,H2=0;floatPi[100]={0};intl[100];charc[100][100];printf(作者,于文达王晨杨帅张健\n);河南理工大学课程设计报告书9printf(请输入x的个数\n);scanf(%d,&n);printf(\n);printf(请输入p[i]的概率分布\n);for(i=0;in;i++)scanf(%f,&p[i]);for(i=0;i=n;i++)sum=sum+p[i];while(sum!=1){printf(错误输入,请重输\n);printf(请输入x的个数\n);scanf(%d,&n);printf(\n);printf(请输入p[i]的概率分布\n);for(i=0;in;i++)scanf(%f,&p[i]);for(i=0;in;i++)sum=sum+p[i];}for(j=0;jn-1;j++)for(i=0;in-1-j;i++)if(p[i]p[i+1]){m=p[i];p[i]=p[i+1];p[i+1]=m;}Pi[0]=0;for(j=1;jn+1;j++){Pi[j]=Pi[j-1]+p[j-1];河南理工大学课程设计报告书10}for(i=0;in;i++){m=log(1/p[i])/log(2);if(m==(int)m)l[i]=(int)m;elsel[i]=(int)(m+1);}printf(p[i]序列为累加概率Pi码长Ki\n);for(i=0;in;i++)printf(%5.2f\t%5.2f\t\t%d\n,p[i],Pi[i],l[i]);for(i=0;in;i++){for(k=0;kl[i];k++){m=Pi[i]*2;if(m=1){m=m-1;c[i][k]='1';}elsec[i][k]='0';}}printf(码字\n);for(i=0;in;i++){for(k=0;kl[i];k++)河南理工大学课程设计报告书11printf(%c,c[i][k]);printf(\n);}for(i=0;in;i++){H1=H1-p[i]*log10(p[i])/log10(2);H2=H2+p[i]*l[i];}printf(编码效率为:%0.3f\n,H1/H2);}

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功