信息论实验指导书.docx

上传人:b****3 文档编号:5057456 上传时间:2022-12-12 格式:DOCX 页数:17 大小:173.89KB
下载 相关 举报
信息论实验指导书.docx_第1页
第1页 / 共17页
信息论实验指导书.docx_第2页
第2页 / 共17页
信息论实验指导书.docx_第3页
第3页 / 共17页
信息论实验指导书.docx_第4页
第4页 / 共17页
信息论实验指导书.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

信息论实验指导书.docx

《信息论实验指导书.docx》由会员分享,可在线阅读,更多相关《信息论实验指导书.docx(17页珍藏版)》请在冰豆网上搜索。

信息论实验指导书.docx

信息论实验指导书

 

信息理论与编码实验指导书

电子与电气工程学院

罗晓琴编

实验要求

1、实验前认真阅读实验指导书的容,并完成预习任务。

2、复习Matlab的相关知识,完成仿真。

3、要熟悉本次实验的任务。

4、实验过程中要认真记录实验结果,仿真结果需经指导教师审阅。

5、实验后每位同学要独立完成实验报告的容。

 

实验一离散信源的自信息量和熵…………………………………………………3

实验二最大离散熵定理……………………………………………………………6

实验三费诺编码……………………………………………………………………9

实验四霍夫曼编码…………………………………………………………………13

实验五香农编码……………………………………………………………………16

 

实验一:

计算离散信源的自信息量和熵

一、实验目的

1、熟悉离散信源的特点。

2、学习Matlab仿真离散信源的方法。

3、学习离散信源自信息量和信源熵的计算方法。

4、熟悉Matlab编程。

二、实验设备

1、计算机

2、软件:

Matlab

三、实验原理

本实验主要完成信源概率分布的自信息量以及信源熵的计算。

计算公式如下:

一个字符它所携带的信息量是和该字符出现的概率有关,概率可以表征自信息量的大小自信息的计算公式为:

自信息量有两个含义:

第一、当事件发生前,表示该事件发生的不确定性;

第二、当事件发生后,标是该事件所提供的信息量.

自信息量的单位取决于对数所取的底,若以2为底,单位为比特,以e为底,单位为奈特,以10为底,单位为哈特。

在通信系统中,通常取比特为单位,底数2略去不写。

由于自信息I(a)是一个随机变量,不能用来表征整个信源的不确定度。

所以我们用平均自信息量来表征整个信源的不确定度。

平均自信息量就是信源输出所有消息的自信息的数学期望,又称为信息熵、信源熵,简称熵。

熵(平均自信息)的计算公式为:

信息熵H(x)是对信源的平均不确定性的描述。

它从平均意义上来表征信源的总体信息测度。

对于某特定的信源,其信息熵是一个确定的数值。

信息熵具有如下三种物理意义。

第一,信息熵H(x)是表示信源输出后,每个消息或符号所提供的平均信息量。

第二,信息熵H(x)是表示信源输出前,信源的平均不确定性。

第三,信息熵H(x)可表征变量X的随机性。

由此可以看出,自信息量与信息熵的含义是不同的:

(1)信息熵是表征信源本身统计特性的一个物理量,它表示信源的平均不确定性,是信源输出的每一个消息所能提供的平均信息量;自信息量表示的是每一个消息的信息量度。

(2)信息熵是针对信源的,是信源输出的信息量,表示信源输出前的平均不确定性;自信息量是针对信宿的,是接收者在消除了信源不确定性后所获得的信息的度量。

(3)若信道无干扰,接收者获得的信息量在数量上等于信源的熵,若有干扰时,则两者不相等。

四、实验容

1、已知信源概率分布为:

p=[1/2,1/4,1/8,1/8],编写出计算自信息量的Matlab程序。

程序:

function[I]=deal(p)

n=4;

fori=1:

n

I(i)=-log2(p(i));

end

打开空白的M文件编辑器,将上述程序输入。

保存。

通过M文件调用的形式完成仿真。

步骤:

在commandwindow中输入p=[1/2,1/4,1/8,1/8]→调用deal.M文件→输入[I]=deal([1/2,1/4,1/8,1/8]),仿真实现。

2、写出信源概率分布为:

p=[1/2,1/4,1/8,1/8]离散信源熵的Matlab程序。

程序:

function[H]=deal(p)

n=4;

H=0;

fori=1:

n

I(i)=-log2(p(i));

