www.gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第7章/hmessage.m

    function r=hmessage(x,f,nx,my)
% x为输出的概率分布,f为转移概率矩阵,nx为输出的符号的可选个数,即x的元素
% 个数,nx同时也是矩阵f的行数,my是矩阵的列数,也即输出概率空间中的元素个数
sum=0;
for i=1:nx
    for j=1:my
      t=f(i,j)*x(i)
      %求平均互信息量
      sum=sum-t*log(f(i,j))/log(2);
    end
end
r=sum;
disp('平均互信息量为');
double(r)            %返回结果