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

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

信息论与编码课程设计报告设计题目:统计信源熵与香农编码专业班级:电子信息工程1601学 号:201608000010学生姓名:顾祎指导教师:成 凌 飞教师评分:设计任务与要求1、 统计信源熵要求:统计任意文本文件中各字符(区分大小写)数量,计算字符概率,并计算信源熵。2、香农编码要求:任意输入消息概率,利用香农编码方法进行编码,并计算信源熵和编码效率。设计思路本次课程设计中主要运用C语言编程以实现任务要求,分析所需要的统计量以及相关变量,依据具体公式和计算步骤编写语句,组成完整C语言程序。运行环境为VC++6.0。1、统计信源熵定义:信源各个离散消息的自信息量的数学期望为信源的平均信息量,一般称为信源的信息熵,也叫信源熵或香农熵,有时称为无条件熵或熵函数,简称熵,记为H(X)。 计算公式:。统计信源熵就是对一篇英文文章,或者是输入一段字符串,通过对其中的a,b,c,d/A,B,C,D.....(区分大小写)和数字符号1,2,3,4…以及各个符号如:, 。 !等统计符号的个数N和每一个符号的数目n,有这个公式P=n/N可得每个字母的概率,最后又信源熵计算公式,可计算出信源熵H,所以整体步骤就是先统计出英文段落的总字符数,或者是输入字符串的总个数。包括字母(区分大小写)、数字、标点等,然后再统计每个字符的个数,即每遇到同一个字符就++1,直到算出每个字符的个数,进而算出每个字符的概率,再由信源熵计算公式计算出信源熵。2、香农编码:香农编码主要通过一系列步骤支出平均码长与信源之间的关系,同时使平均码长达到极限值,即选择的每个码字的长度满足下式:具体步骤如下:将信源消息符号按其概率从大到小排列确定满足下列不等式的整数码长Ki令P1=0,计算第i个消息的累加概率将累加概率Pi变换成二进制数,取小数点后Ki位为该消息的码字在香农编码中对于求解编码效率主要是依靠这个公式:R=H(X)/K,其中? 对于求解信源熵主要依靠公式:设计流程图1、统计信息熵2、香农编码程序运行及结果1、统计信息熵2、香农编码心得体会这真是一次有意义的学习旅程。在设计期间,我和我的团队一直沉浸于探索、探讨之中,各种有意思的想法层出不穷。我们总是想尽可能的把课程设计做的足够的完美,足够的精彩,可是同时又不得不面临一个又一个的技术难题。有些经过我们的努力,通过不断地修改不断的翻阅资料得以解决,可是仍有好多的的问题是我们苦思冥想所参索不透的!真是知识用时方恨少啊!课程设计很是考察个人能力和团队合作协调能力,在面对自己所不熟悉甚至不了解的问题时,是怎样一步步的设计完成给定的任务,及时有成效的解决面临的问题的。从整体的分析设计到后面语句变量的敲定最终完成课题是对自己极其有益的锻炼,从中收获的不仅是知识上的,也是学习经验的积累和思维能力的提升,虽然一次课程设计任务不是那么繁重,可是认真去完成其中的一个个细节也是一种难得的体验。还有就是在此过程中,经常遇到自己不能解决的问题,就会请教其他组员,一起共同讨论,直到解决,这是的我们充分认识到了团队协作的重要性,也体验到了在问题得到解决的时候所独有的那份喜悦。也体会到了与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。在此次课程设计中,我们主要是做了统计信源熵与香农编码这两个题目,初一看题目感觉应该很简单,但真正的去做的时候才发现并不是想象的那么简单,本次课设的困难主要集中在程序的编写上。我们团队是基于C语言编写的程序。C语言虽然一直都在用,可每次都感觉非常难。虽然我们的思路是正确的、明确的,可是由于变量的定义,语法的不规范,以及指针的指向错误等等一系列问题阻碍了我们走向胜利。不过我们是不会轻易放弃的。我们起早贪黑,熬夜到半夜一点,翻书翻了好几本。我认为本次课程设计是成功的,在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教学长,以及不懈的努力,不仅培养了独立思考,在各种其它能力上也都有了提高。更重要的是,在课程设计上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践参考文献[1]曹雪虹,张宗橙.信息论与编码.北京:清华大学出版社,2009.[2]杨永国,张冬明.Visual C++6.0实用教程.北京:清华大学出版社,2007.[3]贾宗璞,许合利.《C语言程序设计》人民邮电出版社.2014.附录1、统计信息熵#include stdio.h#include math.h#include stdlib.h #define N 1000int main(void){ char s[N],M[N]; int i = 0,j=0,n=0,L=0; in

文档评论(0)

1亿VIP精品文档

相关文档