离散无记忆信道容量的matlab算法.doc

离散无记忆信道容量的matlab算法.doc

ID:56718895

大小:70.50 KB

页数:2页

时间:2020-07-06

离散无记忆信道容量的matlab算法.doc_第1页
离散无记忆信道容量的matlab算法.doc_第2页
资源描述:

《离散无记忆信道容量的matlab算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、function[I,pp]=channelcapacity(P,k)%I是信道容量,pp是最佳入口分布,P是信道概率转移矩阵,k是迭代精度ifnargin<2k=10e-1;%此处设置的精度不高是因为精度太高影响运行时间,之前设置过较高的,导致电脑死了!end[a,b]=size(P);%a,b分别是输入和输出的符号数,也分别是P的行数和列数pa=(1/(a+eps))*ones(1,a);%初始化输入分布pa为等概分布。eps表示一个非常小的数,以%此来避免分母为零的情况sumrow=zeros(1,a);Pji=P;%正向概率转移矩阵即为信道概率转移矩阵n=0;%迭代次数Io=0;%

2、Io是初始信道容量pp=1;whileabs(pp-Io)>=k%迭代过程n=n+1;pb=zeros(1,b);%pb是输出概率forj=1:bfori=1:apb(j)=pb(j)+pa(i)*Pji(i,j);endendsuma=zeros(1,b);forj=1:bfori=1:aPij(j,i)=pa(i)*Pji(i,j)/(pb(j)+eps);%Pij是反向概率转移矩阵suma(j)=suma(j)+pa(i)*Pji(i,j)*log2((Pij(j,i)+eps)/(pa(i)+eps));endendIo=sum(suma);%求信道容量的过程L=zeros(1,a

3、);sumaa=0;fori=1:aforj=1:bL(i)=L(i)+Pji(i,j)*log(Pij(j,i)+eps);endaf(i)=exp(L(i));endsumaa=sum(af);fori=1:app(i)=af(i)/(sumaa+eps);endI=log2(sumaa);pa=pp;enddisp('最佳输入分布pa:'),disp(pp);disp('输入的符号数a:'),disp(a);disp('输出的符号数b:'),disp(b);disp('信道容量I:'),disp(I);disp('输出迭代精度k:'),disp(k);disp('输出迭代次数n:')

4、,disp(n);检验过程:P=[0.5,0.3,0.2;0.3,0.5,0.2]I=0.036bitP=[1/2,1/3,1/6;1/6,1/2,1/3;1/3,1/6,1/2]I=0.126bit① 输入P=[1,0;1,0;1/2,1/2;0,1;0,1]回车② channelcapacity(P)即可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。