文档详情

实验三_信道容量计算.pdf

发布:2017-07-05约字共5页下载文档
文本预览下载声明
未信的我 实验名称:实验三 信道容量计算 一、实验目的: 了解信道容量的计算方法 二、实验内容与原理: 内容: 1.令pe1  pe2 0.1 和pe1  pe2  0.01 ,分别计算该对称信道的信道容量和最佳分布; 2 .令pe1  0.15 ,pe2  0.1和pe1  0.075 pe2  0.01 ,分别计算该信道的信道容量和最 佳分布; 信道容量是信息传输率的极限,当信息传输率小于信道容量时,通过信道编 码,能够实现几乎无失真的数据传输;当数据分布满足最佳分布时,实现信源与 信道的匹配,使得信息传输率能够达到信道容量。本实验利用信道容量的迭代算 法,使用计算机完成信道容量的计算。 三、实验步骤 1.分析实验算法 2.在草稿纸上列出数学运算公式 3.将运算效果转换为具体的代码 四、实验数据及结果分析(可附程序运行截图) 未信的我 未信的我 未信的我 五、代码附录 #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_); } 未信的我 六、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 计算公式可先在草稿纸上列出来,在通过代码实现公式,过程要细致,避免 低级错误。
显示全部
相似文档