离散信源熵信道容量实验报告Word格式文档下载.doc
《离散信源熵信道容量实验报告Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《离散信源熵信道容量实验报告Word格式文档下载.doc(5页珍藏版)》请在冰豆网上搜索。
熵是信源符号的平均信息量,是信源符号的平均不确定度。
信道容量概念:
在信道可以传输的基本前提下,对信源的一切可能的概率分布而言,信道能够传输的最大(接收)熵速率称为信道容量。
意义:
求出了某个信道的信道容量,也就找到了信源的最佳概率分布。
从而指导人们改造信源,使之最大可能地利用信道的传输能力。
2、写出离散信源熵、离散信道容量计算的基本步骤,画出实现离散信源熵、离散信道容量计算的程序流程图;
离散信源熵的计算步骤:
信道容量的计算步骤:
否
是
输入
结束
3、
(1)讨论信源的熵的大小与前后符号之间相关性的关系,讨论信道容量与信源先验概率及信道转移概率的关系。
信源的相关性是信源符号间的依赖程度的度量。
由于信源输出符号间的依赖关系也就是信源的相关性使信源的实际熵减小。
信源输出符号间统计约束关系越长,信源的实际熵越小。
当信源输出符号间彼此不存在依赖关系且为等概率分布时,信源的实际熵等于最大熵。
(2)信道容量与信源先验概率及信道转移概率的关系。
信道容量是信道的一个参数,反映了信道所能传输的最大信息量,其大小与信源无关。
对不同的输入概率分布,互信息一定存在最大值。
我们将这个最大值定义为信道的容量。
一但转移概率矩阵确定以后,信道容量也完全确定了。
尽管信道容量的定义涉及到输入概率分布,但信道容量的数值与输入概率分布无关。
我们将不同的输入概率分布称为试验信源,对不同的试验信源,互信息也不同。
其中必有一个试验信源使互信息达到最大。
这个最大值就是信道容量。
实验结果
计算离散信源熵:
计算离散信道容量:
3实验总结和心得
通过本次的试验,让我加深了对信息论与编码这门课知识点的认识,学会了怎么样去计算信源熵以及信道容量,怎样去把它具体实现出来。
在此次实验过程中,让我认识到了做实验之前预习是很重要的,通过查找资料可以解决一些我们不能解决的问题的方法。
还有就是不懂的问题及时问老师,能解决的问题随堂解决。
4附录(代码)
4
计算信道容量:
clc;
clear
all;
N
=
input('
输入信源符号X的个数N='
);
M
输出信源符号Y的个数M='
p_yx=zeros(N,M);
%程序设计需要信道矩阵初始化为零
fprintf('
输入信道矩阵概率\n'
)
for
i=1:
N
j=1:
p_yx(i,j)=input('
p_yx='
%输入信道矩阵概率
if
p_yx(i)<
0
error('
不符合概率分布'
end
%各行概率累加求和
s(i)=0;
s(i)=s(i)+p_yx(i,j);
%判断是否符合概率分布
(s(i)<
=0.999999||s(i)>
=1.000001)
end
b=input('
输入迭代精度:
'
%输入迭代精度
p(i)=1.0/N;
%取初始概率为均匀分布
%计算q(j)
q(j)=0;
q(j)=q(j)+p(i)*p_yx(i,j);
%计算a(i)
d(i)=0;
if(p_yx(i,j)==0)
d(i)=d(i)+0;
else
d(i)=d(i)+p_yx(i,j)*log(p_yx(i,j)/q(j));
a(i)=exp(d(i));
u=0;
%计算u
u=u+p(i)*a(i);
IL=log2(u);
%计算IL
IU=log2(max(a));
%计算IU
n=1;
while((IU-IL)>
=b)
%迭代计算
p(i)=p(i)*a(i)/u;
%重新赋值p(i)
n=n+1;
信道矩阵为:
\n'
disp(p_yx);
迭代次数n=%d\n'
n);
信道容量C=%f比特/符号'
IL);
%用MATLAB编程实现单符号离散无记忆信源熵的计算
functionH=entropy(p)
%该函数用来计算包含任意多个符号的信源熵(比特)
%p为DMS的概率分布,行向量
ifsum(p)~=1%判断是否满足概率完备性(~=不等于的意思)
error('
!
不满足概率完备性,请重新输入信源分布'
)
return;
else
L=length(p)%得到信源符号的个数
H=0;
%熵值初始化为零
fori=1:
L
H=H-p(i)*log2(p(i));
%累加熵函数各个子项
end
end
%sum(A):
求数组A的元素之和
%length(X):
求矢量X的长度
%log2(X):
计算以2为底X的对数
%error:
显示错误信息