信息论与编码实验报告Word文档格式.docx

上传人:b****6 文档编号:21975522 上传时间:2023-02-02 格式:DOCX 页数:12 大小:315.48KB
下载 相关 举报
信息论与编码实验报告Word文档格式.docx_第1页
第1页 / 共12页
信息论与编码实验报告Word文档格式.docx_第2页
第2页 / 共12页
信息论与编码实验报告Word文档格式.docx_第3页
第3页 / 共12页
信息论与编码实验报告Word文档格式.docx_第4页
第4页 / 共12页
信息论与编码实验报告Word文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

信息论与编码实验报告Word文档格式.docx

《信息论与编码实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《信息论与编码实验报告Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

信息论与编码实验报告Word文档格式.docx

左边重,右边重,平衡。

这3种情况也是等概率的,所以他所提供的信息量为:

y=Log3

在K次测量中,要将事件的不确定度完全消除,所以

K=Log(2N+1)/Log3

根据上式,当N=12时,K=2.92<

3所以13只硬币是可以在3次称量中达到

目的的。

通过此式,我们还可以计算得到:

通过3次测量而找出异常硬币,N的最大值为13.

2.方案的提出

为了描述方便,我们给这12枚硬币分别编号

(1)-(12)。

首先,任选8个比较,如选:

⑴⑵⑶⑷比⑸⑹⑺⑻

1.若一样重,则假币在⑼~⑿中,第二步:

⑼⑽比⑾⑴

(1)若一样重,则可能的假币为⑿。

则第三步:

⑴比⑿

a.若一样重,则没有假币;

b.不一样重,则假币为⑿:

如果

(1)>

(12),则假币轻,反之,假币重;

(2)若⑼⑽重,则第三步:

⑼比⑽

a.若一样重,则假币为⑾(较轻)

b.不一样重,则假币为⑼、⑽中较重者

(3)若⑼⑽轻,则第三步:

a.若一样重,则假币为⑾(较重)

b.不一样重,则假币为⑼、⑽中较轻者

2.若⑴⑵⑶⑷重,则第二步:

⑴⑵⑸比⑶⑷⑹

(1)若一样重,则假币在⑺⑻中,第三步:

⑺比⑻假币为⑺、⑻中较轻者

(2)若⑴⑵⑸端较重,则假币在⑴⑵⑹中,第三步:

⑴比⑵

a.若一样重,则假币为⑹(较轻)

b.不一样重,则假币为⑴⑵中较重者

(3)若⑶⑷⑹端较重,则假币在⑶⑷⑸中,第三步:

⑶比⑷

a.若一样重,则假币为⑸(较轻)

b.不一样重,则假币为⑶、⑷中较重者

3.若⑴⑵⑶⑷轻,则与上面类似,第二步:

⑴⑵⑸比⑶⑷⑹

⑺比⑻假币为⑺、⑻中较重者

(2)若⑴⑵⑸端较轻,则假币在⑴⑵⑹中,第三步:

⑴比⑵

a.若一样重,则假币为⑹(较重)

b.不一样重,则假币为⑴⑵中较轻者

(3)若⑶⑷⑹端较轻,则假币在⑶⑷⑸中,第三步:

a.若一样重,则假币为⑸(较重)

b.不一样重,则假币为⑶、⑷中较轻者

3.用C语言编程实现上述方案为:

#include 

<

stdio.h>

 

void 

main() 

int 

i;

float 

a[12];

for(i=0;

i<

12;

i++) 

scanf("

%f"

&

a[i]);

if(a[0]+a[1]+a[2]+a[3]==a[4]+a[5]+a[6]+a[7]) 

if(a[0]+a[1]+a[2]==a[8]+a[9]+a[10]) 

if(a[8]==a[11]) 

printf("

There 

is 

no 

special 

coin!

\n"

);

else 

if(a[8]>

a[11]) 

coin:

%f(12) 

and 

it'

lighter 

than 

others.\n"

a[11]);

heavier 

if(a[0]+a[1]+a[2]>

a[8]+a[9]+a[10]) 

if(a[8]==a[9]) 

%f(11) 

a[10]);

 

a[9]) 

%f(10) 

a[9]);

%f(9) 

a[8]);

if(a[0]+a[1]+a[2]+a[3]>

a[4]+a[5]+a[6]+a[7]) 

if(a[0]+a[2]+a[5]==a[1]+a[4]+a[8]) 

if(a[6]==a[7]) 

%f(4) 

a[3]);

if(a[6]>

a[7]) 

%f(8) 

a[7]);

%f(7) 

a[6]);

if(a[0]+a[2]+a[5]>

a[1]+a[4]+a[8]) 

