• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Matlab
  • 标签:

资源简介

对一般信道容量进行计算的简单程序,程序说明见注释

资源截图

代码片段和文件信息

clc;clear all;
N = input(‘输入信源符号X的个数N=‘); 
M = input(‘输出信源符号Y的个数M=‘); 
p_yx=zeros(NM);   %程序设计需要信道矩阵初始化为零
fprintf(‘输入信道矩阵概率\n‘)
for i=1:N
     for j=1:M
     p_yx(ij)=input(‘p_yx=‘);%输入信道矩阵概率
     if p_yx(i)<0
     error(‘不符合概率分布‘)
     end
     end
end
for i=1:N   %各行概率累加求和
     s(i)=0;
     for j=1:M
         s(i)=s(i)+p_yx(ij);
     end
end
for i=1:N     %判断是否符合概率分布
if (s(i)<=0.999999||s(i)>=1.000001)
   error(‘不符合概率分布‘)
end
end
b=input(‘输入迭代精度:‘);%输入迭代精度
for i=1:N
     p(i)=1.0/N;   %取初始概率为均匀分布
end
for j=1:M   %计算q(j)
     q(j)=0;
   for i=1:N
       q(j)=q(j)+p(i)*p_yx(ij);
   end
end        
for i=1:N     %计算a(i)
     d(i)=0;
     for j=1:M
         if(p_yx(ij)==0)
           d(i)=d(i)+0;
         else
         d(i)=d(i)+p_yx(ij)*log(p_yx(ij)/q(j));
       end
   end
 

评论

共有 条评论

相关资源