资源描述:
《1991-1995年考研英语试题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、附录二MATLAB源程序A信源熵entropy%%函数说明:%%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('Notaprobvector,componentdonotaddupto1');%判断是否符合概率和为1
2、endH=(sum(-P.*log2(P)))/(log2(r)+eps);B离散无记忆信道容量的迭代计算%信道容量C的迭代算法%%IterativeComputationsonDiscreteMemorylessChannelCapacity%%函数说明:%%[CC,Paa]=ChannelCap(P,k)为信道容量函数%%变量说明:%%P:输入的正向转移概率矩阵,k:迭代计算精度%%CC:最佳信道容量,Paa:最佳输入概率矩阵%%Pa:初始输入概率矩阵,Pba:正向转移概率矩阵%%Pb:输出概率矩阵,Pab:反向转移概率矩阵%%C:初始信道窖量.n输入符号数,s:输出符号数%28
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')%判断是否符合概率和为1end%1)初始化Pa[r,s]=size(P);Pa=(1/(r+eps))*ones(1,r)
4、;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:s28fori=1:rPab(j,i)=Pa(i)*Pba(i,j)/(Pb(j)+eps);suma(j)=suma(j)+Pa(i)*Pba(i,j)*log2((Pab(j,i)+eps)/(Pa(i)+eps));endend%3)求信
5、道容量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);end%5)求下次C即CCCC=log2(sumaa);Pa=Paa;end%打印输出结果s0='很好!输入正确,选代结果如下:';s1='最佳输入概率分布Pa:';s2='信道容量c:'s3='迭代次数n:';s4='输入符号数r:';28s5='
6、输出符号数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);disp(s6),disp(k);disp(s3),disp(n);C无失真信源编码1.按降序排列概率的函数%[p,x]=array(P)为按降序排序的函数%%P为信源的概率矢量,x为概率元素的下标矢量%%P为排序后返回的信源的概率矢量%%x为排序后返回的概率元素的下标矢量%%***************************
7、***%function[p,x]=array(P)n=length(P);X=1:n;P=[P;X];fori=1:nmax=P(1,i);maxN=i;MAX=P(:,i);28forj=i:nif(max
1)if(i