信息论和编码技术实验指导书.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息论和编码技术实验指导书

信息论与编码技术 实 验 指 导 书 通信工程教研室 实验一:信息量及信道容量的计算 实验目的:通过该实验,掌握通过计算机实验信息量和信道容量的计算方法 实验要求:对一个离散的无记忆信源,给定信源的输入概率分布,给定一个信道特性,计算各种信息量和熵,并计算信道容量。 实验原理: ?设输入X∈{x1,x2,…,xi,…,xn} 输出Y∈{y1,y2,…,yj,…,ym} ,信道的一般数学模型如下图: 在给定信源概率分布条件下, 各种熵的求解方法如下: 信源熵 条件熵 联合熵 交互熵 信道容量 ?一般离散信道容量对计算步骤总结如下: 实验设备:计算机 c++ 五、实验报告要求 画出程序设计的流程图, 写出程序代码, 写出在调试过程中出现的问题 , 对实验的结果进行分析。 实验二 香农编码 一 实验目的、掌握通过计算机实现香农编码 二实验要求 对于给定的信源的概率分布,按照香农编码的方法进行计算机实现. 三、实验原理 给定某个信源符号的概率分布,通过以下的步骤进行香农编码 信源符号按概率从大到小排列 对信源符号求累加和,表达式: Pi=Pi-1+p(xi) 求自信息量,确定码字长度。自信息量I(xi)=-log(p(xi));码字长度取大于等于自信息量的最小整数。 将累加和用二进制表示,并取小数点后码字的长度的码 。 四、实验设备 计算机 c++ 五实验报告 1、画出程序设计的流程图, 2、写出程序代码, 3、写出在调试过程中出现的问题 , 4、对实验的结果进行分析。 实验三 费诺编码 一 实验目的:掌握通过计算机实现费诺编码 二实验要求: 对于给定的信源的概率分布,按照费诺编码的方法进行计算机实现. 三实验原理 费诺编码的步骤: A 将概率按从大到小的顺序排列 B 按编码进制数将概率分组,使每组概率和尽可能接近或相等。 C 给每组分配一位码元 D 将每一分组再按同样原则划分,重复b和c,直到概率不再可分为止 四 实验设备 计算机 c++ 五实验报告 1、画出程序设计的流程图, 2、写出程序代码, 3、写出在调试过程中出现的问题 , 4、对实验的结果进行分析。 实验四 哈夫曼编码 一 实验目的:掌握通过计算机实现哈夫曼编码 二实验要求: 对于给定的信源的概率分布,按照哈夫曼编码的方法进行计算机实现. 三实验原理 哈夫曼编码的步骤: (1). 把信源符号按概率大小顺序排列, 并设法按逆次序分配码字的长度。 (2). 在分配码字长度时,首先将出现概率 最小的两个符号的概率相加合成一个概率 (3). 把这个合成概率看成是一个新组合符号地概率,重复上述做法直到最后只剩下两个符号概率为止。 (4). 完成以上概率顺序排列后,再反过来逐步向前进行编码,每一次有二个分支各赋予一个二进制码,可以对概率大的赋为零,概率小的赋为1。 四实验设备 计算机 c++ 五实验报告 1、画出程序设计的流程图, 2、写出程序代码, 3、写出在调试过程中出现的问题 , 4、对实验的结果进行分析。 六 参考程序 哈夫曼编码: 根据二叉树思想,将二叉树的程序改编 ? ? ? #includeiostream #includestring using namespace std; typedef struct { ??? int weight; ??? int flag; ??? int parent; ??? int lchild; ??? int rchild; }hnodetype; typedef struct { ??? int bit[10]; ??? int start; ??? char leaf; }hcodetype; void huf(char cha[],int m[],int n) {?????????????????????????????????? ??? int i,j,m1,m2,x1,x2,c,p; ??? hnodetype *huffnode=new hnodetype[2*n-1]; ??? hcodetype *huffcode=new hcodetype[n],cd; ??? for(i=0;i2*n-1;i++) ??? {???????????????????????????????????? //初始化哈夫曼树 ??????? huffnode[i].weight=0; ??????? huffnode[i].parent=0; ??????? huffnode[i].flag=0; ??????? huffnode[i].lchild=-1; ??????? huffnode[i].rchild=-1; ??? } ??? for(i=0;in;

您可能关注的文档

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档