习题:
1. 甲地天气预报构成的信源空间为:
云 大雨
1
4
,
1
8
,
小雨
1
8
X
( )
p x
晴
1
2
,
乙地信源空间为:
Y
( )
p y
晴
7
8
,
小雨
1
8
求此两个信源的熵。求各种天气的自信息量。
案: (
H X
) 1.75;
H Y
( ) 0.5436
MATLAB代码:
p1=[1/2,1/4,1/8,1/8];%p1´ú±í¼×ÐÅÔ´¶ÔÓ¦µÄ¸ÅÂÊ
p2=[7/8,1/8];%p2´ú±íÒÒÐÅÔ´¶ÔÓ¦µÄ¸ÅÂÊ
H1=0.0;
H2=0.0;
for i=1:4
H1=H1+p1(i)*log2(1/p1(i));
I1(i)=log2(1/p1(i));
end
for j=1:2
I2(j)=log2(1/p2(j));
H2=H2-p2(j)*log2(p2(j));
end
disp('输出两个信源的熵');
H1
H2
disp('输出甲的自信息量');
I1
disp('输出乙的自信息量');
I2
结果:
H1 =
1.5000
H2 =
H3 =
1.5850
3.0850
输出两个信源的熵
H1 =
1.7500
H2 =
0.5436
输出甲的自信息量
I1 =
1
2
输出乙的自信息量
I2 =
3
3
0.1926
3.0000
2、某信息源的符号集由 A、B、C、D、E 组成,设每一符号独立出现,其出现的
概率分别为,1/4,1/8,1/8,3/16,5/16,试求该信源符号的平均信息量。
(答案:H(X) = 2.2272bit/符号)
MATLAB代码:
p1=[1/4,1/8,1/8,3/16,5/16];
H1=0.0;
for i=1:5
H1=H1+p1(i)*log2(1/p1(i));
end
disp('输出信源的熵');
H1
结果:输出信源的熵
H1 =
2.2272
3、 设有四个消息分别以概率 1/4,1/8,1/8,1/2 传送,每一消息的出现是相
互独立的。试计算其平均信息量。(答案:H(X) =1.75bit/符号)
MATLAB代码:
p2=[1/4,1/8,1/8,1/2];
H2=0.0;
for j=1:4
end
disp('输出信源的熵');
H2
H2=H2+p2(j)*log2(1/p2(j));
结果:
输出信源的熵
H2 =
1.7500
4. 设一个二元信源(只有 0 和 1 两种符号)其概率空间为:
X
( )
p x
0 1
, 1
p
p
编程画出 H 与 p 的关系,并说明当 P 呈什么分布时,平均信息量达到最大值。
(说明:H=-p.*log2(p)-(1-p).log2(1-p);)
MATLAB代码:
p=0:0.01:1;
H=-p.*log2(p)-(1-p).*log2(1-p);
plot(p,H)
grid on
xlabel('p');
ylabel('H');
结果:
1
0.9
0.8
0.7
0.6
H
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
p
0.6
0.7
0.8
0.9
1
实验二:验证熵的可加性与强可加性
1. 【例 2.6】
有一离散无记忆信源
X
( )
p x
a a a
1
3
1 1 1
,
2 4 4
2
,
验证二次扩展信源 2X 的熵等于离散信源 X 的熵的 2 倍,即
H X
(
2
)
2 (
H X
)
答案:
H X
(
) 1.5;
H X
(
2
) 3.0
MATLAB代码:
p1=[1/2,1/4,1/4];
p2=p1.*p1;
H1=0.0;
H2=0.0;
for i=1:3
H1=H1+p1(i)*log2(1/p1(i));
for j=1:3
H2=H2+p2(j)*log2(1/p2(j));
end
disp('H1+H2=');
end
H1
H2
H1+H2
结果:
H1 =
H2 =
1.5000
3
2. 验证两个统计独立的信源 ,X Y ,验证:
( )
H X H Y
(
)
H XY
(
)
其中:
X
( )
p x
a a a
1
3
1 1 1
,
2 4 4
2
,
Y
( )
p y
b b b
1
3
1 1 1
,
3 3 3
2
,
H X
(
) 1.5,
H Y
( ) 1.585
H XY
(
) 3.085
MATLAB代码:
p1=[1/2,1/4,1/4];
p2=[1/3,1/3,1/3];
p3=p1.*p2;
H1=0.0;
H2=0.0;
H3=0.0;
for i=1:3
end
H1
H1=H1+p1(i)*log2(1/p1(i));
for j=1:3
H2=H2+p2(j)*log2(1/p2(j));
for k=1:3
H3=H3+p3(k)*log2(1/p3(k));
end
end
H2
H3
结果;
H1 =
H2 =
H3 =
1.5000
1.5850
3.0850
H1+H2=
ans =
3.0850
3、条件熵的计算与熵的强可加性
验证离散二维平稳信源,满足:
H X X
(
1
)
H X
(
)
1
2
H X X
(
|
2
)
1
某一离散二维平稳信源
X
( )
p x
1 2
0
11 4 1
36 9 4
,
,
2X X 其联合概率分布 1
1
(
p X X 为:
)
2
Xj
0
1
2
X2
1
1
18
1
3
1
18
0
1
4
1
18
0
2
0
1
18
7
36
编程计算:
1) 联合熵
2) 条件熵
3) 验证:
H X X
(
1
)
2
H X X
(
|
2
)
1
H X X
(
1
)
H X
(
)
1
2
H X X
(
|
2
)
1
MATLAB 代码:
HX1X2=0;
b=[1/4,1/18,0;1/18,1/3,1/18;0,1/18,7/36];
for i=1:size(b,1)
for j=1:size(b,2)
if b(i,j)>0
HX1X2=HX1X2-b(i,j).*log2(b(i,j));
end
end
end
HX1=0;
for i=1:size(b,1)
p(i)=sum(b(i,:));
HX1=HX1-p(i)*log2(p(i));
end
H=0;
for i=1:size(b,1)
for j=1:size(b,2)
if b(i,j)>0
H=H-b(i,j)*log2(b(i,j)/p(i));
end
end
end
HX1X2,HX1,H
disp('HX1+H=');
HX1+H
结果:
HX1X2 =
HX1 =
H =
2.4144
1.5426
0.8717
HX1+H=
ans =
2.4144
) 1.5426;
(
H X
(
H X X
)
1
2.4144
1
2
答案:
%联合熵的计算
HXY=0;
for i=1:size(b,1)
for j=1:size(b,2)
if b(i,j)>0
H X X
)
(
|
2
(
H X
1
) 0.8717
1
H X X
(
|
2
)
1
2.4144
HXY=HXY-b(i,j).*log2(b(i,j));
end
end
end
HXY
实验三:离散信道的平均互信息的计算
1. 【习题 3.1】
设信源
X
( )
p x
x
x
2
1
0.6,0.4
通过一干扰信道,接收到符号为
Y
[
,
y y
1
2
]
,其信道矩阵为:
P
5
6
3
4
,
1
6
1
4
1) 求信源 X 中事件 1x 和 2x 分别含有的自信息;
MATLAB代码:
p1=[0.6,0.4];
for i=1:2;
X1(i)=log2(1/p1(i));
end
disp('输出信源的自信息量');
X1
结果:
j 后,获得的关于 (
ix i 的信息量;
1,2)
输出信源的自信息量
X1 =
1.3219
1,2)
0.7370
2收到消息 (
jy
MATLAB代码:
P1=[0.6,0.4];
P2=[5/6,1/6;3/4,1/4];
n=length(P1);
P3=(P2')*P1';
for i=1:n
for j=1:n
end
end
disp('输出信息量:');
I
结果:
输出信息量
I =
0.0589
-0.2630
-0.0931
0.3219
3 求信源 X 和输出变量 Y 的信息熵;
MATLAB代码:
P1=[0.6,0.4];
P2=[5/6,1/6;3/4,1/4];
n=length(P1);
P3=(P2')*P1';
X=0.0;
Y=0.0;
for i=1:2
X=X+P1(i)*log2(1/P1(i));
end
for j=1:2;
Y=Y+P3(j)*log2(1/P3(j));
end
disp('输出X和Y信息的熵:');
X
Y
结果:输出 X 和 Y 信息的熵:
X =
I(i,j)=log2(P2(j,i)/P3(i));
Y =
0.9710
0.7219
4 信道疑义度 (
H X Y 和噪声熵 (
)
|
H Y X ;
)
|
5 接收到消息 Y 后获得的平均互信息;
第4、5的MATLAB代码:
px=[0.6 0.4];
n=length(px);
P=[5/6 1/6;3/4 1/4];
P1=(P')*px';
hx=0;hy=0;
for i=1:n
hx=hx-px(i)*log2(px(i));
hy=hy-P1(i)*log2(P1(i));