ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:695.97KB ,
资源ID:4696187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4696187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信息论.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

信息论.docx

1、信息论题 目:信息论上机实习报告姓 名:刘彬班 级:123102学 号:20101000234指导老师:余林琛2012年11月21日香农码一、 算法设计1.将信源发出的信号按概率从小到大排列。2.计算累加概率。3.以2为底求对数定码长。4.将概率变为二进制。二、 程序#include #include #define N 7void main()struct Shannon char XYFH10; double XYGL; double LJGL; int Length; int a20;shanN;int i,j;double m,n;struct Shannon X;printf(请输入

2、信源符号:n);for(i=0;iN;i+) scanf(%s,shani.XYFH);printf(请输入信源概率:n);for(i=0;iN;i+) scanf(%lf,&shani.XYGL);for(j=0;jN;j+) for(i=0;iN-j;i+) /*冒泡排序*/ if(shani.XYGLshani+1.XYGL) X=shani; shani=shani+1; shani+1=X; for(i=1,shan0.LJGL=0;iN;i+) /*计算累加概率*/ shani.LJGL=shani-1.LJGL+shani-1.XYGL;for(i=0;iN;i+) /*转换二进

3、制*/ for(j=0,m=shani.LJGL;j1) shani.aj=1; m=m-1; else shani.aj=0; for(i=0;iN;i+) /*计算长度*/ n=(double) (-1)*log(shani.XYGL)/log(double) 2);shani.Length=1+(int)n;printf(输出结果为:n);for(i=0;iN;i+) printf(%s %lf %lf %d ,shani.XYFH,shani.XYGL,shani.LJGL,shani.Length); for(j=0;jshani.Length;j+) printf(%d,shani

4、.aj); printf(n); 三、运行结果二、费诺码一、 算法设计1、将信源发出的N个符号按其概率的递减输入。2、将依次排列的信源符号依概率分成两组,使两个组的概率和近于相同,并对各组赋予二进制代码符号“0”和“1”。3、通过各信源概率与该分组中的总概率的一般就能性比较,选取与总概率相差最小的进行分组。4、如此重复,直至每组值只剩下一个信源符号为止二、 程序三、运行结果三、唯一可译码一、算法描述1、考查C中所有的码字,若Wi是Wj的前缀,则将相应的后缀作为一个尾随后缀放入集合F0中;2、考查C和Fi两个集合,若WjC是WiFi的前缀WiFi 是WjC的前缀,则将相应的后缀作为尾随后缀码放入

5、集合Fi+1中;3、 F=Fi即为码C的尾随后缀集合;4、若F中出现了C中的元素,则算法终止,返回假(C不是唯一译码);否则若F中没有出现新的元素,则返回真。程序#include #include char C1010,F2020;int M,N2,N3;void X(int N1)int i,j,k,m,L1,L2,L3,flag=0;char a10;N2=N1;for(i=0;iN1;i+) for(j=0;jM;j+) if(strcmp(Fi,Cj)=0)/判断F,C集合有没有重复元素 printf(不是唯一可译码:n); if(strcmp(Fi,Cj)0)/判断F是不是C的前缀

6、L1=strlen(Fi); L2=strlen(Cj); for(k=0;kL1;k+) if(Fik!=Cjk) break; if(k=L1) L3=L2-L1; for(m=0;mL3;k+,m+)/将后缀给a数组 am=Cjk; for(m=m+1;m10;m+) am=0; for(m=0;mN1;m+) if(strcmp(Fm,a)=0) flag=1; break; else flag=0; if(flag!=1)/将后缀加入到F集合 strcpy(FN2,a); N2+; if(N2=N1) printf(是唯一可译码n); return;N3=N2;for(i=0;iM;

7、i+) for(j=0;jN2;j+) if(strcmp(Ci,Fj)=0)/判断F,C集合有没有重复元素 printf(不是唯一可译码n); if(strcmp(Ci,Fj)0)/判断F是不是C的前缀 L1=strlen(Ci); L2=strlen(Fj); for(k=0;kL1;k+) if(Cik!=Fjk) break; if(k=L1)/将后缀给a数组 L3=L2-L1; for(m=0;mL3;k+,m+)/将后缀给a数组 am=Cjk; for(m=m+1;m10;m+) am=0; for(m=0;mN2;m+) if(strcmp(Fm,a)=0) flag=1; el

8、se flag=0; if(flag!=1) /将后缀加入到F集合 strcpy(FN3,a); N3+; if(N3=N2) printf(是唯一可译码n); return;else X(N3);void main()int i,j,m,k,L1,L2,L3,N=0,flag1=0;char a10;printf(请输入信源的个数:);scanf(%d,&M);printf(请输入信源符号:);for(i=0;iM;i+) scanf(%s,Ci);for(i=0;iM;i+) for(j=i+1;jM;j+) if(strcmp(Ci,Cj)0) L1=strlen(Ci); L2=strlen(Cj); for(k=0;kL1;k+) if(Cik!=Cjk) break; if(k=L1) L3=L2-L1; for(m=0;mL3;k+,m+) am=Cjk; am=0; for(m=0;mN;m+) if(strcmp(Fm,a)=0) flag1=1; if(flag1!=1) strcpy(FN,a); N+; X(N);运行结果

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1