huffman编译码..docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 Huffman编译码 一 设计思想 Huffman编码是可变字长编码(VLC)的一种。 Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长 度最短的码字,有时称之为最佳编码,一般就称Huffman编码。Huffman编码的具体方法:先按出现的概率大小排队,把两个最小的概率相加,作为新的概率 和剩余的概率重新排队,再把最小的两个概率相加,再重新排队,直到最后变成1。每次相 加时都将“0”和“1”赋与相加的两个概率,读出时由该符号开始一直走到最后的“1”, 将路线上所遇到的“0”和“1”按最低位到最高位的顺序排好,就是该符号的Huffman编码。 二 实现流程 图 1 编码基本流程 输入字符串“abcdeabcde”,得到概率向量为[0.2 0.2 0.2 0.2 0.2],每次根据概率排序的顺序即为 2 3 4 5 2 3 4 1 0 2 1 3 0 0 2 1 0 0 0 依据概率排序矩阵编码 在得到最后两个概率时进行编码,统一用大概率或统一用大概率都可以,根据每一次的编码顺序,如图 01 110 111 10 110 111 10 0 10 11 0 0 1 Huffman解码 Huffman编码的特殊性,我们在进行解码时只需要查找,每发现,解码一处,最终即可获得原来的字符串。 Huffman编码的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的,就是说出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,极大的节约了信道资源 实验结果如下 概率[0.1 0.2 0.3 0.4] 概率[0.2 0.2 0.2 0.2 0.2] 概率[0.1 0.2 0.1 0.2 0.4] 其中ll表示各概率编码长度,h表示最终概率编码,t为编码效率。从上述几组数据中可以看出,效率越低,码长越长,效率越高,码长越短。这样可以使得编码总长度最短,对信道的占用也越低,极大地提高了信息传输的效率,而各编码间的任意组合也不会变成其他编码,可以看出Huffman编码是一种十分优秀的编码。 由于编程水平有限,对字符串以及随机化的处理未能掌握,故输入采取的直接输入概率,而具体的实现方法我在思考题中给出了做法。 四 思考题解答 如何对文本进行概率统计? 答:用循环语句输入,当前输入数i,n=0,输入时新开一个数组一个位置数组,加入一个新字符,数组长度加1并将此数组[输入字符]=i,是之前输入字符,,出现的量,a[i]第i个字符出现多少次,总量累看每字符所占比例其概率。 由于Huffman编码的唯一性,任何一位码串错位都会对之后的解码造成很大影响,甚至可能导致错码之后的解码全部出错或是不能继续解码,然而,中信道存在噪声,过程中肯定会出错,我们可以在码中加入纠错码,使其在解码时实现功能。6 输入 统计概率 根据概率排序 进行Huffman编码 生成码表并计算编码效率 输出

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档