预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

..一般离散无记忆信道容量的迭代计算信道容量的迭代算法1信道容量的迭代算法的步骤一、用了matlab实现DMC容量迭代的算法如下:第一步:首先要初始化信源分布:1P(k)i01r置k0选1deta0.即选取一个精度本次中我选irdeta=0.000001。p(k)p第二步:根据式子t(k)iji得到反向转移概率矩阵{t(k)}。ijp(k)pijijii第三步:exp[plogtk]jiij由式pk1j计算Pk1pk1iiexp[plogtk]jiijij第四步:rs由式Ck1IPk1tklogexpplogtk计算Ck1。jiiji0j0第五步:C(k1)C(k)若deta则执行k=k+1然后转第二步。直至转移条件不成C(k1)立接着执行下面的程序。第六步:输出迭代次数k和Ck1和Pk1程序终止。2.Matlab实现clear;r=input('输入信源个数:');s=input('输入信宿个数:');deta=input('输入信道容量的精度:');1/5..Q=rand(rs);%形成r行s列随机矩阵QA=sum(Q2);%把Q矩阵每一行相加和作为一个列矩阵AB=repmat(A1s);%把矩阵A的那一列复制为S列的新矩阵%判断信道转移概率矩阵输入是否正确P=input('输入信道转移矩阵P:')%从这句话开始将用下面两句代替可自动生成信道转移矩阵[rs]=size(P);fori=1:rif(sum(P(i:))~=1)%检测概率转移矩阵是否行和为1.error('概率转移矩阵输入有误!!')return;endforj=1:sif(P(ij)<0||P(ij)>1)%检测概率转移矩阵是否负值或大于1error('概率转移矩阵输入有误!!')return;endendend%将上面的用下面两句代替可自动生成信道转移矩阵%disp('信道转移概率矩阵:')%P=Q./B信道转移概率矩阵(每一个原矩阵的新数除以所在行的数总和)i=1:1:r;%设置循环首项为1公差为1末项为r(Q的行数)的循环p(i)=1/r;%原始信源分布r个信源等概率分布disp('原始信源分布:')2/5..p(i)E=repmat(p'1s);%把r个等概率元素组成一列复制为s列fork=1:1:1/detam=E.*P;%m=p.*E;%后验概率的分子部分a=sum(m);%把得到的矩阵m每列相加之和构成一行su1=repmat(ar1);%把得到的行矩阵a复制r行成一新矩阵sul后验概率的分母部分t=m./su1;%后验概率矩阵n=exp(sum(P.*log(t)2));%信源分布的分子部分su2=sum(n);%信源分布的分母部分