shannon码的编码实验总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
shannon码的编码实验总结   本科生实验报告   实验课程信息理论与编码   学院名称信息科学与技术学院   专业名称   学生姓名   学生学号   指导教师   实验地点   实验成绩   二〇一六年九月----二〇一六年十一月   填写说明   1、适用于本科生所有的实验报告;   2、专业填写为专业全称,有专业方向的用小括号标明;   3、格式要求:   ①用A4纸双面打印或在A4大小纸上用蓝黑色水笔书写。②打印排版:正文用宋体小四号,倍行距,页边距采取默认形式。字符间距为默认值;页码用小五号字底端居中。   ③具体要求:   题目;   摘要;   关键词   小四号黑体   参考文献,参考文献用五号宋体,参照《参考文献著录规则》。   实验一:香农编码   一、实验目的   掌握通过计算机实现香农编码的方法。   二、实验要求   对于给定的信源的概率分布,按照香农编码的方法进行计算机实现。   三、实验基本原理   给定某个信源符号的概率分布,通过以下的步骤进行香农编码   1.将信源消息符号按其出现的概率大小排列   p(x1)?p(x2)???p(xn)   2.确定满足下列不等式的整数码长Ki;   ?log2p(xi)?Ki??log2p(xi)?1   3.为了编成唯一可译码,计算第i个消息的累加概率   pi??p(xk)   k?1i?1   4.将累加概率Pi变换成二进制数。   5.取Pi二进制数的小数点后Ki位即为该消息符号的二进制码。   四、实验内容   x2x3x4x5x6x7??X??x1?q(X)???????进行二进制香农编码。1.对给定信源?   x2x3x4x5x6??X??x1??q(X)??????进行二进制香农编码。2.对给定信源?   3.自已选择一个例子进行香农编码。   五、实验设备   PC计算机,C++   六、实验报告要求   1、画出程序设计的流程图,   2、写出程序代码,   3、写出在调试过程中出现的问题,   4、对实验的结果进行分析。   七、流程图   八、程序代码   //:定义控制台应用程序的入口点。   //   #include   #include   #include   usingnamespacestd;   int_tmain(intargc,_TCHAR*argv[])   {   inttest;intN;   coutN;   coutX[i];   }   //由小到大排序   for(i=0;i=1)//累加概率乘2大于1,对应码字加1,累加概率自身取余   {pa[i]=pa[i]*2-1;code[i]+=1;   }   else//累加概率乘2小于1时,对应码字加0,累加概率自身取余   {   code[i]+=0;   pa[i]*=2;}}{code[i]=code[i].substr(0,K[i]);}//求码字for(i=0;idata()   #includevector   #includealgorithm   #include   usingnamespacestd;   structbitree   {//定义结构用于存储编码结果的二叉树结构,在译码时用到   charch;//用于存储码符号   charmz;//用于存储码字   bitree*lchild;   bitree*rchild;   };   structdata   {//用于存储相关的信源符号以及其概率   doublep;   charch;   vectorcode;   intml;   };   boolsortspecial(datadt1,datadt2)   {//用于排序时用   return;   }   voidprint2(vectorvd)   {//用于打印译码结果   for(inti=0;ivd)   {//用于读入相关的信源符号以及概率   intn;   while(true)   {   coutn;   cout;   cin;   =0;   _back(dt);   i++;   }   doublesum=0;   vector::iteratorpit;   /*for(pit=();pit!=();pit++)   {   sum+=pit-p;   }   if(sum!=1)   {   coutch=ch1;   bit-mz=ch2;   bit-lchild=NULL;   bit-rchild=NULL;   if(ch1==0)   bt-rchild=bit;   elsebt-lchild=bit;   }   voidCreatmz1(vect

文档评论(0)

mmrs369 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档