首页 开发技术 C     /    信道容量的迭代算法(计算最佳信源概率、信道容量C)

信道容量的迭代算法(计算最佳信源概率、信道容量C)

上传者: sundlll1988 | 上传时间:2020/3/12 17:21:40 | 文件大小:19KB | 文件类型:jpg
信道容量的迭代算法(计算最佳信源概率、信道容量C)
[例3.6]某对称离散信道的信道转移概率矩阵P为:1/31/31/61/61/61/61/31/3计算其最佳信源概率和信道容量C。
附:程序代码如下:#include#include#defineMAX50doubleCalculate_a(intk,doublepa[]);doubleCalculate_C1(doublepa[],doublea[]);doubleCalculate_C2(doublea[]);intr,s;doublepba[MAX][MAX];voidmain(){ inti,j;doubleC1,C2,E; doublea[MAX],pa[MAX]; E=0.000001; printf("请输出信源符号个数r:\n"); scanf("%d",&r); printf("请输出信宿符号个数s:\n"); scanf("%d",&s); printf("请输出精确度E:\n"); scanf("%lf",&E); printf("请输出信源P[ai]:\n"); for(i=0;i<r;i++) scanf("%lf",&pa[i]); printf("请输出信道转移概率矩阵P[bj][ai]:\n"); for(i=0;i<r;i++) for(j=0;j<s;j++) scanf("%lf",&pba[i][j]); do { for(i=0;i=E) { doublesum=0; for(i=0;i<r;i++) sum+=pa[i]*a[i]; for(i=0;i<r;i++) pa[i]=pa[i]*a[i]/sum; } else { printf("最佳信源概率:\n"); for(i=0;i=E);printf("信道容量为:%lf\n",C1/log(2));}doubleCalculate_a(intk,doublepa[]){ inti,j; doubletemp,sum2=0; for(j=0;j<s;j++) { doublesum1=0; for(i=0;i<r;i++) { sum1+=pa[i]*pba[i][j]; } temp=pba[k][j]/sum1; temp=log(temp); sum2+=pba[k][j]*temp; } returnexp(sum2);}doubleCalculate_C1(doublepa[],doublea[]){ inti; doublesum=0; for(i=0;i<r;i++) sum+=pa[i]*a[i]; returnlog(sum);}doubleCalculate_C2(doublea[]){ inti; doublemax=a[0]; for(i=0;i<r;i++) if(max<a[i])max=a[i]; returnlog(max);}

文件下载

资源详情

-C

评论信息

  • QINGYULi:
    嗯佐恩就是这个2019-05-08
  • 小静静哈:
    期末作业是这个,学习了,不错2015-03-02
  • ethsan:
    不错,就是没有考虑0取对数的情况,只需要稍微改动一下,很好!2013-11-24
  • yan54:
    C程序,下载文件就一张图片,代码都在这里了2013-08-08

免责申明

【好快吧下载】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【好快吧下载】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【好快吧下载】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,8686821#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明