附录 Matlab源程序.doc

附录 Matlab源程序.doc

ID:29121731

大小:84.50 KB

页数:17页

时间:2018-12-16

附录 Matlab源程序.doc_第1页
附录 Matlab源程序.doc_第2页
附录 Matlab源程序.doc_第3页
附录 Matlab源程序.doc_第4页
附录 Matlab源程序.doc_第5页
资源描述:

《附录 Matlab源程序.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、附录Matlab源程序附录A信息熵%函数说明:%%H=entropy(P,r)为信息熵函数%%P为信源的概率矢量,r为进制数%%H为信息熵%%******************************%functionH=entropy(P,r)if(length(find(P<=0))~=0)error('Notaprob.vector,negativecomponent');%判断是否符合概率分布条件endif(abs(sum(P)-1)>10e-10)error('Notaprob.vector,co

2、mponentdonotaddupto1');endH=(sum(-P.*log2(P)))/(log2(r)+eps);附录B离散无记忆信道容量的迭代计算%信道容量C的迭代算法%%函数说明:%%[CC,Paa]=ChannelCap(P,k)为信道容量函数%%变量说明:%%P:输入的正向转移概率矩阵,k:迭代计算精度%%CC:最佳信道容量,Paa:最佳输入概率矩阵%%Pa:初始输入概率矩阵,Pba:正向转移概率矩阵%%Pb:输出概率矩阵,Pab:反向转移概率矩阵%%C:初始信道容量,r:输入符号数,s:输出

3、符号数%%**************************************************%function[CC,Paa]=ChannelCap(P,k)%提示错误信息if(length(find(P<0))~=0)error('Notaprob.vector,negativecomponent');%判断是否符合概率分布条件endif(abs(sum(P')-1)>10e-10)error('Notaprob.vector,componentdonotaddupto1')%判断是否符合

4、概率和为1end%1)初始化Pa[r,s]=size(P);Pa=(1/(r+eps))*ones(1,r);sumrow=zeros(1,r);Pba=P;%2)进行迭代计算n=0;C=0;CC=1;whileabs(CC-C)>=kn=n+1;%(1)先求PbPb=zeros(1,s);forj=1:sfori=1:rPb(j)=Pb(j)+Pa(i)*Pba(i,j);endend%(2)再求Pabsuma=zeros(1,s);forj=1:sfori=1:rPab(j,i)=Pa(i)*Pba(i,

5、j)/(Pb(j)+eps);suma(j)=suma(j)+Pa(i)*Pba(i,j)*log2((Pab(j,i)+eps)/(Pa(i)+eps));end%3)求信道容量CC=sum(suma);%4)求下一次Pa,即PaaL=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);

6、end%5)求下一次C,即CCCC=log2(sumaa);Pa=Paa;end%打印输出结果s0='很好!输入正确,迭代结果如下:';s1='最佳输入概率分布Pa:';s2='信道容量C:';s3='迭代次数n:';s4='输入符号数r:';s5='输出符号数s:';s6='迭代计算精度k:';fori=1:rB{i}=i;enddisp(s0);disp(s1),disp(B),disp(Paa);disp(s4),disp(r);disp(s5),disp(s);disp(s2),disp(CC);di

7、sp(s6),disp(k);disp(s3),disp(n);附录CShannon编码%函数说明:%%[p,x]=array(P,X)为按降序排序的函数%%P为信源的概率矢量,X为概率元素的下标矢量%%p为排序后返回的信源的概率矢量%%x为排序后返回的概率元素的下标矢量%%*******************************************%function[p,x]=array(P,X)P=[P;X];[l,n]=size(P);fori=1:nmax=P(1,i);maxN=i;MAX

8、=P(:,i);forj=i:nif(max1)if(i

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

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

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