统计信源熵与哈夫曼编码本科毕业(设计)论文.doc

统计信源熵与哈夫曼编码本科毕业(设计)论文.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息论与编码课程设计报告 设计题目:统计信源熵与哈夫曼编码 专业班级 学 号 学生姓名 指导教师 教师评分  2015年 3 月 25 日 目 录 一、设计任务与要求 3 二、设计思路 3 三、设计流程图 5 四、程序运行及结果 6 五、心得体会 8 参考文献 9 附录:源程序 10 设计任务与要求 1.1设计目的 信息论与编码是信息、通信、电子工程专业的基础,对理论研究和工程应用均有重要的作用。通过对本次课程设计,我们将学到的理论知识用于实践,用软件编写程序实现具体的计算和逻辑问题,使我们对所学知识有更深层次的认知,加深对课本知识的理解。 1.2设计要求 (1)统计信源熵 要求:统计任意文本文件中各字符(不区分大小写)数量,计算字符概率,并计算信源熵。 (2)哈夫曼编码 要求:任意输入消息概率,利用哈夫曼编码方法进行编码,并计算信源熵和编码效率。 设计思路 2.1编码效率计算公式: 其中H(X)为信源熵,K表示平均码长。 2.3变长码的编码方法 能获得最佳码的编码方法主要有: & 香农(Shannon) & 费诺(Fano) & 霍夫曼(Huffman) 本设计以霍夫曼编码为例; (1)将信源消息符号按其出现的概率大小依次排列 p(x1)≥p(x2)≥…≥ p(xn) (2)取两个概率最小的符号分别配以0和1,并将这两个概率相加作为一个新符号的概率,与未分配码元的符号重新排队。 (3)对重排后的两个概率最小符号重复步骤2的过程。 (4)继续上述过程,直到最后两个符号配以0和1为止。 (5)从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字。 2.3 具体设计思路 (1)统计信源熵 在VC++环境中进行编程 (1)运行程序,在对话框里输入一段英文,将26个英文字母及空格作为信源。 (2)计算每个字母出现的次数(不区分大小写),再通过计算信源总大小来计算在本篇文章中每个字母出现的概率。 (3)通过信源熵计算公式来计算信源熵。 (2) 哈夫曼编码 在VC++环境中进行编程 输入概率矩阵,并检验是否正确,即各概率不能小于零,总概率之和等于一。 建立各概率符号的位置索引矩阵Index,利于编码后从树根进行回溯,从而得出对应的编码 输出所需的哈弗曼编码。 计算信源熵,并计算平均码长,算出编码效率。 输出结果。 设计流程图 3.1统计信源熵的设计思路 3.2哈夫曼编码设计思路 程序运行及结果 4.1统计信源熵程序运行结果 运行程序并输入: The most distant way in the world is not the way from birth to the end. it is when i sit near you that you don't understand i love u. The most distant way in the world is not that you're not sure i love u. It is when my love is bewildering the soul but i can't speak it out. T测试目的:检验程序是否正确。 检验方法:用验证法来检验;看中概率是否为一,并检测信源熵是否正确。 检验结果:程序运行结果正确。 如下为运行结果截屏 4.2哈夫曼编码程序运行结果 测试输入:0.20 0.19 0.18 0.17 0.15 0.10 0.01 测试目的:测试经常出现的信源符号是否对应较短的码长,检测程序运行结果是否正确。 正确输出:10 11 000 001 010 0110 0111 信源熵为-2.60868 bit/符号 平均码长为2.72 码元/符号 传送速率为0.959075 bit/码元 实际输出:与争取而输出一样 检测结果:程序无错误 以下为运行结果截屏 心得体会 刚开始课程设计的时候,自己是头绪的不知道从哪里下手的是对 语言没有达到熟练的程度,不是很自信。但是开头难,什么只要踏出第一步,接下来就会一步步化解 为了更加熟练地用进行编写,与同组成员地复习以前学过的书籍一段时间后对语法的掌握更加熟练。实际上在的时候,手打难免会碰到各类的问题在语句后面打“”等一系列

您可能关注的文档

文档评论(0)

海纳百川 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档