if(a[0]==a[2]) 

%f(5) 

a[4]);

if(a[0]>

a[2]) 

%f

(1) 

a[0]);

%f(3) 

a[2]);

if(a[1]>

a[8]) 

%f

(2) 

a[1]);

if(a[5]<

%f(6) 

a[5]);

else

if(a[0]+a[2]+a[5]<

if(a[1]<

if(a[5]>

}

运行结果如图:

即输入12个数表示这12枚硬币的重量,最后输出哪一枚为假币,并判断其轻重。

四、实验总结

本次实验首先用信息熵的角度对实验进行了理论分析,即理论上要将假币找出,即消除事件的不确定度,只需要3次即可。

然后又通过实际的称重情况对如何使用3次来称出硬币进行了分类讨论。

最后附上的C语言程序则是对实际称重过程的描述。

通过本次实验,我对信息熵的理解更深入了,即要要想得到一个事件最终结果,即消除其不确定度便可以实现。

通过这样的理解,对于信息熵在实际生活中的应用也得到了拓展。

实验二信道容量的迭代算

一、实验目的

(1)进一步熟悉信道容量的迭代算法。

(2)学习如何将复杂的公式转化为程序。

(3)掌握C语言数值计算程序的设计和调试技术。

二、实验原理

1.算法如下

i=1,2...r;

j=1,2...s

初始化信源分布

,置迭代计数器k=0,设信道容量相对误差门限为δ,δ>

0;

如果

,转向

置迭代序号k+1k,转向

输出

的结果和

的结果

停止

2.算法流程图如下

三、实验容

1.令pe1pe20.1和pe1pe20.01,分别计算该对称信道的信道容量和最佳分布;

2.令pe10.15,pe20.1和pe10.075pe20.01,分别计算该信道的信道容量和最佳分布;

信道容量是信息传输率的极限,当信息传输率小于信道容量时,通过信道编码,能够实现几乎无失真的数据传输;

当数据分布满足最佳分布时,实现信源与信道的匹配,使得信息传输率能够达到信道容量。

本实验利用信道容量的迭代算法,使用计算机完成信道容量的计算。

四、实验程序如下

#include<

math.h>

intmain()

{

doublePe1,Pe2,Pa1_=0,Pa2_=0;

doubleb1a1,b2a1,b1a2,b2a2;

doublePa1=0,Pa2=0;

doubleI=0,max=0;

//平均互信息量,最大平均互信息量

intcount=0;

输入信道容量参数Pe1:

"

%lf"

Pe1);

输入信道容量参数Pe2:

Pe2);

信道容量参数:

Pe1=%lfPe2=%f\n"

Pe1,Pe2);

b1a1=1-Pe1;

b2a1=Pe1;

b1a2=Pe2;

b2a2=1-Pe2;

for(Pa1=0.01;

Pa1<

=1;

Pa1=Pa1+0.01)

{Pa2=1-Pa1;

count=count+1;

I=Pa1*b1a1*(log(b1a1/(Pa1*b1a1+Pa2*b1a2))/log

(2))

+Pa1*b2a1*(log(b2a1/(Pa1*b2a1+Pa2*b2a2))/log

(2))

+Pa2*b1a2*(log(b1a2/(Pa1*b1a1+Pa2*b1a2))/log

(2))

+Pa2*b2a2*(log(b2a2/(Pa1*b2a1+Pa2*b2a2))/log

(2));

%10lf"

I);

if(I>

max)

max=I;

Pa1_=Pa1,Pa2_=Pa2;

else

continue;

一共计算机了:

%d\n"

count);

最大互信息量为:

%lf\n"

max);

最大互信息量的P(a1)=%lf;

P(a2)=%lf\n"

Pa1_,Pa2_);

五、实验结果如图

1.Pe1=Pe2=0.1,计算结果如图:

2.Pe1=Pe2=0.01计算结果如图:

3.Pe1=0.15,Pe2=0.1时的计算结果如图:

4.Pe1=0.075,Pe2=0.01时的计算结果如下:

六、实验总结

本次实验通过信道容量迭代算法的编程计算,我对信道容量迭代算法有了全新的认识,此前对教材的理解可能就停留在教材上的那几个计算公式上,但是这次实验通过对程序的编写,我深刻体会到自己知识学的太浅薄,没有从本质上把握住要点,运用知识也有些生硬。

因此,在今后学习当中,要注意去深度思考,把所学知识有机联系起来,从而把书由薄变厚,再总结进而把书由厚变薄,掌握本质,理解要领。

此次实验进一步加强了我的编程能力和严谨的逻辑思维能力,受益颇多。

实验三

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1