H=H+p(i)*I(i);

end

打开空白的M文件编辑器,将上述程序输入。

保存。

通过M文件调用的形式完成仿真。

步骤:

在commandwindow中输入p=[1/2,1/4,1/8,1/8]→调用deal.M文件→输入[H]=deal([1/2,1/4,1/8,1/8]),仿真实现。

3、写出信源概率分布为:

p=[1/2,1/4,1/8,1/8]的离散信源自信息量和信源熵的

Matlab程序。

function[IH]=deal(p)

n=length(p);

H=0;

fori=1:

n

I(i)=-log2(p(i));

H=H+p(i)*I(i);

end

步骤:

在commandwindow中输入p=[1/2,1/4,1/8,1/8]→调用deal.M文件→输入[IH]=deal([1/2,1/4,1/8,1/8]),仿真实现。

4、将程序在计算机上仿真实现,验证程序的正确性并完成思考题的程序设计。

五、思考题

1、说明离散信源自信息量和信息熵的不同含义。

2、甲地天气预报构成的信源空间为:

X

大雨

小雨

乙地信源空间为:

Y

小雨

求此两个信源的熵。

求各种天气的自信息量。

六、实验报告要求

总结离散信源的特点及离散信源平均信息量的计算,写出实验容中的仿真程序及结果,完成思考题中MATLAB实现语句,并附上仿真实现的结果。

 

实验二最大离散熵定理

一、实验目的

1、熟悉熵函数的基本性质。

2、掌握最大熵定理。

3、学习Matlab仿真二维曲线图的方法。

4、熟悉Matlab编程。

二、实验设备

1、计算机

2、软件:

Matlab

三、实验原理

信息熵H(x)是随机变量X的概率分布p(x)的函数,它有如下性质:

1、对称性

H(P)=H(p1,p2,p3,…,pn)=H(p2,p3,…,pnp1)=…=H(pn,,p1,p2,p3,…,pn-1)

概率分布的顺序是可以任意互换的,互换后的概率分布表示的是相同的随机变量,随机变量的总体结构没有变化,则可证明对应的熵函数的值也不会变。

该性质表明熵函数只与信源的总体统计特性有关。

这也说明,信息熵只抽取了信源信息输出的统计特征,而没有考虑信息的具体含义和效用。

也就是说,信息熵有它的局限性,它不能描述时间本身的具体含义和主观价值等。

2、确定性

H(1,0)=0

在概率矢量P=(p1,p2,p3,…,pn)中,只要有一个分量为1,其它分量必为0,这由概率分布的完备性可以得到。

也就是说信源的平均不确定度为0。

3、非负性

H(P)=H(p1,p2,p3,…,pn)≥0

因为P=(p1,p2,p3,…,pn)是概率分布,0≤pi≤1,-logpi≥0,故上式成立。

需要注意的是,只有离散信源熵才有非负性,连续信源的相对熵将可能出现负值。

4、扩展性

(p1,p2,p3,…,pn-

)=Hn(p1,p2,p3,…,pn)

这个性质的含义是:

增加一个基本不会出现的小概率事件,信源的熵保持不变。

虽然小概率事件的出现给予接收者的信息量很大,但在熵的计算中,它占的比重很小,可以忽略不计,这也是熵的总体平均性的体现。

5、连续性

(p1,p2,p3,…,pn-1-

,pq+

)=Hn(p1,p2,p3,…,pn)

即信源概率空间中的概率分量的微小波动,不会引起熵的变化。

6、递增性

H(p1,p2,p3,…,pn-1,q1,q2,q3,…qm)=H(p1,p2,p3,…,pn)+

pnH(q1/pn,q2/pn,q3/pn,…qm/pn)

q1+q2+q3,…+qm=pn

这个性质表明,假如有一个信源的n个元素的概率分布为(p1,p2,p3,…,pn),其中某个元素pn又被划分为m个元素,这某个元素的概率之和等于pn,,这样得到的新信源的熵增加了一项,增加的一项是由于划分产生的不确定性。

7、极值性

H(p1,p2,p3,…,pn)≤H(1/n,1/n,…,1/n)=logn

上式中,当且仅当n个离散消息等概率出现时等式成立。

这一性质说明,对不同概率分布p(xi)所构成的熵,只有当等概率分布时,信源的不确定性最大,熵达到极大值。

8、上凸性

