欢迎来到天天文库
浏览记录
ID:57096191
大小:2.46 MB
页数:7页
时间:2020-08-02
《实验一--信道容量的迭代算法上课讲义.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一--信道容量的迭代算法精品文档信息工程12班吴玉明52111209实验一信道容量的迭代算法一、实验目的1、掌握信道容量的概念。2、了解迭代法计算信道容量的流程。3、熟悉Matlab程序的设计和调试方法。二、实验要求1、学习Matlab软件编程和调试方法;2、输入:任意一个信道转移概率矩阵。包括信源符号个数、信宿符号个数、信道转移概率,在程序运行时从键盘输入;3、输出:输入的信道矩阵、信道容量C。三实验算法程序clc;clearall;N=input('输入信源符号X的个数N=');M=inp
2、ut('输出信源符号Y的个数M=');p_yx=zeros(N,M);%程序设计需要信道矩阵初始化为零fprintf('输入信道矩阵概率')fori=1:Nforj=1:Mp_yx(i,j)=input('p_yx=');%输入信道矩阵概率ifp_yx(i)<0收集于网络,如有侵权请联系管理员删除精品文档error('不符合概率分布')endendendfori=1:N%各行概率累加求和s(i)=0;forj=1:Ms(i)=s(i)+p_yx(i,j);endendfori=1:N%判断是否
3、符合概率分布if(s(i)<=0.999999
4、
5、s(i)>=1.000001)error('不符合概率分布')endendb=input('输入迭代精度:');%输入迭代精度fori=1:Np(i)=1.0/N;%取初始概率为均匀分布endforj=1:M%计算q(j)q(j)=0;fori=1:Nq(j)=q(j)+p(i)*p_yx(i,j);endendfori=1:N%计算a(i)d(i)=0;forj=1:Mif(p_yx(i,j)==0)d(i)=d(i)+0;elsed(i)=d(
6、i)+p_yx(i,j)*log(p_yx(i,j)/q(j));endenda(i)=exp(d(i));endu=0;fori=1:N%计算uu=u+p(i)*a(i);收集于网络,如有侵权请联系管理员删除精品文档endIL=log2(u);%计算ILIU=log2(max(a));%计算IUn=1;while((IU-IL)>=b)%迭代计算fori=1:Np(i)=p(i)*a(i)/u;%重新赋值p(i)endforj=1:M%计算q(j)q(j)=0;fori=1:Nq(j)=q(j)
7、+p(i)*p_yx(i,j);endendfori=1:N%计算a(i)d(i)=0;forj=1:Mif(p_yx(i,j)==0)d(i)=d(i)+0;elsed(i)=d(i)+p_yx(i,j)*log(p_yx(i,j)/q(j));endenda(i)=exp(d(i));endu=0;fori=1:N%计算uu=u+p(i)*a(i);endIL=log2(u);%计算ILIU=log2(max(a));%计算IUn=n+1;endfprintf('信道矩阵为:');收集于网
8、络,如有侵权请联系管理员删除精品文档disp(p_yx);fprintf('迭代次数n=%d',n);fprintf('信道容量C=%f比特/符号',IL);五信道容量迭代算法流程图四.实验的算法:1.初始化信源分布:pi=,循环变量k=1,门限△,C(0)=-;2.3.4.5.若,则k=k+1,转第2步6.输出*=和,终止。五算法流程图如下:否是输入结束收集于网络,如有侵权请联系管理员删除精品文档六实验截图(一)(二)收集于网络,如有侵权请联系管理员删除精品文档七实验总结与体会本次试验是建立
9、在迭代的基础上,首先要深刻理解信道容量的迭代算法,其次是,如何将复杂的公式转化为程序通过此次实验,我了解了信道容量的迭代算法的基本知识,学会了如何将复杂的公式如何用程序语言描述出来,掌握了高级语言数值计算过程程序的设计和调试的相关知识,对于将实际问题公式转化为程序的能力有提高收集于网络,如有侵权请联系管理员删除
此文档下载收益归作者所有