基于M语言的数字通信系统仿真 —— 采用Huffman码技术..doc

基于M语言的数字通信系统仿真 —— 采用Huffman码技术..doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 12 信电学院 设计说明书 (2013/2014学年第二学期) 课程名称: 通信系统仿真二级项目 题 目: 基于M语言的数字通信系统仿真 —— 采用Huffman码技术 专业班级: 通信工程12-01 学生姓名: 李冕、 董文浩、 李朋 刘凤东 刘伟 学 号: 120310128、120310124、120310125 120310126、120310127 指导教师 : 李志华、任丹萍、张龙 设计周数 : 1周 设计成绩 : 201 1、设计目的和意义 1.1 目的 (1)理解huffman信源编码的理论基础,掌握huffman信源编码的基本方法; (2)根据Huffman编码算法,得到码树和Huffman码; (3)编写M函数,以信源产生的概率向量为变量,返回Huffman编码法的编码结果,返回信源熵和编码的码字长度及计算huffman编码效率。 (4)运用matlab应用软件实现huffman编码,熟悉matlab软件的使用,了解哈弗曼编码的基本基本原理。哈夫曼编码可以无失真的信源编码,无损压缩文件,便于文件传输以及恢复。 1.2、项目的内容及要求 1.2.1基于M语言的数字通信系统仿真—采用Huffman码技术 (1)建立通信系统数学模型; (2)利用M语言建立通信系统仿真模型; (3)对通信系统进行时间流上的仿真,得要仿真结果,计算香浓码编码效率; (4)将仿真结果与理论结果进行比较、分析; 2、实验原理 2.1 课题描述 哈夫曼编码是一种编码方式,以哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称熵编码法),用于数据的无损耗压缩。这一术语是指使用一张特别的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特别之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。 2.1.1 二进制Huffman编码的基本原理及算法 (1) 把信源符号集中的所有符号按概率从大到小排列。 (2) 取概率最小的两个符号作为两片叶子合并(缩减)到一个节点。 (3) 视此节点为新符号,其概率等于被合并(缩减)的两个概率之和,参与概率排队。 (4) 重复(2)(3)两步骤,直至全部符号都被合并(缩减)到根。 (5) 从根出发,对各分枝标记0和1。从根到叶的路径就给出了各个码字的编码和码长。 2.1.2 例如:哈夫曼编码应用举例 哈夫曼树被广泛的应用在各种技术中,其中最典型的就是在编码技术上的应用。利用哈夫曼树,我们可以得到平均长度最短的编码。这里我们以计算机操作码的优化问题为例来分析说明。 研究操作码的优化问题主要是为了缩短指令字的长度,减少程序的总长度以及增加指令所能表示的操作信息和地址信息。要对操作码进行优化,就要知道每种操作指令在程序中的使用频率。设有7种不同的符号,其使用频率如下表所示: 符号 使用频率(pi) I1 0.40 I2 0.30 I3 0.15 I4 0.05 I5 0.04 I6 0.03 I7 0.03 由于计算机内部只能识别0、1代码,所以若采用定长操作码,则需要3位(23=8)。显然,有一条编码没有作用,这是一种浪费。一段程序中若有n条指令,那么程序的总位数为3×n。为了充分地利用编码信息和减少程序的总位数,我们可以采用变长编码。 若要设计变长的编码,则这种编码必须满足这样一个条件:任意一个编码不能成为其它任意编码的前缀。我们把满足这个条件的编码叫做前缀编码。 利用哈夫曼算法,可以使我们设计出最优的前缀编码。首先,我们以每条指令的使用频率为权值构造哈夫曼树,如下图1所示: 图1 构造哈夫曼树示例 对于该二叉树,我们可以规定向左的分支标记为1,向右的分支标记为0。这样,从根结点开始,沿线到达各频度指令对应的叶结点,所经过的分支代码序列就构成了相应频度指令的哈夫曼编码,如下图所示: 符号 编码 I1

文档评论(0)

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

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

1亿VIP精品文档

相关文档