資源簡介
對一般信道容量進行計算的簡單程序,程序說明見注釋
代碼片段和文件信息
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
?
- 上一篇:s7-200程序電機正反轉控制
- 下一篇:Matlab 龍格庫塔解常微分方程組練習
評論
共有 條評論