费诺编码课程设计.docx
- 文档编号:2163571
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:15
- 大小:253.11KB
费诺编码课程设计.docx
《费诺编码课程设计.docx》由会员分享,可在线阅读,更多相关《费诺编码课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
费诺编码课程设计
吉林建筑大学
电气与电子信息工程学院
信息理论与编码课程设计报告
设计题目:
费诺编码
专业班级
学生姓名:
学号:
指导教师:
设计时间:
2014.11.24-2014.12.5
教师评语:
成绩评阅教师日期
第1章概述
1.1设计的作用、目的
《信息论与编码》是一门理论与实践密切结合的课程,课程设计是其实践性教学环节之一,同时也是对课堂所学理论知识的巩固和补充。
其主要目的是加深对理论知识的理解,掌握查阅有关资料的技能,提高实践技能,培养独立分析问题、解决问题及实际应用的能力。
通过完成具体编码算法的程序设计和调试工作,提高编程能力,深刻理解信源编码、信道编译码的基本思想和目的,掌握编码的基本原理与编码过程,增强逻辑思维能力,培养和提高自学能力以及综合运用所学理论知识去分析解决实际问题的能力,逐步熟悉开展科学实践的程序和方法。
1.2设计任务及要求
1.理解无失真信源编码的理论基础,掌握无失真信源编码的基本方法;
2.根据费诺编码算法,考虑一个有多种可能符号(各种符号发生的概率不同)的信源,得到费诺编码;
3.掌握费诺编码的优缺点;
4.能够使用MATLAB或其他语言进行编程,编写的函数要有通用性,要理解每个函数的具体意义和适用范围,对主要函数的功能和参数做详细说明。
1.3设计内容
费诺编码属于概率匹配编码,但不是最佳的编码方法。
在编N进制码时首先将信源消息符号按其出现的概率依次由小到大排列开来,并将排列好的信源符号按概率值分N大组,使N组的概率之和近似相同,并对各组赋予一个N进制码元0、1……N-1。
之后再针对每一大组内的信源符号做如上的处理,即再分为概率和相同的N组,赋予N进制码元。
如此重复,直至每组只剩下一个信源符号为止。
此时每个信源符号所对应的码字即为费诺码。
针对同一信源,费诺码要比香农码的平均码长小,消息传输速率大,编码效率高。
一个有8个符号的信源X,各个符号出现的概率为:
进行费诺编码,并计算平均码长、编码效率、冗余度。
第2章费诺编码
2.1设计原理
1.编码与信源编码
在学过信息论与编码以后,对这方面内容已有了基础的了解。
为了进行更深入的了解,我查阅了很多资料,我认为通信的根本问题是如何将信源输出的信息在接收端的信宿精确地或近似地复制出来,而这最重要的一步就是信源的编码,一个好的开端才能为以后的传输及接受、解码提供有利得条件。
而我也对各种信源编码方式产生了浓厚的兴趣。
1.1首先要了解什么是信源编码
为了减少信源输出符号序列中的剩余度、提高符号的平均信息量,对信源输出的符号序列所施行的变换。
具体说,就是针对信源输出符号序列的统计特性来寻找某种方法,把信源输出符号序列变换为最短的码字序列,使后者的各码元所载荷的平均信息量最大,同时又能保证无失真地恢复原来的符号序列[8]。
既然信源编码的基本目的是提高码字序列中码元的平均信息量,那么,一切旨在减少剩余度而对信源输出符号序列所施行的变换或处理,都可以在这种意义下归入信源编码的范畴,例如过滤、预测、域变换和数据压缩等。
一般来说,减少信源输出符号序列中的剩余度、提高符号平均信息量的基本途径有两个:
①使序列中的各个符号尽可能地互相独立;②使序列中各个符号的出现概率尽可能地相等。
前者称为解除相关性,后者称为概率均匀化。
在通信过程中,如何在不失真或允许一定失真条件下,用尽可能少的符号来传送信源信息,提高信息传输率;在信道受干扰的情况下,如何增加信号的抗干扰能力,同时又使得信息传输率最大。
这就产生了多种信源编码方式[2]。
为了有效传播信息,最理想状态即为无失真传输。
在无失真信源编码中又分为定长编码、变长编码机最佳变长编码。
1.1.1定长编码
在定长编码中,K是定值,编码的目的即为找到最小的K值。
要实现无失真的信源编码,不但要求信源符号与码字是一一对应的,而且还要求有码字组成的码符号序列的逆变换也是唯一的。
由定长编码定理可知,当编码器容许的输出信息率,也就是当每个信源符号必须输出的码长是K=Kl/logm。
由定理表明,只要码字所能携带的信息量大于信源序列输出的信息量,则可以使传输几乎无失真,但是条件是L足够大。
这就为传输带来了很大的麻烦,并且实现起来很困难,并且编码效率也不高。
而要达到编码效率接近1的理想编码器虽有存在性,但在实际上时不可能的,因为L非常大,无法实现。
由此而产生了变长编码。
1.1.2变长编码
在变长编码中,码长K是变化的,可根据信源各个符号的统计特性,对概率大的符号用短码,而对概率小的符号用长码。
这样大量信源符号编成码后,平均每个信源符号所需的输出符号数就可以降低,从而提高编码效率。
用变长编码来达到相当高的编码效率,一般所要求的符号长度L可以比定长编码小得多的多。
很明显,定长码需要的信源序列长,这使得码表很大,且总存在译码差错。
而变长码要求编码效率达到96%时,只需L=2.因此用变长码编码时,L不需要很大就可达到相当高的编码效率,而且可实现无失真编码。
并且随着信源序列长度的增加,编码效率越来越接近于1,编码后的信息传输率R也越来越接近于无噪无损二元对称信道的信道容量C=1bit/二元码符号,达到信源与信道匹配,使信道得到充分利用。
但变长编码方式也有优劣的区分,下面就讨论几种不同的变长编码方式[1]。
1、香农编码方法
香农第一定理指出了平均码长与信源之间的关系,同时也指出了可疑通过编码使平均码长达到极限值,这是一个很重要的极限定理。
香农第一定理指出,选择每个码字的长度Ki满足下式:
I(xi) 编码方式如下: 首先将信源消息符号按其出现的概率大小依次从大到小排列,为了编成唯一可译码,计算第i个消息的累加概率P=∑p(a),并将累加概率Pi变换成二进制数。 最后去Pi二进制数的小数点后Ki位提取出,即为给出符号的二进制码字。 由此可见香农编码法冗余度稍大,实用性不强,但他是依据编码定理而来,因此具有重要的理论意义。 1.2费诺编码方法 费诺编码属于概率匹配编码,但不是最佳的编码方法。 在编N进制码时首先将信源消息符号按其出现的概率依次由小到大排列开来,并将排列好的信源符号按概率值分N大组,使N组的概率之和近似相同,并对各组赋予一个N进制码元0、1……N-1。 之后再针对每一大组内的信源符号做如上的处理,即再分为概率和相同的N组,赋予N进制码元。 如此重复,直至每组只剩下一个信源符号为止。 此时每个信源符号所对应的码字即为费诺码。 针对同一信源,费诺码要比香农码的平均码长小,消息传输速率大,编码效率高。 1.3哈夫曼编码方法 编码方法: 也是先将信源符号按其出现的概率大小依次排列,并取概率最小的字母分别配以0和1两个码元(先0后1或者先1后0,以后赋值顺序固定),再将这两个概率想家作为一个新字母的概率,与未分配的二进制符号的字母重新排队。 并不断重复这一过程,直到最后两个符号配以0和1为止。 最后从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即为相应的码字。 哈夫曼编码方式得到的码并非唯一的。 在对信源缩减时,两个概率最小的符号合并后的概率与其他信源符号的概率相同时,这两者在缩减信源中的排序将会导致不同码字,但不同的排序将影响码字的长度,一般将合并的概率放在上面,这样可获得较小的码方差。 哈夫曼码的平均码长最小,消息传输效率最大,编码效率最高。 鉴于以上编码的特点与我所掌握的知识下面我将着重介绍费诺编码。 2.费诺编码的描述 费诺编码是一种信源编码. 信源编码分为无失真信源编码和限失真信源编码。 一般称无失真信源编码为第一机械定理;限失真信源编码定理称为第三极限定理。 由于信源符号之间存在分布不均匀和相关性,使得信源存在冗余度,信源编码的主要任务就是减少冗余,提高编码效率。 具体说,就是针对信源输出符号序列的统计特性,寻找一定的方法把信源输出符号序列变换为最短码字序列的方法。 信源编码的基本途径有两个: 使编码中各个符号出现的概率尽可能地相等,即概率均匀化。 信源编码的基础是信息论中的两个编码定理: 无失真编码定理和限失真编码定理。 其中无失真编码定理是可逆编码的基础。 可逆是指当信源符号转换成代码后,可从代码无失真地恢复信源符号。 当已知信源符号的概率特性时,可计算它的符号熵,这表示每个信源符号所载有的信息量。 编码定理不但证明了必定存在一种编码方法,可使代码的平均长度可任意接近但不低于符号熵,而且还阐明达到这目标的途径,就是使概率与码长匹配。 无失真编码或可逆编码只适用于离散信源。 对于连续信源,编成代码后就无法无失真地恢复原来的连续值,因为后者的取值可有无限多个。 此时只能根据率失真编码定理在失真受限制的情况下进行限失真编码。 信源编码定理出现后,编码方法就趋于合理化。 凡是能载荷一定的信息量,且码字的平均长度最短,可分离的变长码的码字集合称为最佳变长码。 能获得最佳码的编码方法主要有: 香农码(Shannon)、费诺(Fano)、哈夫曼(Huffman)编码等。 3.费诺编码步骤 1.将信源消息符号按其出现的概率大小依次排列: P1>=P2>=…>=Pn。 2.依次排列的信源符号按概率值分为两大组,使两个组的概率之和近似相同,并对各组赋予一个二进制码元“0”和“1”。 3.使划分后的两个组的概率之和近似相同,并对各组赋予一个二进制符号“0”和“1”。 4.如此重复,直至每个组只剩下一个信源符号为止。 5.信源符号所对应的码字即为费诺码。 4.费诺编码特点 费诺编码,它编码后的费诺码要比香农码的平均码长小,消息传输速率大,编码效率高,但它属于概率匹配编码它不是最佳的编码方法[1]。 费诺编码方法属于概率匹配编码,具有如下特点: 1、概率大,则分解次数小;概率小则分解次数多。 这符合最佳码原则。 2、码字集合是唯一的。 3、分解完了,码字出来了,码长也有了,即先有码字后有码长。 因此,费诺编码方法又称为子集分解法。 2.2设计步骤 1.费诺编码过程框图 图1费诺码编码过程图 2.费诺编码过程表 消息符号Xi 各个符号概率P(Xi) 第一次分组 第二次分组 第三次分组 第四次分组 二元码字 码长 X1 0.19 0 0 00 2 X2 0.18 1 0 010 3 X3 0.17 1 011 3 X4 0.16 1 0 10 2 X5 0.13 1 0 110 3 X6 0.10 1 0 1110 4 X7 0.06 1 1111 5 X 0.01 11111 5 表1费诺码编码过程表 3.计算平均码长、编码效率、冗余度。 4.冗余度 在数据传输中,由于衰减或干扰会使数据代码发生突变,此时就要提高数据代码的抗干扰能力.这必须在原二进制代码长度的基础上增加几位二进制代码的长度,使相应数据具有一定的冗余度,也称做富裕度. 简单地说,所谓冗余度,就是从安全角度考虑多余的一个量,这个量就是为了保障仪器、设备或某项工作在非正常情况下也能正常运转。 目前大多现代产品和工程设计中都应用了冗余度这个思想和理论。 在许多医疗单位中药品存量不足,卫生材料存量不够,一遇突发事件,就会造成缺货,造成涨价风波,影响社会安定。 在我们的医院中,由于各项费用都与经济效益挂钩,医疗设备等卫生装备冗余度很不够,基本上只能按平时的正常运转设置,甚至有的都没达到。 一遇突发事件,这点装备就显得严重不足。 冗余度,通俗的讲就是数据的重复度。 在一个数据集合中重复的数据称为数据冗余 第3章费诺编码的MATLAB实现 3.1MATLAB简介 Matlab是MathWorks公司于1982年推出的一套高性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编码 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)