欢迎来到天天文库
浏览记录
ID:60748187
大小:17.00 KB
页数:3页
时间:2020-12-13
《matlab-信道容量的迭代计算.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《信息论基础》课程实验报告(四)班级:计算072班姓名:白梅学号:实验内容:信道容量的迭代计算。实验要求:1.输入一个信道矩阵;2.输出下列内容:(1)最佳输入概率分布;(2)信道容量;(3)迭代次数;(4)输入符号的个数;(5)输出符号的个数;(6)迭代计算精度;3.实验报告中要包括源代码和输入、输出结果。实验源程序如下:function[CC,Paa]=ChannelCap(P,k)if(length(find(P<0))~=0)error('Notaprob.vector,negativecomponent,不是概率分布');endif(abs(sum(P')-1)>10e-10
2、)error('Notaprob.vector,componentdonotaddupto1。不是概率分布');end[r,s]=size(P);Pa=(1/(r+eps))*ones(1,r);sumrow=zeros(1,r);Pba=P;n=0;C=0;CC=1;whileabs(CC-C)>=kn=n+1;Pb=zeros(1,s);forj=1:sfori=1:rPb(j)=Pb(j)+Pa(i)*Pba(i,j);endendsuma=zeros(1,s);forj=1:sfori=1:rPab(j,i)=Pa(i)*Pba(i,j)/(Pb(j)+eps);suma(j)
3、=suma(j)+Pa(i)*Pba(i,j)*log2((Pab(j,i)+eps)/(Pa(i)+eps));endendC=sum(suma);L=zeros(1,r);sumaa=0;fori=1:rforj=1:sL(i)=L(i)+Pba(i,j)*log(Pab(j,i)+eps);enda(i)=exp(L(i));endsumaa=sum(a);fori=1:rPaa(i)=a(i)/(sumaa+eps);endCC=log2(sumaa);Pa=Paa;s0='很好!输入正确,迭代结果如下:';s1='最佳输入概率分布Pa:';s2='信道容量C:';s3='迭代
4、次数n:';s4='输入符号数r:';s5='输出符号数s:';s6='迭代计算精度k:';fori=1:rB{i}=i;endenddisp(s0);disp(s1),disp(B),disp(Paa);disp(s4),disp(r);disp(s5),disp(s);disp(s2),disp(CC);disp(s6),disp(k);disp(s3),disp(n);设置k=0.00001>>k=0.00001k=1.0000e-005输入信道矩阵P:>>P=[1/21/20;0.20.30.5]P=0.50000.500000.20000.30000.5000得到输出结果:>
5、>ChannelCap(P,k)很好!输入正确,迭代结果如下:最佳输入概率分布Pa:[1][2]0.59490.4051输入符号数r:2输出符号数s:3信道容量C:0.3263迭代计算精度k:1.0000e-005迭代次数n:8ans=0.3263
此文档下载收益归作者所有