Huffman编码实验报告.docx
- 文档编号:10051414
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:11
- 大小:178.05KB
Huffman编码实验报告.docx
《Huffman编码实验报告.docx》由会员分享,可在线阅读,更多相关《Huffman编码实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
Huffman编码实验报告
Huffman编码实验报告
1二进制哈夫曼编码的原理及步骤
(1)信源编码的计算
设有N个码元组成的离散、无记忆符号集,其中每个符号由一个二进制码字表示,信源符号个数n、信源的概率分布P={p(si)},i=1,…..,n。
且各符号xi的以li个码元编码,在变长字编码时每个符号的平均码长为
;
信源熵为:
;
唯一可译码的充要条件:
;
其中m为码符号个数,n为信源符号个数,Ki为各码字长度。
构造哈夫曼数示例如下图所示。
(2)二元霍夫曼编码规则
(1)将信源符号依出现概率递减顺序排序。
(2)给两个概率最小的信源符号各分配一个码位“0”和“1”,将两个信源符号合并成一个新符号,并用这两个最小的概率之和作为新符号的概率,结果得到一个只包含(n-1)个信源符号的新信源。
称为信源的第一次缩减信源,用s1表示。
(3)将缩减信源s1的符号仍按概率从大到小顺序排列,重复步骤
(2),得到只含(n-2)个符号的缩减信源s2。
(4)重复上述步骤,直至缩减信源只剩两个符号为止,此时所剩两个符号的概率之和必为1,然后从最后一级缩减信源开始,依编码路径向前返回,就得到各信源符号所对应的码字。
2功能介绍
输入一段字符序列,通过本程序可得出该字符序列中各个字符出现的次数,以及每个字符出现的概率,并能计算出信源符号熵,每个字符的哈弗曼编码,和相应的平均码长,编码效率,码方差。
3算法基本步骤描述
4C语言源代码
#include
#include
#include
#defineMAX100
//定义全局变量h存放信息熵
doubleh=0;
//循环构造Huffman树
for(i=0;i { //min,lmin中存放两个无父结点且结点权值最小的两个结点 min=lmin=MAX; //找出所有结点中权值最小、无父结点的两个结点,并合并之为一颗二叉树
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Huffman 编码 实验 报告