您的当前位置:首页正文

实验二 离散信道及其容量

来源:好兔宠物网
实验二离散信道及其容量

一、[实验目的]

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、对于扩展信道,分有记忆的和无记忆的,在不确定的情况下计算扩展信源的熵,我们要根据定义来计算。

六、[实验总结]

通过本次实验,我对于信道的分类,各种信道的特点有了一定的认识和了解。实验中涉及的主要是二元对称信道,而它的最佳分布是输入和输出均对称。

实验中最主要的部分还是关于信道容量的计算,此次实验,让我们验证了课本上的定理,也让我们更好地理解和掌握了课堂上所学的知识。

因篇幅问题不能全部显示,请点此查看更多更全内容