离散信源熵信道容量实验报告.doc
- 文档编号:89201
- 上传时间:2022-10-02
- 格式:DOC
- 页数:5
- 大小:165.50KB
离散信源熵信道容量实验报告.doc
《离散信源熵信道容量实验报告.doc》由会员分享,可在线阅读,更多相关《离散信源熵信道容量实验报告.doc(5页珍藏版)》请在冰豆网上搜索。
计算离散信源熵、离散信道容量
1实验任务和目的
实验任务:
(1)简要总结信源的熵、信道容量的物理意义,概念;
(2)写出离散信源熵、离散信道容量计算的基本步骤,画出实现离散信源熵、离散信道容量计算的程序流程图;
(3)讨论信源的熵的大小与前后符号之间相关性的关系,讨论信道容量与信源先验概率及信道转移概率的关系。
实验目的:
掌握信源的熵、信道容量的物理意义,概念;熟练掌握离散信源熵、离散信道容量的计算方法步骤;利用Matlab编写离散信源熵、离散信道容量的计算程序;验证程序的正确性。
2实验过程和结果
2.1实验过程
1、简要总结信源的熵、信道容量的物理意义,概念。
信源熵的物理意义是指信源中的各个符号的平均不确定性;熵是信源符号的平均信息量,是信源符号的平均不确定度。
信道容量概念:
在信道可以传输的基本前提下,对信源的一切可能的概率分布而言,信道能够传输的最大(接收)熵速率称为信道容量。
意义:
求出了某个信道的信道容量,也就找到了信源的最佳概率分布。
从而指导人们改造信源,使之最大可能地利用信道的传输能力。
2、写出离散信源熵、离散信道容量计算的基本步骤,画出实现离散信源熵、离散信道容量计算的程序流程图;
离散信源熵的计算步骤:
信道容量的计算步骤:
否
是
输入
结束
3、
(1)讨论信源的熵的大小与前后符号之间相关性的关系,讨论信道容量与信源先验概率及信道转移概率的关系。
信源的相关性是信源符号间的依赖程度的度量。
由于信源输出符号间的依赖关系也就是信源的相关性使信源的实际熵减小。
信源输出符号间统计约束关系越长,信源的实际熵越小。
当信源输出符号间彼此不存在依赖关系且为等概率分布时,信源的实际熵等于最大熵。
(2)信道容量与信源先验概率及信道转移概率的关系。
信道容量是信道的一个参数,反映了信道所能传输的最大信息量,其大小与信源无关。
对不同的输入概率分布,互信息一定存在最大值。
我们将这个最大值定义为信道的容量。
一但转移概率矩阵确定以后,信道容量也完全确定了。
尽管信道容量的定义涉及到输入概率分布,但信道容量的数值与输入概率分布无关。
我们将不同的输入概率分布称为试验信源,对不同的试验信源,互信息也不同。
其中必有一个试验信源使互信息达到最大。
这个最大值就是信道容量。
实验结果
计算离散信源熵:
计算离散信道容量:
3实验总结和心得
通过本次的试验,让我加深了对信息论与编码这门课知识点的认识,学会了怎么样去计算信源熵以及信道容量,怎样去把它具体实现出来。
在此次实验过程中,让我认识到了做实验之前预习是很重要的,通过查找资料可以解决一些我们不能解决的问题的方法。
还有就是不懂的问题及时问老师,能解决的问题随堂解决。
4附录(代码)
4
计算信道容量:
clc;clear all;
N = input('输入信源符号X的个数N=');
M = input('输出信源符号Y的个数M=');
p_yx=zeros(N,M); %程序设计需要信道矩阵初始化为零
fprintf('输入信道矩阵概率\n')
for i=1:
N
for j=1:
M
p_yx(i,j)=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(i,j);
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(i,j);
end
end
for i=1:
N %计算a(i) d(i)=0;
for j=1:
M
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));
end
end
a(i)=exp(d(i)); end u=0;
for i=1:
N %计算u
u=u+p(i)*a(i); end
IL=log2(u); %计算IL
IU=log2(max(a));%计算IU n=1;
while((IU-IL)>=b) %迭代计算
for i=1:
N
p(i)=p(i)*a(i)/u; %重新赋值p(i)
end
for j=1:
M %计算q(j)
q(j)=0;
for i=1:
N
q(j)=q(j)+p(i)*p_yx(i,j);
end
end
for i=1:
N %计算a(i)
d(i)=0;
for j=1:
M
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));
end
end
a(i)=exp(d(i)); end u=0;
for i=1:
N %计算u
u=u+p(i)*a(i);
end
IL=log2(u); %计算IL
IU=log2(max(a));%计算IU n=n+1;
end
fprintf('信道矩阵为:
\n'); disp(p_yx);
fprintf('迭代次数n=%d\n',n);
fprintf('信道容量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:
显示错误信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 信源 信道容量 实验 报告