信息论上机实验报告
- 格式:doc
- 大小:273.00 KB
- 文档页数:10
1 信息论与编码实验报告
实验一:计算离散信源的熵
一、实验设备:
1、计算机
2、软件:Matlab
二、实验目的:
1、熟悉离散信源的特点;
2、学习仿真离散信源的方法
3、学习离散信源平均信息量的计算方法
4、熟悉 Matlab 编程;
三、习题:
1. 甲地天气预报构成的信源空间为:
1111(),,,8482Xpx 小雨 云 大雨晴
乙地信源空间为:
17(),88Ypy 小雨晴
求此两个信源的熵。求各种天气的自信息量。
代码:
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.5436HXHY
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/符号
2 4. 设一个二元信源(只有0和1两种符号)其概率空间为:
(),1Xpxpp0 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(),,244aaaXpx
验证二次扩展信源2X的熵等于离散信源X的熵的2倍,即
2()2()HXHX
代码:
x=[1/2,1/4,1/4];
3 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.0HXHX
2. 验证两个统计独立的信源,XY,验证:
()()()HXYHXHY
其中:
123111(),,244aaaXpx
123111(),,333bbbYpy
代码:
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.085HXHYHXY
3、条件熵的计算与熵的强可加性
验证离散二维平稳信源,满足:12121()()(|)HXXHXHXX
某一离散二维平稳信源
0121141(),,3694Xpx
12XX其联合概率分布12()pXX为:
Xj X2
0 1 2
0
1
2
编程计算: 141180118131181187360
4 1) 联合熵12()HXX
2) 条件熵21(|)HXX
3) 验证:12121()()(|)HXXHXHXX
代码:
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.4144HXHXXHXXHXHXX
实验三:离散信道的平均互信息的计算
1. 【习题3.1】
设信源
5 12()0.6,0.4Xxxpx
通过一干扰信道,接收到符号为12[,]Yyy,其信道矩阵为:
516631,44P
1) 求信源X中事件1x和2x分别含有的自信息;
2) 收到消息(1,2)jyj后,获得的关于(1,2)ixi的信息量;
3) 求信源X和输出变量Y的信息熵;
4) 信道疑义度(|)HXY和噪声熵(|)HYX;
5) 接收到消息Y后获得的平均互信息;
代码:
x=[0.6,0.4];
p=[5/6,1/6;3/4,1/4];
Ix1=log2(1./(x(1,1)))
Ix2=log2(1./(x(1,2)))
pxy=[x(1,1)*p(1,:);x(1,2)*p(2,:)];
py=[x*p(:,1),x*p(:,2)];
px_y=[pxy(:,1)/py(1,1),pxy(:,2)/py(1,2)];
I=log2(p./[py;py])
Hx=sum(x.*log2(1./x))
Hy=sum(py.*log2(1./py))
Hx_y=sum(sum(pxy.*log2(1./px_y)))
Hy_x=sum(sum(pxy.*log2(1./p)))
Ixy=sum(sum(pxy.*log2(p./[py;py])))
答案:12111221221.()0.737()1.32192.(;)0.0589,(;)0.263,(;)0.0931,(;)0.32193.()0.971,()0.72194.(|)0.9635(|)0.71455.(;)0.0074IxIxIxyIxyIxyIxyHXHYHXYHYXIXY
2. 二元信道的互信息与信源分布的关系
有二元信源:
01()1Xpx
有二元信道,其传递矩阵为:
6 11ppPpp, 其中0.2p,即传递矩阵0.80.20.20.8P
编程实现下面题目:
1) 画出平均互信息(;)IXY随信源分布的关系曲线,并求出最大平均互信息。
验证:信道容量C(最大平均互信息)满足:1()CHp
2)验证:信道容量C(最大平均互信息)满足:1()CHp
代码:
syms w;
x=[w,1-w];
p=[0.8,0.2;0.2,0.8];
pxy=[x(1,1)*p(1,:);x(1,2)*p(2,:)];
py=[x*p(:,1),x*p(:,2)];
px_y=[pxy(:,1)/py(1,1),pxy(:,2)/py(1,2)];
Ix_y=sum(sum(pxy.*log2(p./[py;py])));
ezplot(w,Ix_y,[0,1,0,1]);
xlabel('变量w');
ylabel('平均互信息量I')
title('平均互信息量与w的函数关系')
grid on;
图:
00.10.20.30.40.50.60.70.80.91-0.2-0.100.10.20.30.40.5变量 w平均互信息量 I平均互信息量与w的函数关系
实验四:离散信道及其信道容量
一、实验设备:
1、计算机
2、软件:Matlab