信息论上机实验报告
- 格式:doc
- 大小:273.00 KB
- 文档页数:10
信息论与编码实验报告
实验一:计算离散信源的熵
一、实验设备: 1、计算机
2、软件:Matlab 二、实验目的:
1、熟悉离散信源的特点;
2、学习仿真离散信源的方法
3、学习离散信源平均信息量的计算方法
4、熟悉 Matlab 编程; 三、习题:
1. 甲地天气预报构成的信源空间为:
1111(),,,8482
X p x ⎡⎤⎡⎤⎢
⎥=⎢⎥⎢⎥⎣⎦
⎣⎦ 小雨
云 大雨晴 乙地信源空间为:
17(),88
Y p y ⎡⎤⎡⎤⎢
⎥=⎢⎥⎢⎥⎣⎦
⎣⎦
小雨晴 求此两个信源的熵。求各种天气的自信息量。
代码:
x=[1/2,1/4,1/8,1/8]; y=[7/8,1/8];
HX=sum(-x.*log2(x)) HY=sum(-y.*log2(y)) IX=-log2(x) IY=-log2(y) 答案:() 1.75;
()0.5436H X H Y ==
2、 某信息源的符号集由A 、B 、C 、D 、E 组成,设每一符号独立出现,其出现的概率分别为,1/4,1/8,1/8,3/16,5/16,
试求该信源符号的平均信息量。
代码:
x=[1/4,1/8,1/8,3/16,5/16]; HX=sum(-x.*log2(x))
答案:H(X) = 2.2272bit/符号
3、设有四个消息分别以概率1/4,1/8,1/8,1/2传送,每一消息的出现是相互独立的。试计算其平均信息量。
代码:
x=[1/4,1/8,1/8,1/2]; HX=sum(-x.*log2(x)) 答案:H(X) =1.75bit/符号
4. 设一个二元信源(只有0和1两种符号)其概率空间为:
(),1X p x p p ⎡⎤⎡⎤=⎢⎥⎢⎥-⎣⎦⎣⎦
0 1
编程画出H 与p 的关系,并说明当P 呈什么分布时,平均信息量达到最大值。
(说明:H=-p.*log2(p)-(1-p).log2(1-p);) 代码:
p= 1/1000000:1/1000:1;
H=-p.*log2(p)-(1-p).*log2(1-p); plot(p,H) grid on xlabel('p'); ylabel('HP'); 图:
实验二:验证熵的可加性与强可加性
1. 【例
2.6】
有一离散无记忆信源
123111(),,244a a a X p x ⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥
⎣⎦
⎣⎦
验证二次扩展信源2
X 的熵等于离散信源X 的熵的2倍,即
2()2()H X H X =
代码:
x=[1/2,1/4,1/4];
hx=sum(x.*log2(1./x))
x2=[1/4,1/16,1/16,1/8,1/8,1/8,1/16,1/8,1/16] hx2=sum(x2.*log2(1./x2)) 答案:2() 1.5;
() 3.0H X H X ==
2. 验证两个统计独立的信源,X Y ,验证:
()()()H XY H X H Y =+
其中:
123111(),,244a a a X p x ⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥
⎣⎦
⎣⎦
123
111(),,333b b b Y p y ⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦
⎣⎦
代码:
x=[1/2,1/4,1/4]; y=[1/3,1/3,1/3];
xy=[1/6,1/6,1/6,1/12,1/12,1/12,1/12,1/12,1/12] hx=sum(x.*log2(1./x)) hy=sum(y.*log2(1./y)) Hxy=sum(xy.*log2(1./xy)) 答案:() 1.5,() 1.585() 3.085H X H Y H XY ===
3、条件熵的计算与熵的强可加性 验证离散二维平稳信源,满足:12121()()(|)
H X X H X H X X =+
某一离散二维平稳信源
0121141(),,3694X p x ⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦
⎣⎦
12
X X 其联合概率分布
12()
p X X 为:
编程计算:
1) 联合熵12()
H X X 2) 条件熵
21(|)
H X X
3) 验证:
12121()()(|)
H X X H X H X X =+
代码:
x1=[11/36,4/9,1/4]; x2=[11/36,4/9,1/4];
b=[1/4,1/18,0;1/18,1/3,1/18;0,1/18,7/36]; HXY=0;
for i=1:size(b,1) for j=1:size(b,2) if b(i,j)>0
HXY=HXY-b(i,j).*log2(b(i,j)); end end end HXY
Hx1=sum(x1.*log2(1./x1)) Hx2=sum(x2.*log2(1./x2))
b0=b(1,:); b1=b(2,:); b2=b(3,:);
x1x2=[b0./x2;b1./x2;b2./x2]; Hx1x2=0;
for i=1:size(x1x2,1) for j=1:size(x1x2,2) if x1x2(i,j)>0
Hx1x2=Hx1x2-b(i,j).*log2(x1x2(i,j)); end end end Hx1x2 答案:
12112121() 1.5426;(|)0.8717
() 2.4144
()(|) 2.4144
H X H X X H X X H X H X X ===+=
实验三:离散信道的平均互信息的计算
1. 【习题3.1】 设信源