信息论实验二报告(5)
发布时间:2021-06-09
发布时间:2021-06-09
%函数说明: %
%[Pha,Rmin,Dmax,Smax]=RateDF(P,d,s)为信息率失真函数 %
%变量说明: %
%Pa:信源的输入概率矩阵,d:失真矩阵,S:拉氏乘子 %
%Pba:最佳正向转移概率矩阵,Smax:最大拉氏乘子 %
%Rmin:最小信息率,Dmax:允许的最大失真度 %
%Pb:信源的输出概率矩阵,D:允许的失真度,R:信息率 %
%r:输入信源数,s:输出信源数 %
%*********************************************************************% function [Pba,Rmin,Dmax,Smax]=ratedf(Pa,d,S)
% 提示错误信息
[r,s]=size(d);
if (length(find(Pa<=0)) ~=0)
error('Not a prob.vector, should be pesitive component!');
%判断是否符台概率分布条件
end
if (abs(sum(Pa)- 1 )>=10e-10)
error('Not a prob.vector, component do not add up to 1!')
%判断是否符合概率和为1
end
if (r~=length(Pa))
error('The parameters do not match!'); %判断参数是否一致
end
%第一步
pba=[];
RS=[]; %R(s)函数初始化
DS=[]; %D(s)函数初始化
m=1; %m为S循环的次数
while(1) % 外层循环.对S的循环
Pba(1:r,1:s, 1)=1/s*ones(r,s); %求信道正向转移矩阵Pba
%第二步
for j=1:s
Pb(j,1)=0;
for i=1:r
Pb(j,1 )=Pb(j, 1)+Pa(i)*Pba(i,j,1 );
%求信源的输出概率矩阵,即Pb(j,1)
end
end
for i=1:r
temp(i)=0;
for j=1:s
temp(i)=temp(i) + Pb(j,1)*exp(S(m) *d(i,j));
% temp为临时项,求Pha(i,j,2)时表达式的分母
下一篇:论伽利略思想对近代物理的贡献