您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 任意信道容量的计算及MATLAB仿真与分析
姓名:孟云飞学号Y080430任意信道的信道容量C及最佳输入分布P_X源程序function[P_X,C,N]=contmax(P_YX,e)%计算任意信道的信道容量C及最佳输入分布P_X%P_X-------输入概率分布%C----------信道容量N----------迭代次数%P_YX-----DMC信道的转移矩阵e-----------精度iflength(find(P_YX0)~=0)error('Notaprobablevector.Negtivecomponent');endifabs(sum(P_YX')-1)10e-10error('Notaprobablevector,Componentdonotaddupto1');end%变量初始化C1=1;C=0;N=0;r=size(P_YX);P_X=ones(1,r(1))/r(1);%调整P_YX的零元素值Pyx=(P_YX==0).*eps;P_YX=P_YX+Pyx;%迭代求解while(abs(C1-C))eP_Y=P_X*P_YX;I1=sum((P_YX.*log2(P_YX))');I2=log2(P_Y)*(P_YX');BETA=exp(I1-I2);B=P_X*(BETA');C1=log(B);C=log(max(BETA));P_X=P_X.*BETA/B;N=N+1;endP_YX=0.50000.30000.20000.40000.30000.30000.10000.60000.4000[P_X,C,N]=contmax(P_YX,0.001)P_X=0.35990.00230.6378C=0.1596N=40[P_X,C,N]=contmax(P_YX,0.0001)P_X=0.36200.00020.6378C=0.1591N=58由上面结果可以看出,不同的停止迭代容差限对信道容量没有太大影响P_YX=0.33330.33330.33330.33330.33330.33330.33330.33330.3333[P_X,C,N]=contmax(P_YX,0.00001)P_X=0.33330.33330.3333C=0N=1P_YX=0.50000.30000.20000.40000.30000.30000.30000.30000.4000[P_X,C,N]=contmax(P_YX,0.00001)P_X=0.50720.00020.4926C=0.0427N=181P_YX=0.50000.30000.20000.40000.30000.30000.10000.60000.4000[P_X,C,N]=contmax(P_YX,0.00001)P_X=0.36220.00000.6378C=0.1590N=76P_YX=0.80000.10000.10000.20000.70000.10000.10000.30000.6000[P_X,C,N]=contmax(P_YX,0.00001)P_X=0.41140.24120.3474C=0.4551N=26由上面的结果可以看出信道容量和转移概率矩阵有关,不同的信道参数信道容量不同,当转移概率矩阵的每行的概率越趋于均匀分布,信道容量就越小。
本文标题:任意信道容量的计算及MATLAB仿真与分析
链接地址:https://www.777doc.com/doc-5218290 .html