一般离散无记忆信道容量的迭代(diédài)计算信道容量的迭代(diédài)算法1信道容量的迭代(diédài)算法的步骤一、用了matlab实现DMC容量(róngliàng)迭代的算法如下:第一步:首先(shǒuxiān)要初始化信源分布:即选取一个精度,本次中我选deta=0
000001
第二步:第三步:
第四步:第五步:若,则执行k=k+1,然后转第二步
直至转移条件不成立,接着执行下面的程序
第六步:输出迭代次数k和和,程序终止
Matlab实现clear;r=input('输入信源个数:');s=input('输入信宿个数:');deta=input('输入信道容量的精度:');Q=rand(r,s);%形成r行s列随机矩阵QA=sum(Q,2);%把Q矩阵每一行相加和作为一个列矩阵AB=repmat(A,1,s);%把矩阵(jǔzhèn)A的那一列(yīliè)复制为S列的新矩阵(jǔzhèn)%判断信道转移概率(gàilǜ)矩阵输入是否正确P=input('输入(shūrù)信道转移矩阵P:')%从这句话开始将用下面两句代替可自动生成信道转移矩阵[r,s]=size(P);fori=1:rif(sum(P(i,:))~=1)%检测概率转移矩阵是否行和为1
error('概率转移矩阵输入有误
')return;endforj=1:sif(P(i,j)1)%检测概率转移矩阵是否负值或大于1error('概率转移矩阵输入有误
')return;endendend%将上面的用下面两句代替可自动生成信道转移矩阵%disp('信道转移概率矩阵:')%P=Q
/B信道转移概率矩阵(每一个原矩阵的新数除以所在行的数总和)i=1:1:r;%设置循环首项为1,公差为1,末项为r(Q的行数)的循环p(i)=1/r;%原始信源分布r个信源,等概率分布disp('原始信源