欢迎来到天天文库
浏览记录
ID:60812060
大小:101.53 KB
页数:4页
时间:2020-12-20
《信道容量的迭代算法的C语言程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序:#include#include#includeintmain(){intr,s,i,j,k=0;doublep[20];%存放输入信源概率矩阵doublez[20];doubleq[20][20];%存放信道转移概率矩阵doubleF[20][20];%存放的概率分布矩阵的转置doublex,y,a;doubleepsilon=1e-5;%门限doubleC=-1000.0;%取初始迭代时的信道容量为一个较大的负数printf("请输入信源符号个数:");scanf("%d",&r);printf("请输
2、入信宿符号个数:");scanf("%d",&s);printf("请输入信道转移概率矩阵:");for(i=0;i0)for(i=0;i3、p[i])*(q[i][j])/x;%F为的概率分布矩阵的转置elsefor(i=0;i0)z[i]=z[i]+(q[i][j]*(log(F[i][j])/log(2.0)));%z[i]为的分子部分}z[i]=(pow(2.0,z[i]));y=y+z[i];%z[i]为的分母部分}for(i=0;i4、2.0));%求信道容量单位为“bit”}while(fabs((C-a)/C)>epsilon);printf("迭代次数为;k=%d",k);%输出迭代次数printf("最佳信源分布为:");for(i=0;i
3、p[i])*(q[i][j])/x;%F为的概率分布矩阵的转置elsefor(i=0;i0)z[i]=z[i]+(q[i][j]*(log(F[i][j])/log(2.0)));%z[i]为的分子部分}z[i]=(pow(2.0,z[i]));y=y+z[i];%z[i]为的分母部分}for(i=0;i4、2.0));%求信道容量单位为“bit”}while(fabs((C-a)/C)>epsilon);printf("迭代次数为;k=%d",k);%输出迭代次数printf("最佳信源分布为:");for(i=0;i
4、2.0));%求信道容量单位为“bit”}while(fabs((C-a)/C)>epsilon);printf("迭代次数为;k=%d",k);%输出迭代次数printf("最佳信源分布为:");for(i=0;i
此文档下载收益归作者所有