熵函数H(p)是概率矢量P=(p1,p2,p3,…,pn)的严格上凸函数,正因为熵函数具有上凸性,所以熵函数具有极值,熵函数的最大值存在。

9、唯一性

四、实验容

1、已知二元信源概率空间为p(x)=[x1-x],对应的二元信源的熵可表示为:

H(x)=-xlog2(x)-(1-x)log2(1-x)。

通过Matlab软件画出概率分布函数p(x)与熵函数之间的二维曲线图,编写出程序。

仿真结果如下图所示:

编程过程中要注意的地方:

x的步长设置为0.001,H(x)的运算为矩阵运算,必须用点乘:

“.*”。

2、用同样的方法画出三元信源空间的熵函数与概率分布的三维曲线图。

仿真结果如下所示。

五、思考题

1、熵函数的基本性质有哪些?

2、最大熵定理的结论是什么?

六、实验报告要求

写出用Matlab软件画出概率分布函数p(x)与熵函数之间的二维、三维曲线图的程序,并附上仿真结果图。

并对本实验进行总结、分析。

 

实验三费诺编码

一、实验目的

1、掌握费诺编码的编码原理

2、熟悉Matlab编程。

3、通过Matlab仿真费诺编码的过程。

二、实验设备

1、计算机

2、软件:

Matlab

三、实验原理

费诺编码的步骤:

1、将概率按从大到小的顺序排列;

2、按编码进制数将概率分组,使每组概率和尽可能接近或相等;

3、给每组分配一位码元;

4、将每一分组再按同样原则划分,重复2和3,直到概率不再可分为止。

四、实验容

对给定信源

进行二进制费诺编码,通过MATLAB进行编码过程仿真,并计算平均码长。

程序如下:

clc;

clear;

A=[0.4,0.3,0.1,0.09,0.07,0.04];

A=fliplr(sort(A));

[m,n]=size(A);

fori=1:

n

B(i,1)=A(i);

end

a=sum(B(:

1))/2;

fork=1:

n-1

ifabs(sum(B(1:

k,1))-a)<=abs(sum(B(1:

k+1,1))-a)

break;

end

end

fori=1:

n

ifi<=k

B(i,2)=0;

else

B(i,2)=1;

end

end

END=B(:

2)';

END=sym(END);

j=3;

while(j~=0)

p=1;

while(p<=n)

x=B(p,j-1);

forq=p:

n

ifx==-1

break;

else

ifB(q,j-1)==x

y=1;

continue;

else

y=0;

break;

end

end

end

ify==1

q=q+1;

end

ifq==p|q-p==1

B(p,j)=-1;

else

ifq-p==2

B(p,j)=0;

END(p)=[char(END(p)),'0'];

B(q-1,j)=1;

END(q-1)=[char(END(q-1)),'1'];

else

a=sum(B(p:

q-1,1))/2;

fork=p:

q-2

ifabs(sum(B(p:

k,1))-a)<=abs(sum(B(p:

k+1,1))-a);

break;

end

end

fori=p:

q-1

ifi<=k

B(i,j)=0;

END(i)=[char(END(i)),'0'];

else

B(i,j)=1;

END(i)=[char(END(i)),'1'];

end

end

end

end

p=q;

end

C=B(:

j);

D=find(C==-1);

[e,f]=size(D);

ife==n

j=0;

else

j=j+1;

end

end

B

A

END

fori=1:

n

[u,v]=size(char(END(i)));

L(i)=v;

end

avlen=sum(L.*A)

五、思考题

对给定信源

进行二进制费诺编码。

写出编码码字,并计算平均码长。

六、实验报告要求

写出用Matlab进行费诺编码的程序,并给出仿真结果。

 

实验四霍夫曼编码

一、实验目的

1、掌握费诺编码的编码原理

2、熟悉Matlab编程。

3、通过Matlab仿真霍夫曼编码的过程。

二、实验设备

1、计算机

2、软件:

Matlab

三、实验原理

霍夫曼编码的步骤:

1、把信源符号按概率大小顺序排列,并设法按逆次序分配码字的长度。

2、在分配码字长度时,首先将出现概率最小的两个符号的概率相加合成一个概率。

3、把这个合成概率看成是一个新组合符号的概率,重复上述做法直到最后只剩下两个符号概率为止。

4、完成以上概率顺序排列后,再反过来逐步向前进行编码,每一次有二个分支各赋予一个二进制码,可以对概率大的赋为0,概率小的赋为1。

