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