• / 16
  • 下载费用:5.98 积分  

信息论实验报告.doc

资源描述:
《信息论实验报告.doc》由本站会员分享,支持在线阅读,更多《信息论实验报告最新版.doc》相关的内容可在三九文库网上搜索。

前言信息论是现代通信与信息工程的理论基础。作为电子信息科学与技术专业本科生的学科基础课,本课程主要讲授:信息的定义和测度、信源和信息熵、连续熵和信息变差、信道和互信息、平均互信息和信道容量、数据处理和信息测量理论、无失真信源编码理论和编码方法等内容。本课程按“单符号离散信息系统”、“多符号离散信息系统”、“连续信息系统”三个“系统”层面,逐步深入展开,以严密的数学分析贯串始终。通过教学,使学生掌握信息理论的基本概念和信息分析方法,为今后进一步研究信息科学和信息技术打下坚实的理论基础。实验一:唯一可译码判断实验学时:3实验类型:(演示、验证、综合、√设计、研究)实验要求:(√必修、选修)一、实验目的通过本次试验了解唯一可译码地判断原理。

实现用C语言编写判断唯一可译码地程序二、实验内容编程实现唯一可译码的判决准则―――Sardinas-Patterson算法三、实验原理、方法和手段Sardinas-Patterson算法描述:设C为码字集合,按以下步骤构造此码的尾随后缀集合F:(1)考查C中所有的码字,若Wi是Wj的前缀,则将相应的后缀作为一个尾随后缀放入集合F0中;(2)考查C和Fi两个集合,若Wj∈C是Wi∈Fi的前缀或Wi∈Fi是Wj∈C的前缀,则将相应的后缀作为尾随后缀码放入集合Fi+1中;(3)F=∪Fi即为码C的尾随后缀集合;(4)若F中出现了C中的元素,则算法终止,返回假(C不是唯一可译码);否则若F中没有出现新的元素。

则返回真。在我们设计的算法中,需要注意的是我们需要的是先输出所有尾随后缀的集合,然后再判断该码是否是唯一可译码,即如F中出现了C中的元素,则C不是唯一可译码,否则若F中没有出现新的元素,则C为唯一可译码。而不是F中出现C中的元素就终止,这也是在本题的要求中需要注意的问题。概要设计:由于需要判断尾随后缀,所以我们需要反复的比较C和F中的码字。首先我们用一个b[30][30]的数组来存放所有的尾随后缀的集合;用Q记录所有尾随后缀的个数;用数组a[30][30]来存放输入的码字,L[30]来存放码字的长度;通过一个双重循环并调用houzhui(a[i],a[j],L[i],L[j])函数来找到a[30][30]中的为随后缀。

即:for(i=0;i

for(j=0;jL[j];通过循环调用即可找到b[30][30]中的所有尾随后缀,最后再将他们分别存放在b[30][30]中;即通过for(i=0;iL[i]){HuoZhui(a[i],b[j],L[i],k2);}}}在反复调用HuoZhui(a[i]。

a[j],L[i],L[j])函数中如果b[30][30]中有重复出现的,即尾随后缀相同的不用再次放入b[30][30]中。在调用函数中所需要注意的问题就是一个比较的问题,也就是实现6)中所提到的。四,实验数据源1:10,0.1002:10,110,1110五、实验组织运行要求以学生自主训练为主的开放模式组织教学六、实验条件计算机WindowsXPVC++6.0七、实验内容1.实验源程序#include#include#includestructstrings{char*string;structstrings*next;};structstringsFstr。

*Fh,*FP;//输出当前集合voidoutputstr(strings*str){do{cout<string<next;}while(str);cout<b?b:a;}inlineintMAX(inta,intb){returna>b?a:b;}#definelengtha(strlen(CP))#definelengthb(strlen(tempPtr))//判断一个码是否在一个码集合中,在则返回0,不在返回1intcomparing(strings*ststring,char*code){while(ststring>next){ststring=ststring>next。

if(!strcmp(ststring>string,code))return0;}return1;}//判断两个码字是否一个是另一个的前缀,如果是则生成后缀码voidhouzhui(char*CP,char*tempPtr){if(!strcmp(CP,tempPtr)){cout<<"集合C和集合F中有相同码字:"<next=NULL。

