网站大量收购闲置独家精品文档,联系QQ:2885784924

信息论与编码实验报告讲义.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息论与编码实验报告讲义

信息论与编码实验报告 实验课程名称 : 赫夫曼编码 (二进制与三进制编码) 专 业 信息与计算科学 班 级 信息与计算科学1班 学生姓名 李林钟 学 号  2013326601049 指导老师 王老师 一、实验目的 利用赫夫曼编码进行通信可以大大提高通信利用率,缩短信息传输时间,降低传输成本。赫夫曼编码是信源编码中最基本的编码方法。 理解赫夫曼编码,无论是二进制赫夫曼编码,还是m进制赫夫曼编码,都要理解其编码原理和编码步骤。 回顾无失真信源编码定理,理解无失真编码的基本原理和常用编码方法。。 掌握二进制赫夫曼编码和m进制赫夫曼编码的基本步骤,能计算其平均码长,编码效率等。 应用二进制赫夫曼编码或m进制赫夫曼编码处理简单的实际信源编码问题。 二、实验环境与设备 1、操作系统与编程软件:windows操作系统,cfree5.0, Visual C++ 6.0。 2、编程语言:C语言以及C++语言 三、实验内容 1. 二进制赫夫曼编码原理及步骤: (1)信源编码的计算 设有N个码元组成的离散、无记忆符号集,其中每个符号由一个二进制码字表示,信源符号个数n、信源的概率分布P={p(si)},i=1,…..,n。且各符号xi的以li个码元编码,在变长字编码时每个符号的平均码长为 ; 信源熵为: ; 唯一可译码的充要条件: ; 其中m为码符号个数,n为信源符号个数,Ki为各码字长度。 (2)二元霍夫曼编码规则 (1)将信源符号依出现概率递减顺序排序。 (2)给两个概率最小的信源符号各分配一个码位“0”和“1”,将两个信源符号合并成一个新符号,并用这两个最小的概率之和作为新符号的概率,结果得到一个只包含(n-1)个信源符号的新信源。称为信源的第一次缩减信源,用s1 表示。 (3)将缩减信源 s1 的符号仍按概率从大到小顺序排列,重复步骤(2),得到只含(n-2)个符号的缩减信源s2。 (4)重复上述步骤,直至缩减信源只剩两个符号为止,此时所剩两个符号 的概率之和必为 1,然后从最后一级缩减信源开始,依编码路径向前返回,就得到各信源符号所对应的码字。 (3).算法基本步骤描述 (4).编码及注解(见附页1) (5).验证截图: 2. 三进制编码: (1).三进制赫弗曼编码原理: 对于多进制赫夫曼编码,为了提高编码效率,就要是长码的符号数量尽量少、概率尽量小,所以信源符号数量最好满足n=(m-1)*k+r,其中m为进制数,k为缩减的次数。 设计步骤如下: [1]将信源符号按概率从大到小的顺序排列,令 p(x1)≥ p(x2)≥…≥ p(xn) [2]给两个概率最小的信源符号p(xn-1)和p(xn)各分配一个码位“0”和“1”,将这两个信源符号合并成一个新符号,并用这两个最小的概率之和作为新符号的概率,或者在新添加一个信源符号,令其概率为0,则个分配一个码位“0”、“1”和“2”,将其合并,结果得到一个只包含(n-1)个信源符号的新信源。称为信源的第一次缩减信源,用S1表示。 [3]将缩减信源S1的符号仍按概率从大到小顺序排列,此后每次合并3个信源符号,得到只含(n-3)个符号的缩减信源S2。 [4]重复上述步骤,直至最后,此时所剩符号的概率之和必为1。然后从最后一级缩减信源开始,依编码路径向前返回,就得到各信源符号所对应的码字。 (2).编码及注解(见附页2) (3).例题:对如下单符号离散无记忆信源编三进制赫夫曼码。 这里:m=3,n=8 令k=3,m+k(m-1)=9,则 s=9-n=9-8=1 所以第一次取m-s=2个符号进行编码。 由计算可得: 平均码长为: (3.1) 信息率为: (3.2) 编码效率为: (3.3) (4).验证结果截图: 四.实验总结: 用C语言实现二进制赫夫曼编码对信源无失真编码。由于课本知识点的不太理解,一点都不知道编码的过程,后来通过阅读信息论与编码课本、网上查阅资料,最后才对本次设计有了一定的理解,详细理解了赫夫曼的具体编码过程。经过理解,发现这种编码其实挺简单的,最重要的是怎样用程序把他实现,这对我们的编程能力也是一次考验。设计要

文档评论(0)

441113422 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档