[方案]编码理论实验报告实验二信源编码——霍夫曼编码[方案]编码理论实验报告实验二信源编码——霍夫曼编码
实验名称 实验二 信源编码--------霍夫曼编码一、 实验目的
1. 掌握信息熵的定义、性质和计算; 2. 掌握平均码字长度和编码效率的计算; 3( 掌握霍夫曼编码的原理;
4( 熟练掌握二进制霍夫曼码的编码步骤; 5( 正确使用C语言实现霍夫曼编码。 二、实验内容
1. 熟练画出霍夫曼编码图,正确求出字符串的二进制霍夫曼编码;
2. 用C语言正确编程,实现霍夫曼编码、解码,并在Visual C++环境中验证。
三、 实验原理
1. 霍夫曼编码的基本原理 ...
[
]编码理论#实验
#实验二信源编码——霍夫曼编码
实验名称 实验二 信源编码--------霍夫曼编码一、 实验目的
1. 掌握信息熵的定义、性质和计算; 2. 掌握平均码字长度和编码效率的计算; 3( 掌握霍夫曼编码的原理;
4( 熟练掌握二进制霍夫曼码的编码步骤; 5( 正确使用C语言实现霍夫曼编码。 二、实验内容
1. 熟练画出霍夫曼编码图,正确求出字符串的二进制霍夫曼编码;
2. 用C语言正确编程,实现霍夫曼编码、解码,并在Visual C++环境中验证。
三、 实验原理
1. 霍夫曼编码的基本原理
按照概率大小顺序排列信源符号,并设法按逆顺序分配码字字长,使编码的
码字为可辨识的。
2. 平均码长:L=?p(s)*l(单位为:码符号/信源符号)ii
其中,p(s)为信源s在q个信源中出现的概率,l为信源s的二进制霍夫曼iiii编码。
3. 信息熵:H(S)=- ?p(s) *log p(s) (单位为:比特/信源符号)i2i
其中,p(s)为信源s在q个信源中出现的概率。 ii
4. 编码效率:η= H(S)/ L
其中,H(S)为信息熵,L为平均码长。 四、 实验步骤:
1. 将q个信源符号按概率分布的大小,以递减次序排列起来,设
p(x),p(x),?,p(x)12q
2. 用“0”和“1”码符号分别代
概率最小的两个信源符号,并将这两个概率最小的符号合并成一个符号,合并的符号概率为两个符号概率之和,从而得到只包含q-1个符号的新信源,称为缩减信源。 3. 把缩减信源的符号仍旧按概率大小以递减次序排列,再将其概率最小的两个信源符号分别用“0”和“1”表示,并将其合并成一个符号,概率为两符号概率之和,这样又形成了 q – 2 个符号的缩减信源。 4. 依此继续下去,直至信源只剩下两个符号为止。将这最后两个信源符号分别用“0”和“1”表示。
5. 然后从最后一级缩减信源开始,向前返回,就得出各信源符号所对应的码符号序列,即对应的码字。
五、实验参考程序
见Huffman.c程序。
运行结果:
实验思考
1. 霍夫曼编码构造二叉树时父节点、左节点、右结点分别是什么,
左右结点是当前两个最小权值的树根,父结点为这两个结点权值之和。
2. 为何说霍夫曼编码能够有效压缩码长,
霍夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。这样,处理全部信息的总码长一定小于实际信息的符号长度。
实验心得:通过本次试验进一步加深了对霍夫曼编码的基本原理的理解以及很好地运用。掌握二进制霍夫曼码的编码步骤并使用C语言实现了计算霍夫曼编码。
本文档为【[方案]编码理论实验报告实验二信源编码——霍夫曼编码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。