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