1实验二一般信道容量迭代算法1.实验目的掌握一般离散信道的迭代运算方法。2.实验要求1)理解和掌握信道容量的概念和物理意义2)理解一般离散信道容量的迭代算法3)采用Matlab编程实现迭代算法4)认真填写试验报告3.算法步骤①初始化信源分布),,,,,(21)0(ppppPri(一般初始化为均匀分布),置迭代计数器k=0,设信道容量相对误差门限为,0,可设C)0(;②ikiijkiijkjipppp)()()(sjri,,1;,,1③ikjijijkjijijkippp)()()1(lnexplnexpri,,1④ikjijijkpC)()1(lnexpln⑤如果CCCkkk)1()()1(,转向⑦;⑥置迭代序号kk1,转向②;⑦输出pki)1(和Ck)(1的结果;⑧停止。4.代码P=input('转移概率矩阵P=')e=input('迭代精度e=')[r,s]=size(P);n=0;C=0;C_k=0;C_k1=0;X=ones(1,r)/r;2A=zeros(1,r);B=zeros(r,s);%初始化各变量while(1)n=n+1;fori=1:rforj=1:sB(i,j)=log(P(i,j)/(X*P(:,j))+eps);ifP(i,j)==0B(i,j)=0;elseendendA(1,i)=exp(P(i,:)*B(i,:)');endC_k=log2(X*A');C_k1=log2(max(A));if(abs(C_0-C_1)e)C=C_0;%检验是否满足迭代精度fprintf('迭代次数n=\n',n)%满足则输出相关的被求量fprintf('信道容量:C=\n',C)disp('最佳分布P(x)=');disp(X);break;else%不满足则继续迭代X=(X.*A)/(X*A');continue;endend5.计算下列信道的信道容量例一:0.980.020.050.95P=0.98000.02000.05000.950e=1.0000e-005迭代次数:n=5信道容量:C=0.785847比特/符号最佳分布P(x)=30.51290.4871例二:0.60.40.010.99P=0.60000.40000.01000.9900e=1.0000e-005迭代次数:n=17信道容量:C=0.368768比特/符号最佳分布P(x)=0.42380.5762例三:0.790.160.050.050.150.8P=0.79000.16000.05000.05000.15000.8000e=1.0000e-005迭代次数:n=6信道容量:C=0.571215比特/符号最佳分布P(x)=0.50090.4991.思考题:迭代精度指的是什么?它对计算结果的影响?迭代精度小数点的位数与迭代次数相同,迭代精度越小,信道容量越大。