一般信道容量

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈尔滨理工大学荣成学院

信息论与编码实验报告

——一般信道容量编码

班级:电信13-2班

姓名:

学号:

日期:2015.10.24

一般信道的信道容量

一、实验目的

1、熟悉MATLAB的使用

2、掌握一般信道的信道容量的求解

3、学习用MATLAB编写一般信道的信道容量的求解程序

二、实验内容

用MATLAB编写一般信道的信道容量的程序,并求出信道容量,最佳信源分布。

三、实验程序

Matlab程序代码段:

clear all

format rat %所有的数全部用分数显示

A=ones(4)*2^-40; %定义一个极小值矩阵

P=[1/2,1/4,0,1/4;0,1,0,0;0,0,1,0;1/4,0,1/4,1/2]; %信道的传递矩阵

B=A+P; %用极小值矩阵加上矩阵B避免出现log2(0)的情况

for i=1:4

for j=1:4

D(i,j)=B(i,j)*log2(B(i,j));

end

end

F=sum(D,2); %每行求和Σ

X=P\F; %计算公式中的β值记为X

C=log2(2^X(1,1)+2^X(2,1)+2^X(3,1)+2^X(4,1)) %信道容量

%以下代码段是求信道容量的最佳输入分布PA

Pb1=2^(X(1,1)-C); %Pb1,Pb2,Pb3,Pb4是求输出概率分布

Pb2=2^(X(2,1)-C);

Pb3=2^(X(3,1)-C);

Pb4=2^(X(4,1)-C);

PB=[Pb1;Pb2;Pb3;Pb4]; %输出概率矩阵

PA=inv(P')*PB%因为PB=PT(P的转置)*PA,所以PA=PT^(-1)(P转置矩阵的逆矩

阵)*PB clear all

format rat%ËùÓеÄÊýÈ«²¿Ó÷ÖÊýÏÔʾ

s=input('please input a array');

A=ones(4)*2^-40; %¶¨ÒåÒ»¸ö¼«Ð¡Öµ¾ØÕó

B=A+s; %Óü«Ð¡Öµ¾ØÕó¼ÓÉϾØÕóB±ÜÃâ³öÏÖlog2£¨0£©µÄÇé¿ö

for i=1:4

for j=1:4

D(i,j)=B(i,j)*log2(B(i,j));

end

end

F=sum(D,2); %ÿÐÐÇóºÍ¦²

X=s\F; %¼ÆË㹫ʽÖеĦÂÖµ¼ÇΪX

C=log2(2^X(1,1)+2^X(2,1)+2^X(3,1)+2^X(4,1)) %ÐŵÀÈÝÁ¿

%ÒÔÏ´úÂë¶ÎÊÇÇóÐŵÀÈÝÁ¿µÄ×î¼ÑÊäÈë·Ö²¼PA

Pb1=2^(X(1,1)-C); %Pb1,Pb2,Pb3,Pb4ÊÇÇóÊä³ö¸ÅÂÊ·Ö²¼

Pb2=2^(X(2,1)-C);

Pb3=2^(X(3,1)-C);

Pb4=2^(X(4,1)-C);

PB=[Pb1;Pb2;Pb3;Pb4]; %Êä³ö¸ÅÂʾØÕó

PA=inv(s')*PB %ÒòΪPB=PT(PµÄתÖÃ)*PA£¬ËùÒÔPA=PT^(-1)(PתÖþØÕóµÄÄæ¾ØÕó)*PB

四、实验结果

五、出现的问题及解决方法:

(1)信道的传递矩阵P中有0,在取对数的时候无法计算log2(0),经过向同学请教得到

两种解决办法:

[1]计算时将P中的所有0改为1,这样在计算对数是则为log2(1)=0,不影响计算结果,但是出现另一个问题是计算的F=sum(D,2)每行求和得到的F矩阵中的元素有0,那么在计算公式中的β值即X=P\F时,由于F处在分母的位置不能为0,则在编译的时候出现错误,因此放弃此方案。

[2]计算时给P中的所有数加上一个极小的数,使其计算的过程中不影响计算值,那么在后面求解β值即X=P\F时就不会出现上述问题。

(2)matlab的使用不熟练,在将计算公式向程序代码转换的时候思路不清晰,线性代数中矩阵的转置及矩阵的逆的运算掌握不到位,以至于在公式推导是遇到瓶颈,耽误了许多时间,没有按时完成本次试验。

相关文档
最新文档