信道容量的迭代算法的C语言程序(共4页).docx
《信道容量的迭代算法的C语言程序(共4页).docx》由会员分享,可在线阅读,更多相关《信道容量的迭代算法的C语言程序(共4页).docx(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C语言程序:#include#include#includeint main()int r,s,i,j,k=0;double p20; %存放输入信源概率矩阵double z20;double q2020; %存放信道转移概率矩阵double F2020; %存放的概率分布矩阵的转置double x,y,a;double epsilon=1e-5; %门限double C=-1000.0; %取初始迭代时的信道容量为一个较大的负数printf(n请输入信源符号个数: );scanf(%d,&r);printf(n请输入信宿符号个数: );scanf(%d,&s);pr
2、intf(n请输入信道转移概率矩阵:nn);for(i=0;ir;i+)for(j=0;js;j+)scanf(%lf,&qij);printf(n);for(i=0;ir;i+) pi=(double)(1.0/(double)r); %设初始信源分布为等概分布dok+; a=C;for(j=0;js;j+)x=0.0; for(i=0;i0)for(i=0;ir;i+) Fij=(pi)*(qij)/x; % F为的概率分布矩阵的转置elsefor(i=0;ir;i+) Fij=0.0; %的分母部分为0时,令F=0y=0.0;for(i=0;ir;i+)zi=0.0;for(j=0;j0) zi=zi+(qij*(log(Fij)/log(2.0); %zi为的分子部分zi=(pow(2.0,zi);y=y+zi; %zi为的分母部分for(i=0;iepsilon);printf(n迭代次数为;k=%dn,k); %输出迭代次数printf(n最佳信源分布为:nn); for(i=0;ir;i+)printf(%.3lf ,pi); %输出信源的最佳分布,保留3位小数printf(n); printf(n信道容量为:C=%.3lf bitnn,C); %输出信道容量,保留3位小数问题1的执行结果:问题2 的执行结果:专心-专注-专业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信道容量 算法 语言 程序
限制150内