实验二 离散信道及其容量
一、[实验目的]
1、理解离散信道容量的内涵;
2、掌握求二元对称信道(BSC)互信息量和容量的设计方法;3、掌握二元扩展信道的设计方法并会求其平均互信息量。二、[实验环境]
windowsXP,MATLAB7三、[实验原理]
若某信道输入的是N维序列x,其概率分布为q(x),输出是N维序列y,则平均互信息量记为I(X;Y),该信道的信道容量C定义为C=maxI(X;Y)。
q(x)
四、[实验内容]
1、给定BSC信道,信源概率空间为
XP
=
00.610.4
信道矩阵
⎡0.990.01⎤P=⎢⎥
⎣0.010.99⎦
求该信道的I(X;Y)和容量,画出I(X;Y)和ω、C和p的关系曲线。
2、编写一M脚本文件t03.m,实现如下功能:
在任意输入一信道矩阵P后,能够判断是否离散输出对称信道。3、对题1求其二次扩展信道的平均互信息I(X;Y)。五、[实验过程]
每个实验项目包括:1)设计思路1、信道容量程序代码:
clearall,clc;w=0.6;w1=1-w;p=0.01;
C=maxI(X;Y)
q(x)
,因此要求给定信道的信道容量,只要知道该信道
的最大互信息量,即求信道容量就是求信道互信息量的过程。
p1=1-p;
savedata1pp1;
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');loaddata1;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');
实验结果:
互信息量:0.891信道容量:0.919
I(X;Y)和ω、C和p的关系曲线图:
10.90.80.70.6IY0.5C0.40.30.20.1000.5110.90.80.70.60.50.40.30.20.1000.512、离散对称信道:当离散准对称信道划分的子集只有一个时,信道关于输入和输出对称。
离散准对称信道:若一个离散无记忆信道的信道矩阵中,按照信道的输出集Y可以将信道划分成n个子集,每个子矩阵中的每一行都是其他行同一组元素的不同排列。
X实验代码:
clc;clear;
P=input('输入信道转移概率矩阵:');[r,c]=size(P);
ifsum(P,2)-1~=zeros(1,r)';
error('输入的信道矩阵不合法!');%矩阵行和一定要为1endl=1;Sum=0;forj=2:c
fori=1:r%i是行变量
fork=1:r
ifP(k,j)==P(i,1)
Sum=Sum+1;break;endendendend
ifSum==r*(c-1)
fprintf('是离散输出对称信道!\\n',j);elsefprintf('不是对称信道!');end
实验结果:
输入信道转移概率矩阵:[0.010.99;0.990.01]是离散输出对称信道!
输入信道转移概率矩阵:[0.40.6;0.30.7]不是对称信道!
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];%求二次扩展后信道矩阵NN=zeros(4);fori=1:4
forj=1:4
l=length(find(xor(X2(i,:),Y2(j,:))==0));%比较得正确传递元素个数N(i,j)=p1^l*p^(2-l);
endend%下面求IP_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、对于扩展信道,分有记忆的和无记忆的,在不确定的情况下计算扩展信源的熵,我们要根据定义来计算。
六、[实验总结]
通过本次实验,我对于信道的分类,各种信道的特点有了一定的认识和了解。实验中涉及的主要是二元对称信道,而它的最佳分布是输入和输出均对称。
实验中最主要的部分还是关于信道容量的计算,此次实验,让我们验证了课本上的定理,也让我们更好地理解和掌握了课堂上所学的知识。
因篇幅问题不能全部显示,请点此查看更多更全内容