cptemp>string=newchar[abs(lengthalengthb)+1];char*longstr;longstr=(lengtha>lengthb?CP:tempPtr);//将长度长的码赋给longstr//取出后缀for(intk=MIN(lengtha,lengthb);kstring[kMIN(lengtha,lengthb)]=longstr[k];cptemp>string[abs(lengthalengthb)]=NULL;//判断新生成的后缀码是否已在集合F里,不在则加入F集合if(comparing(Fh。

cptemp>string)){FP>next=cptemp;FP=FP>next;}}}voidmain(){//功能提示和程序初始化准备cout<<"\t\t唯一可译码的判断!\n"<string=newchar[strlen(c)];strcpy(Ch>string,c);Ch>next=NULL;charf[]="F:";Fh>string=newchar[strlen(f)];strcpy(Fh>string,f)。

Fh>next=NULL;//输入待检测码的个数intCnum;cout<<"输入待检测码的个数:";cin>>Cnum;cout<<"输入待检测码"<>tempstr;CP>next=new(structstrings);CP=CP>next;CP>string=newchar[strlen(tempstr)];strcpy(CP>string,tempstr);CP>next=NULL;}outputstr(Ch);CP=Ch;while(CP>next>next){CP=CP>next。

tempPtr=CP;do{tempPtr=tempPtr>next;houzhui(CP>string,tempPtr>string);}while(tempPtr>next);}outputstr(Fh);structstrings*Fbegin,*Fend;Fend=Fh;while(1){if(Fend==FP){cout<<"是唯一可译码码组!"<next){CP=CP>next;tempPtr=Fbegin;for(;){tempPtr=tempPtr>next;houzhui(CP>string。

tempPtr>string);if(tempPtr==Fend)break;}}outputstr(Fh);//输出F集合中全部元素}}2.流程框图3.数据测试(1)输入10,0,100(2)输入10,110,1110八,实验心得1.更深入理解了唯一可译码地判断原则2.学会了用Sardinas-Patterson算法实现编码判断3.掌握用C编程实现唯一可译码判断实验二:Huffman编码的实现实验学时:3实验类型:(演示、验证、综合、√设计、研究)实验要求:(√必修、选修)实验目的理解和掌握huffman编码的基本原理和方法,实现对信源符号的huffman编码。实验内容理解和掌握huffman编码的基本原理和方法通过MATLAB编程实现对单信源符号的huffma编码计算信源的信息熵、平均码长以及编码效率实验原理Huffman编码按信源符号出现的概率而编码。

其平均码长最短,所以是最优码。无失真信源编码定理:对于熵为H的离散无记忆的平稳信源,必存在一种无失真编码,使每符号的平均码长满足不等式:二元Huffman编码:若将编码设计为长度不等的二进制编码,即让待传字符串中出现概率大的字符采用尽可能短的码字,而把长的码字分配给概率小的信源符号。构造方法如下:将信源概率分布按大小以递减次序排列;合并两概率最小者,得到新信源;并分配0/1符号。新信源若包含两个以上符号返回(a),否则到(c)。从最后一级向前按顺序写出每信源符号所对应的码字。4.Huffman编码算法ProcedureHUFFMANifq==2thenreturns0→0,s1→1else降序排序{pi}缩减信源:创建一个符号s′以取代sq2。

sq1,其概率为p′=pq2+pq1递归调用Huffman算法以得到s0,…,sq3,s′的编码:w0,…,wq3,w′,相应的概率分布为p0,…,pq3,p′Returns0→w0,…,sq3→wq3,sq2→w′0,sq1→w′1endifendprocedure实验数据源1.2.五、实验组织运行要求以学生自主训练为主的开放模式组织教学六、实验条件计算机WindowsXPVC++6.0七、实验内容1.实验源程序#include#defineMAXBIT100#defineMAXVALUE10000#defineMAXLEAF30#defineMAXNODEMAXLEAF*21typedefstruct{intbit[MAXBIT]。

展开阅读全文
 温馨提示:
下载提示
关于本文
本文标题:信息论实验报告.doc
链接地址:https://www.999doc.com/36567.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright © 2016-2021  999doc三九文库网 版权所有

经营许可证编号:苏ICP备2020069977号  网站客服QQ:772773258  联系电话:0518-83073133