(word完整版)Matlab函数实现哈夫曼编码算法.doc 立即下载
2024-09-09
约4.9千字
约11页
0
360KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

(word完整版)Matlab函数实现哈夫曼编码算法.doc

(word完整版)Matlab函数实现哈夫曼编码算法.doc

预览

免费试读已结束,剩余 6 页请下载文档后查看

5 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(word完整版)Matlab函数实现哈夫曼编码算法
(word完整版)Matlab函数实现哈夫曼编码算法
(word完整版)Matlab函数实现哈夫曼编码算法
课程设计任务书
学生班级:通信0802班学生姓名:学号:
设计名称:编写Matlab函数实现哈夫曼编码的算法
起止日期:2011.6.21—2011.7。3指导教师:


设计要求:

理解无失真信源编码的理论基础,掌握无失真信源编码的基本方法;
考虑一个有8种可能符号的信源,各种符号发生的概率分别为:0。30、0。16、0。14、0.12、0。10、0.09、0。06、0.04;
根据Huffman编码算法,得到码树和Huffman码;
编写M函数,以8个信源产生的概率向量为变量,返回Huffman编码算法的编码结果,返回信源熵和编码的码字长度.




课程设计学生日志

时间设计内容6。21—6.21查阅资料,确定方案,了解哈夫曼编码的规则6.22—6。22设计总体方案6.23—6.26功能和要求的具体设计6.27-6.27完成设计报告7。5—7.5答辩课程设计考勤表

周星期一星期二星期三星期四星期五

课程设计评语表


指导教师评语:




















成绩:指导教师:

年月日编写Matlab函数实现哈夫曼编码的算法

设计目的和意义
在当今信息化时代,数字信号充斥着各个角落。在数字信号的处理和传输中,信源编码是首先遇到的问题,一个信源编码的好坏优劣直接影响到了后面的处理和传输。如何无失真地编码,如何使编码的效率最高,成为了大家研究的对象.
哈夫曼编码就是其中的一种,哈夫曼编码是一种变长的编码方案.它由最优二叉树既哈夫曼树得到编码,码元内容为到根结点的路径中与父结点的左右子树的标识。所以哈夫曼在编码在数字通信中有着重要的意义.可以根据信源符号的使用概率的高低来确定码元的长度.既实现了信源的无失真地编码,又使得编码的效率最高.
设计原理
哈夫曼编码(HuffmanCoding)是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。uffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫作Huffman编码.
而哈夫曼编码的第一步工作就是构造哈夫曼树。哈夫曼二叉树的构造方法原则如下,假设有n个权值,则构造出的哈夫曼树有n个叶子结点。n个权值分别设为w1、w2、…、wn,则哈夫曼树的构造规则为:
(1)将w1、w2、…,wn看成是有n棵树的森林(每棵树仅有一个结点);
(2)在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;
(3)从森林中删除选取的两棵树,并将新树加入森林;
(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。
具体过程如下图1产所示:(例)
图1哈夫曼树构建过程
哈夫曼树构造成功后,就可以根据哈夫曼树对信源符号进行哈夫曼编码。具体过程为先找到要编码符号在哈夫曼树中的位置,然后求该叶子节点到根节点的路径,其中节点的左孩子路径标识为0,右孩子路径标识为1,最后的表示路径的01编码既为该符号的哈夫曼编码.可以知道,一个符号在哈夫曼树中的不同位置就有不同的编码。而且,不同符号的编码长度也可能不一样,它由该结点到父结点的路径长度决定,路径越长编码也就越长,这正是哈夫曼编码的优势和特点所在.它以各符号出现的概率大小将各符号的编码区分开。
例如对上例图中“1"的编码为“100”,“3”的编码为“101",“5"的编码为“11”。
对于一个信源消息的熵可以以下公式(1)求得:
(1)
其中H(x)表示信源的总信息量,既为信源的熵。p()为信源中一特定符号出现的概率。
详细设计步骤
首先对设计题目进行系统理论分析。由给定的8种可能符号的信源,各种符号发生的概率分别为:0。30、0。16、0.14、0.12、0。10、0.09、0.06、0.04。可以根据哈夫曼树的构造原理得出如下哈夫曼树型结构(图2):
图2哈夫曼树
其中每个结点中的上面的整数为结点有编号,下面的小数为该结点的权值,在这里指的各结点的概率。
由以是的哈夫曼树图,根据哈夫曼的编码规则可求该8个输出符号的顺序为:0。30,0。16,0.14,0.12,0.10,0。09,0.06,0.04对应编码输出应该为:1011011101000000101100111,编码长度为25.
由熵的计算公式可知:H(X)=—(0.30.3+0.160.16+0.140.14+0。0.12+0。10。1+0。090.09+0.060。06+0.040.04)=2。7824
哈夫曼树在matlab中的构造,在matlab中用
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

(word完整版)Matlab函数实现哈夫曼编码算法

文档大小:360KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用