文档详情

实验二:信道容量的迭代算法.doc

发布:2017-02-08约1.13千字共4页下载文档
文本预览下载声明
实验 信道容量 一、实验目的: 了解信道容量的计算方法 二、实验内容与原理: 内容: 1. 令pe1(pe2(0.1和pe1(pe2(0.01,分别计算该对称信道的信道容量和最佳分布; 2. 令pe1(0.15,pe2(0.1和pe1(0.075pe2(0.01,分别计算该信道的信道容量和最 佳分布;信道容量是信息传输率的极限,当信息传输率小于信道容量时,通过信道编码,能够实现几乎无失真的数据传输;当数据分布满足最佳分布时,实现信源与信道的匹配,使得信息传输率能够达到信道容量。本实验利用信道容量的迭代算法,使用计算机完成信道容量的计算。 #includestdio.h #includemath.h int main() { double Pe1,Pe2,Pa1_=0,Pa2_=0; double b1a1,b2a1,b1a2,b2a2; double Pa1=0,Pa2=0; double I=0,max=0;//平均互信息量,最大平均互信息量 int count=0; printf(输入信道容量参数Pe1:);scanf(%lf,Pe1); printf(输入信道容量参数Pe2:);scanf(%lf,Pe2); printf(信道容量参数:Pe1=%lf Pe2=%f\n,Pe1,Pe2); b1a1=1-Pe1; b2a1=Pe1; b1a2=Pe2; b2a2=1-Pe2; for(Pa1=0.01;Pa1=1;Pa1=Pa1+0.01) { Pa2=1-Pa1; count=count+1; I=Pa1*b1a1*( log( b1a1/(Pa1*b1a1+Pa2*b1a2) )/log(2) ) +Pa1*b2a1*( log(b2a1/(Pa1*b2a1+Pa2*b2a2) )/log(2) ) +Pa2*b1a2*( log(b1a2/(Pa1*b1a1+Pa2*b1a2) )/log(2) ) +Pa2*b2a2*( log(b2a2/(Pa1*b2a1+Pa2*b2a2) )/log(2) ); printf(%10lf,I); if (Imax) { max=I; Pa1_=Pa1,Pa2_=Pa2; } else continue; } printf(\n); printf( 一共计算机了:%d\n,count); printf( 最大互信息量为:%lf\n,max); printf( 最大互信息量的P(a1)=%lf;P(a2)=%lf\n,Pa1_,Pa2_); } 四、运行结果
显示全部
相似文档