哈夫曼编码c语言实现哈夫曼编码的分析与实现

哈夫曼编码c语言实现哈夫曼编码的分析与实现

ID:42022553

大小:48.47 KB

页数:7页

时间:2019-09-06

哈夫曼编码c语言实现哈夫曼编码的分析与实现_第1页
哈夫曼编码c语言实现哈夫曼编码的分析与实现_第2页
哈夫曼编码c语言实现哈夫曼编码的分析与实现_第3页
哈夫曼编码c语言实现哈夫曼编码的分析与实现_第4页
哈夫曼编码c语言实现哈夫曼编码的分析与实现_第5页
资源描述:

《哈夫曼编码c语言实现哈夫曼编码的分析与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、哈夫曼编码C语言实现哈夫曼编码的分析与实现X电气与电子信息工程学院信息理论与编码课程设计报告设计题目:专业班级:学生姓名:号:指导教师:设计时间:一、设计的作用.目的《信息论与编码》是一门理论与实践密切结合的课程,课程设计是其实践性教学环节之一,同时也是对课堂所学理论知识的巩固和补充。其主要目的是加深对理论知识的理解,掌握查阅有关资料的技能,提高实践技能,培养独立分析问题、解决问题及实际应用的能力。通过完成具体编码算法的程序设计和调试工作,提高编程能力,深刻理解信源编码.信道编译码的基本思想和目的,掌握编码的基本原理与编码过程,增强逻辑思维能力,培养和提高自学

2、能力以及综合运用所学理论知识去分析解决实际问题的能力,逐步熟悉开展科学实践的程序和方法。二、设计任务及要求2.1理解无失真信源编码的理论基础,掌握无失真信源编码的基本方法;2.2根据哈夫曼编码算法,考虑一个有多种可能符号符号发生的概不同)的信源,得到哈夫曼编码和码树;2.3掌握哈夫曼编码的优缺点;2.4能够使用MATLAB或其他语言进行编程,编写的函数要有通用性要理解每个函数的具体意义和适用范围,对主要函数的功能和参数做详要求程序输出显示所有的码字,平均码长,编码效率。三、设计内容一个有8个符号的信源X,各个符号出现的概率为:?P??xlx2x3x4x5x6x

3、7x8??P(X)???0.40.180.150.10.070.050.030.02?????进行哈夫曼编码,并计算平均码长、编码效率、冗余度。设计原理4.1哈夫曼编码步骤(1)将信源消息符号按其出现的概率大小依次排列P1>P2>???>Pno(2)取两个概率最小的字母分别配以0和1两个码元,并将这两个概率相加作为一个新的字母的概率,与未分配的二进制符号的字母重新排队。(3)对重排后的两个概率最小符号重复步骤(2)的过程。(4)不断继续上述过程,直到最后两个符号配以0和1为止。从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字4-2哈夫曼编

4、码特点(1)凡是能载荷一定的信息量,且码字的平均长度最短,可分离的变长的码字集合称为最佳变长码。为此必须将概率大的信息符号编以短的码字,概率小符号编以长的码字,使得平均码字最短,为最佳编码方法。哈弗曼码是用用概率匹配的方法进行信源编码。它有两个显著特点:一是哈弗曼码的编码方法保证了概率大的符号对应于短吗,概率小的符号度对应于长码,充分利用了短码;二是缩减了心愿的最后两个码字总是最后一位不同,从而保证了哈弗曼码是即时码哈弗曼变长码的效率是相当高的,它可以单个信源符号编码或用L较小的信源序列编码,对编码的设计来说也是简单得多。但是应当注,要达到很高的效率仍然需要按

5、长序列计算,这样才能使平均码字长度降低O哈夫曼编码方法得到的码并非是唯一的,造成并非唯一的原因是:首先,每次对信源缩减时,赋予信源最后两个概率最小的符号,用0和1可以任意的,所以可以得到不同的哈夫曼码,但不会影响码字的长度。其次:对信源进行缩减时两个概率最小的符号合并后的概率与其他信源符号的概率相同时,这两者在缩减信源中进行概率排序,其位置放置次序是可以任意的,故会得到不同的哈夫曼码此时将影响码字的长度,一般将合并的概率放在上面,这样可以获得较小的码方差。对于多进制哈夫曼编码,为了提高编码效率,就要使长码的符号数量尽量少.概率尽量小,所以信源符号数最好满足m?

6、?r?l?n?r9其中「为进制数,n为缩减的次数。例如,要进行三进制编码,那么最好信源有7个符号,第1次合并后减少2个成为5个,第2次合并后又减少2个成为3个,这样给每一步赋予三进制符号就没有浪费了。但如果信源只有6个符号时,为了尽量减少最长码的数量,则应该在第1次合并时添置概率为零的虚拟符号1个,事实上只合并2个概率最小的符号,后面每次合并三个,就可以使得最长码的符号数量最少,也就是长码的概率最小,从而得到最高的编码效率。(2)哈夫曼编码在实际中已有应用,但它仍然存在一些分组码所具有的缺点。例如概率特性必须得到精确地测定,它若略有变化,还需要换码表,以及对于

7、二元信源,常需要多个符号合起来编码,才能取得好的效果,但当合并的符号数不大时,编码效率提高不多,尤其对于相关信源,不能令人满意,而合并的符号数增大时,码表中的码字数很多,设备将越来越复杂。当容量设定后,随着时间的增长,存储器溢出和取空的的概率都将增。当T很大时,几乎一定会溢出或损失;由此可见,对于无线长的信息,很难采用变长码而不出现错误。一般来说,变长码只适用于有限码的传输;即送出一段信息后,信源就停止输出,例如传真机送出一张纸上的信息后停止。对于长信息在实际使用时可把长信息分段送出,也可通过检测存储器的状态调节信源输出即发现存储器将要溢出就停止信源输出;发现

8、存储器将要被取空就在信道上插上空闲标志

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。