编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc_第1页
编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc_第2页
编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc_第3页
编码理论实验报告实验一霍夫曼编码中信息熵及编码效率的实验.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验名称 实验一 霍夫曼编码中信息熵及编码效率的实验一、 实验目的1. 掌握霍夫曼编码中信息熵的定义、性质和计算;2. 掌握霍夫曼编码中平均码字长度的定义和计算;3 掌握霍夫曼编码中编码效率的定义和计算;4. 正确使用C语言实现霍夫曼编码中信息熵、平均码长和编码效率的求取。二、实验内容1. 熟练列出霍夫曼编码中信息熵、平均码长和编码效率各自的计算公式;2. 正确使用C语言实现计算霍夫曼编码中信息熵、平均码长和编码效率的程序,并在Visual C+环境中验证。三、 实验原理1. 霍夫曼编码的基本原理按照概率大小顺序排列信源符号,并设法按逆顺序分配码字字长,使编码的码字为可辨识的。2. 平均码长:L=p(si)*li (单位为:码符号/信源符号)其中,p(si)为信源si在q个信源中出现的概率,li为信源si的二进制霍夫曼编码。3. 信息熵:H(S)=- p(si) *log2 p(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码长322230010110100111011010001001102. 根据Huffman编码的例子,用C语言完成计算霍夫曼编码中信息熵的程序的编写,并在Visual C+环境中验证;3. 根据Huffman编码的例子,用C语言完成计算霍夫曼编码中平均码长的程序的编写,并在Visual C+环境中验证;4. 根据Huffman编码的例子,用C语言完成计算霍夫曼编码中编码效率的程序的编写,并在Visual C+环境中验证;实验程序:/* 霍夫曼编码信息熵、平均码长及编码效率的计算 */按照实验步骤的要求完成程序,正确计算霍夫曼编码的信息熵、/平均码长以及编码效率,并通过printf函数将三者的计算结果/打印出来#include#include#include#define CH_Num 5 /信源符号个数/主函数void main() /编程1:定义double型数组gailv存放各信源符号出现的概率 double gailvCH_Num=0.4,0.2,0.2,0.15,0.05; /编程2:定义int型数组code_len存放各信源符号的霍夫曼编码 int code_lenCH_Num=2,2,2,3,3;/编程3:定义double型变量aver_Len、Hs和code_ratio,分别/对应信息熵、平均码长及编码效率,并初始化为0 double aver_Len=0,Hs=0,code_ratio=0; int i;/编程4:利用for循环计算平均码长aver_Lenfor(i=0;iCH_Num;i+)aver_Len+=gailvi*code_leni; /编程5:利用for循环计算信息熵Hs for(i=0;iCH_Num;+i)Hs+=-(gailvi*(log(gailvi)/log(2); /编程6:计算编码效率code_ratiocode_ratio=Hs/aver_Len; /编程7:利用三条printf语句分别打印平均码长、信息熵和编码效率 printf(平均码长=%lf 比特/信源符号n,aver_Len);printf(信源熵=%lf 码符号/信源符号n,Hs);printf(编码效率=%lfn,code_ratio);运行结果如下图:实验心得:通过本次试验加深

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论