资源描述
实验二 离散信道及其容量
一、实验目的
1、 理解离散信道容量的内涵;
2、 掌握求二元对称信道(BSC)互信息量和容量的设计方法;
3、 掌握二元扩展信道的设计方法并会求其平均互信息量。
二、实验原理
若某信道输入的是N维序列x,其概率分布为q(x),输出是N维序列y,则平均互信息量记为I(X;Y),该信道的信道容量C定义为。
三、实验内容
1、给定BSC信道,信源概率空间为
0 1
0.6 0.4
X
P
=
信道矩阵
求该信道的I(X;Y)和容量,画出I(X;Y)和、C和p的关系曲线。
2 、编写一M脚本文件t03.m,实现如下功能:
在任意输入一信道矩阵P后,能够判断是否离散对称信道,若是,求出信道容量C。
3、已知X=(0,1,2);Y=(0,1,2,3),信源概率空间和信道矩阵分别为
X
Px
0 1 2
0.3 0.5 0.2
=
0.1 0.3 0 0.6
0.3 0.5 0.2 0
0.1 0.7 0.1 0.1
P=
求: 平均互信息量;
4、 对题(1)求其二次扩展信道的平均互信息I(X;Y)。
四、程序设计与算法描述
1)设计思路
1、信道容量
因此要求给定信道的信道容量,只要知道该信道的最大互信息量,即求信道容量就是求信道互信息量的过程。
程序代码:
clear all,clc;
w=0.6;
w1=1-w;
p=0.01;
X=[0 1];
P=[0.6 0.4];
p1=1-p;
save data1 p p1;
I_XY=(w*p1+w1*p)*log2(1/(w*p1+w1*p))+(w*p+w1*p1)*log2(1/(w*p+w1*p1))-(p*log2(1/p)+p1*log2(1/p1));
C=1-(p*log2(1/p)+p1*log2(1/p1));
fprintf('互信息量:%6.3f\n信道容量:%6.3f',I_XY,C);
p=eps:0.001:1-eps;
p1=1-p;
C=1-(p.*log2(1./p)+p1.*log2(1./p1));
subplot(1,2,1),plot(p,C),xlabel('p'),ylabel('C');
load data1;
w=eps:0.001:1-eps;
w1=1-w;
I_XY=(w.*p1+w1.*p).*log2(1./(w.*p1+w1.*p))+(w.*p+w1.*p1).*log2(1./(w.*p+w1.*p1))-(p.*log2(1./p)+p1.*log2(1./p1));
subplot(1,2,2),plot(w,I_XY)
xlabel('w'),ylabel('I_XY');
实验结果:
2、离散对称信道:当离散准对称信道划分的子集只有一个时,信道关于输入和输出对称。
离散准对称信道:若一个离散无记忆信道的信道矩阵中,按照信道的输出集Y可以将信道划分成n个子集,每个子矩阵中的每一行都是其他行同一组元素的不同排列。
实验代码:
clc;clear;
P=input('输入信道转移概率矩阵:');
[r,c]=size(P);
if sum(P,2)-1~=zeros(1,r)';
error('输入的信道矩阵不合法!');%矩阵行和一定要为1
end
l=1;
Sum=0;
for j=2:c
for i=1:r%i是行变量
for k=1:r
if P(k,j)==P(i,1)
Sum=Sum+1;
break;
end
end
end
end%判断是否离散输出对称信道
if Sum==r*(c-1)
fprintf('是离散输出对称信道!\n',j);
else fprintf('不是对称信道!');
end
实验结果:
ans =
0.0100 0.9900
0.9900 0.0100
是离散输出对称信道!
ans =
0.4000 0.6000
0.3000 0.7000
不是对称信道!
3、二次扩展信道的互信息量I(X;Y)=H(Y)-H(Y|X).
实验代码:
clc,clear;
p=0.01;
P_X1=[0.6,0.4];
p1=1-p;
X2=[0,0;0,1;1,0;1,1];%二次扩展输入符号阵
Y2=X2;%二次扩展输出符号
P_X2=[P_X1(1)^2,P_X1(1)*P_X1(2),P_X1(2)*P_X1(1),P_X1(2)^2];
%求二次扩展后信道矩阵N
N=zeros(4);
for i=1:4
for j=1:4
l=length(find(xor(X2(i,:),Y2(j,:))==0));%比较得正确传递元素个数
N(i,j)=p1^l*p^(2-l);
end
end
%下面求I
P_Y2=P_X2*N;
P_XY2=[P_X2(1)*N(1,:);P_X2(2)*N(2,:);P_X2(3)*N(3,:);P_X2(4)*N(4,:)];%联合分布
H_Y2=sum(-P_Y2.*log2(P_Y2));
H_Y_X2=sum(sum(-P_XY2.*log2(N)));
I_XY2=H_Y2-H_Y_X2;
fprintf('2次扩展信道的平均互信息为:%5.3f',I_XY2);
实验结果:
2次扩展信道的平均互信息为:1.783
2)实验中出现的问题及解决方法;
1、信道容量与互信息量有关,而互信息量又与信源熵相关,所以要求得信道容量就必须知道信道传递概率,然后根据公式一步一步计算。
2、对于判断离散对称信道,不需要弄清楚的是它的概念,根据定义来判断。
3、对于扩展信道,分有记忆的和无记忆的,在不确定的情况下计算扩展信源的熵,我们要根据定义来计算。
五、实验心得
通过本次实验,我对于信道的分类,各种信道的特点有了一定的认识和了解。实验中涉及的主要是二元对称信道,而它的最佳分布是输入和输出均对称。
实验中最主要的部分还是关于信道容量的计算,此次实验,让我们验证了课本上的定理,也让我们更好地理解和掌握了课堂上所学的知识。
展开阅读全文