信息论实验最终版.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 信道容量的迭代算法程序设计 1、实验目的 (1)进一步熟悉信道容量的迭代算法; (2)学习如何将复杂的公式转化为程序; (3)掌握C语言数值计算程序的设计和调试技术。 2、实验要求 (1)已知:信源符号个数r、信宿符号个数s、信道转移概率矩阵P。 (2)输入:任意的一个信道转移概率矩阵。信源符号个数、信宿符号个数和每个具体的转移概率在运行时从键盘输入。 (3)输出:最佳信源分布P*,信道容量C。 3、信道容量迭代算法 1:procedure CHANNEL CAPACITY(r,s,()) 2:initialize:信源分布=1/r,相对误差门限,C=— 3:repeat 4: 5: 6: C ( 7:until 8:output P*= ,C 9:end procedure ------------------------------------------------------------------------------------------------------- 4、参考代码 自己编写的代码: /*********************************************************************Author: Wan Jiaolong *Date : 2012.04.1 *Copyright: WenjorinLab Purpose: Caculate the capacity of a given channel ********************************************************************* #includestdio.h #includemath.h #includeiostream.h //用宏定义一个DELTA值 #define DELTA 1e-4 float matrixValue( int n, float **a ); float **InverseMatrix(float **A,int n); int main() { int sourseNum,destinationNum,i,j,k,counter; float **matrix=NULL; float **inv_matrix=NULL; float *probilityData=NULL; float *hData=NULL; float *sum=NULL; float *w=NULL; float C,C_old; cout请输入信源数据个数和信道数据个数endl; cinsourseNumdestinationNum; if(sourseNum!=destinationNum) { cout转移矩阵必须是方阵,请再输入一次endl; cinsourseNumdestinationNum; } probilityData=new float [sourseNum]; matrix=new float *[sourseNum]; for(i=0;isourseNum;i++) matrix[i]=new float [sourseNum]; inv_matrix=new float *[sourseNum]; for(i=0;isourseNum;i++) inv_matrix[i]=new float [sourseNum]; cout请输入转移矩阵概率:\n; for(i=0;isourseNum;i++) for(j=0;jsourseNum;j++) cinmatrix[i][j]; while(matrixValue(sourseNum,matrix)==0)//[sourseNum][sourseNum] { cout请再次输入转移矩阵概率:\n; for(i=0;isourseNum;i++) for(j=0;jsourseNum;j++) cinmatrix[i][j]; } //求取行列式的逆矩阵 inv_matrix=InverseMatrix(matrix,sourseNum);//[sourseNum][sourseNum]---- //int matrixSum=matrixValue(sourseNum,matrix[sourseNum][so

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档