信息论与编码实验报告-信道容量的迭代算法.doc
文本预览下载声明
PAGE 4
实验报告
课程名称:信息论与编码姓 名: 系: 专 业: 年 级: 学 号: 指导教师: 职 称:
年 月 日
实验四 信道容量的迭代算法
实验目的
1、进一步熟悉信道容量的迭代算法;
2、学习如何将复杂的公式转化为程序;
3、熟悉程序设计语言的数值计算程序和调试技术。
二、实验原理
(1)初始化信源分布(一般初始化为均匀分布),置迭代计数器k=0,设信道容量相对误差门限为,0,可设;
(2)
(3)
(4)
(5)如果,转向(7);
(6)置迭代序号,转向(2);
(7)输出和的结果;
(8)停止。
三、实验内容
1、已知:信源符号个数r、新宿符号个数s、信道转移概率矩阵P;
2、输入:任意的一个信道转移概率矩阵,信源符号个数、信宿符号个数和每一个具体的转移概率在运行时从键盘输入;
输出:最佳信源分布P*,信道容量C。
四、实验环境
Microsoft Windows 7、
Matlab 6.5
五、编码程序
aa.m文件:
clear;
r=input(输入信源个数:);
s=input(输入信宿个数:);
deta=input(输入信道容量的精度: );
Q=rand(r,s); %创建m*n随机分布矩阵
A=sum(Q,2);
B=repmat(A,1,s);
disp(信源转移概率矩阵:),p=Q./B %信源转移概率矩阵
i=1:1:r;
q(i)=1/r;
disp(原始信源分布:),q
c=-10e-8;
C=repmat(q,1,s);
for k=1:1:100000
m=p.*C; %后验概率的分子部分
a=sum(m); %后验概率的分母部分
su1=repmat(a,r,1);
t=m./su1; %后验概率矩阵
D=exp(sum(p.*log(t),2)); %信源分布的分子部分
su2=sum(D); %信源分布的分母部分
q=D/su2; %信源分布
C=repmat(q,1,s);
c(k+1)=log(sum(exp(sum(p.*log(t),2))))/log(2);
kk=abs(c(k+1)-c(k))/c(k+1);
if(kk=0.000001)
break;
end
end
disp(最大信道容量时的信源分布:q=),disp(q)
disp(最大信道容量:c=),disp(c(k+1))
六、实验结果结果
1)检验:运行aa.m
输入信源的个数:2
输入信宿的个数:3
输入信道容量的精度:0.000001
信宿转移概率矩阵:p =0.5000 0.3000 0.2000
0.3000 0.5000 0.2000
原始信源分布:q = 0.5000 0.5000
最佳信源分布:q= 0.5000 0.5000
最大信道容量:c= 0.0365
2)计算信源个数为3,信宿个数为5的信道容量:
运行aa.m
输入信源的个数:3
输入信宿的个数:5
输入信道容量的精度:0.000001
信宿转移概率矩阵:p =0.0484 0.1385 0.3058 0.2845 0.2227
0.2104 0.2471 0.1077 0.3762 0.0585
0.3430 0.0800 0.1808 0.3428 0.0534
原始信源分布:q = 0.3333 0.3333 0.3333
最佳信源分布:q =0.4691 0.1794 0.3515
最大信道容量:c =0.1559
七、实验总结
通过实验,我们对信道容量的理解更加深刻了。信道容量是指信道能无错误传送的最大信息率。信道的输入、输出都取值于离散符号集,且都用一个随机变量来表示的信道就是离散单符号信道。由于信道中存在干扰,因此输入符号在传输中将会产生错误,这种信道干扰对传输的影响可用传递概率来描述。为了评价实际信道的利用率,应具体计算已给信道的容量。这是一个求最大值的问题。由于互信息对输入符号概率而言是凸函数,其极值将为最大值,因此这也就是求极值的问题。对于离散信道,P(x)是一组数,满足非负性和归一性等条件,可用HYPERLINK /view/154
显示全部