编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc

编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc

ID:50810626

大小:116.50 KB

页数:4页

时间:2020-03-14

编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc_第1页
编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc_第2页
编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc_第3页
编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc_第4页
资源描述:

《编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验名称实验一霍夫曼编码中信息熵及编码效率的实验一、实验目的1.掌握霍夫曼编码中信息熵的定义、性质和计算;2.掌握霍夫曼编码中平均码字长度的定义和计算;3.掌握霍夫曼编码中编码效率的定义和计算;4.正确使用C语言实现霍夫曼编码中信息熵、平均码长和编码效率的求取。二、实验内容1.熟练列出霍夫曼编码中信息熵、平均码长和编码效率各自的计算公式;2.正确使用C语言实现计算霍夫曼编码中信息熵、平均码长和编码效率的程序,并在VisualC++环境中验证。三、实验原理1.霍夫曼编码的基本原理按照概率大小顺序排列信源符号,并设法按逆顺序分配码字字长,使编码的码字为可辨识的。2.平均码长:L=

2、∑p(si)*li(单位为:码符号/信源符号)其中,p(si)为信源si在q个信源中出现的概率,li为信源si的二进制霍夫曼编码。3.信息熵:H(S)=-∑p(si)*log2p(si)(单位为:比特/信源符号)其中,p(si)为信源si在q个信源中出现的概率。4.编码效率:η=H(S)/L其中,H(S)为信息熵,L为平均码长。四、实验步骤:1.Huffman编码示例如下图:信源符号S1S2S3S4S5概率0.050.40.20.20.15信源缩减过程0.40.20.20.20.40.40.20.60.4编码011001011010码长32223001011010011101

3、1010001001102.根据Huffman编码的例子,用C语言完成计算霍夫曼编码中信息熵的程序的编写,并在VisualC++环境中验证;3.根据Huffman编码的例子,用C语言完成计算霍夫曼编码中平均码长的程序的编写,并在VisualC++环境中验证;4.根据Huffman编码的例子,用C语言完成计算霍夫曼编码中编码效率的程序的编写,并在VisualC++环境中验证;实验程序:/***********霍夫曼编码信息熵、平均码长及编码效率的计算************//按照实验步骤的要求完成程序,正确计算霍夫曼编码的信息熵、//平均码长以及编码效率,并通过printf函

4、数将三者的计算结果//打印出来#include#include#include#defineCH_Num5//信源符号个数//主函数voidmain(){//编程1:定义double型数组gailv存放各信源符号出现的概率doublegailv[CH_Num]={0.4,0.2,0.2,0.15,0.05};//编程2:定义int型数组code_len存放各信源符号的霍夫曼编码intcode_len[CH_Num]={2,2,2,3,3};//编程3:定义double型变量aver_Len、Hs和code_ratio,分别

5、//对应信息熵、平均码长及编码效率,并初始化为0doubleaver_Len=0,Hs=0,code_ratio=0;inti;//编程4:利用for循环计算平均码长aver_Lenfor(i=0;i

6、均码长、信息熵和编码效率printf("平均码长=%lf比特/信源符号",aver_Len);printf("信源熵=%lf码符号/信源符号",Hs);printf("编码效率=%lf",code_ratio);}运行结果如下图:实验心得:通过本次试验加深了对霍夫曼编码的基本原理的理解以及计算公式的记忆。并使用C语言实现计算霍夫曼编码中信息熵、平均码长和编码效率的程序,并在VisualC++环境中验证,且结果正确。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。