四、实验容

对给定信源

进行二进制霍夫曼编码,通过MATLAB进行编码过程仿真,并计算平均码长。

程序如下:

clc;

clear;

A=[0.2,0.19,0.18,0.17,0.15,0.1,0.01];

A=fliplr(sort(A));%按降序排列

T=A;

[m,n]=size(A);

B=zeros(n,n-1);

fori=1:

n

B(i,1)=T(i);

end

r=B(i,1)+B(i-1,1);

T(n-1)=r;

T(n)=0;

T=fliplr(sort(T));

t=n-1;

forj=2:

n-1

fori=1:

t

B(i,j)=T(i);

end

K=find(T==r);

B(n,j)=K(end);

r=(B(t-1,j)+B(t,j));

T(t-1)=r;

T(t)=0;

T=fliplr(sort(T));

t=t-1;

end

B;

END1=sym('[0,1]');

END=END1;

t=3;

d=1;

forj=n-2:

-1:

1

fori=1:

t-2

ifi>1&B(i,j)==B(i-1,j)

d=d+1;

else

d=1;

end

B(B(n,j+1),j+1)=-1;

temp=B(:

j+1);

x=find(temp==B(i,j));

END(i)=END1(x(d));

end

y=B(n,j+1);

END(t-1)=[char(END1(y)),'0'];

END(t)=[char(END1(y)),'1'];

t=t+1;

END1=END;

end

A

END

fori=1:

n

[a,b]=size(char(END(i)));

L(i)=b;

end

avlen=sum(L.*A)

H1=log2(A);

H=-A*(H1')

P=H/avlen%

五、思考题

对给定信源

进行二进制霍夫曼编码。

写出编码码字,并计算平均码长。

六、实验报告要求

写出用Matlab进行霍夫曼编码的程序,并给出仿真结果。

 

实验五香农编码

一、实验目的

1、掌握香农的编码原理

2、熟悉C++编程。

3、通过C++仿真香农编码的过程。

二、实验设备

1、计算机

2、软件:

C++

三、实验原理

给定某个信源符号的概率分布,通过以下的步骤进行香农编码

1、将信源消息符号按其出现的概率大小排列:

2、确定满足下列不等式的整数码长Ki;

3、为了编成唯一可译码,计算第i个消息的累加概率:

4、将累加概率Pi变换成二进制数。

5、取Pi二进制数的小数点后Ki位即为该消息符号的二进制码。

四、实验容

对给定信源

进行二进制香农编码,通过C++进行编码过程仿真。

香农(Shannon)编码参考程序

intmain()

{

intN;

cout<<”请输入信源符号个数:

”;cin>>N;

cout<<”请输入各符号的概率:

”<

double*X=newdouble[N];//离散无记忆信源

inti,j;

for(i=0;i

{

cout<<”X[”<>X[i];

}

//由小到大排序

for(i=0;i

for(j=i+1;j

if(X[i]

{doubletemp=X[i];X[i]=X[j];X[j]=temp;}

int*K=newint[N];//确定码长

for(i=0;i

{

K[i]=int(-(log(X[i])/log

(2)))+1;//确认码长为1-log2(p(xi))

if(K[i]==(-(log(X[i])/log

(2)))+1)//当K[i]=-log2(p(xi))时,K[i]--

K[i]--;

}

//累加概率

double*Pa=newdouble[N];pa[0]=0.0;

for(i=1;i

pa[i]=pa[i-1]+X[i-1];

//将累加概率转换为二进制

string*code=newstring[N];

for(i=0;i

for(j=0;j

{

doubletemp=Pa[i]*2;

if(temp>=1)//累加概率乘2大于1,对应码字加1,累加概率自身取余

{

code[i]+=”1”;

Pa[i]=Pa[i]*2-1;

}

else//累加概率乘2小于1时,对应码字加0,累加概率自身取余

{

code[i]+=”0”;

Pa[i]*=2;

}

}

for(i=0;i

code[i]=code[i].substr(0,K[i]);//求码字

//输出码字

cout<

for(i=0;i

cout<

delete[]X;

delete[]Pa;

delete[]K;

delete[]code;

getch();

retuen0;

}

五、思考题

对给定信源

进行二进制香农编码。

写出编码码字,并计算平均码长。

六、实验报告要求

写出用C++进行香农编码的程序,并给出仿真结果。

 

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

当前位置:首页 > 法律文书 > 调解书

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

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