信息论与编码实验报告.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文档。上传文档
查看更多
信息论与编码实验报告

本科生实验报告实验课程 信息理论与编码学院名称 信息科学与技术学院专业名称学生姓名学生学号指导教师实验地点实验成绩二〇一六 年 九 月----二〇一六 年 十一 月填写说明适用于本科生所有的实验报告(印制实验报告册除外);专业填写为专业全称,有专业方向的用小括号标明;格式要求:用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm,左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。具体要求:题目(二号黑体居中);摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体);关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体);正文部分采用三级标题;第1章 ××(小二号黑体居中,段前0.5行)1.1 ×××××小三号黑体×××××(段前、段后0.5行)1.1.1小四号黑体(段前、段后0.5行)参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。实验一:香农(Shannon)编码一、实验目的掌握通过计算机实现香农编码的方法。二、实验要求对于给定的信源的概率分布,按照香农编码的方法进行计算机实现。三、实验基本原理 给定某个信源符号的概率分布,通过以下的步骤进行香农编码1.将信源消息符号按其出现的概率大小排列2.确定满足下列不等式的整数码长Ki;3.为了编成唯一可译码,计算第i个消息的累加概率4.将累加概率Pi变换成二进制数。5.取Pi二进制数的小数点后K i 位即为该消息符号的二进制码。四、实验内容1.对给定信源进行二进制香农编码。2.对给定信源进行二进制香农编码。3.自已选择一个例子进行香农编码。五、实验设备 PC计算机 ,C++六、实验报告要求1、画出程序设计的流程图,2、写出程序代码,3、写出在调试过程中出现的问题 ,4、对实验的结果进行分析。七、流程图八、程序代码// test.cpp : 定义控制台应用程序的入口点。//#include stdafx.h#include iostream#include iomanipusing namespace std;int _tmain(int argc, _TCHAR* argv[]){int test;int N; cout请输入信源符号个数:;cinN; cout请输入各符号的概率:endl; double *X=new double[N]; //离散无记忆信源 int i,j; for(i=0;iN;i++) { coutX[i+1]=;cinX[i];}//由小到大排序 for(i=0;iN;i++) for(j=i+1;jN;j++) if(X[i]X[j]) { double temp=X[i];X[i]=X[j];X[j]=temp;} int *K=new int[N]; //确定码长 for(i=0;iN;i++) { K[i]=int(-(log(X[i])/log(2.0)))+1; //确认码长为 1-log2(p(xi)) if(K[i]==(-(log(X[i])/log(2.0)))+1)//当K[i]=-log2(p(xi))时,K[i]-- K[i]--; } //累加概率 double *pa=new double[N];pa[0]=0.0; double *p=new double[N];p[0]=0.0; for(i=1;iN;i++){pa[i]=pa[i-1]+X[i-1];p[i]=pa[i];} //将累加概率转换为二进制 string *code=new string[N];for(i=0;iN;i++) for(j=0;jN;j++) //这里默认最大码长不超过信源符号个数 { double temp=pa[i]*2; if(temp=1) //累加概率乘2大于1,对应码字加1,累加概率自身取余 { code[i]+=1; pa[i]=pa[i]*2-1; } else //累加概率乘2小于1时,对应码字加0,累加概率自身取余 { code[i]+=0; pa[i]*= 2; } } for(i=0;iN;i++){ code[i]= code[i].substr

文档评论(0)

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

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档