信息论与编码实验报告

信息论与编码实验报告
信息论与编码实验报告

实验报告

课程名称:信息论与编码姓名:

系:

专业:

年级:

学号:

指导教师:

职称:

年月日

目录

实验一信源熵值的计算 (1)

实验二 Huffman信源编码 (5)

实验三 Shannon编码 (9)

实验四信道容量的迭代算法 (12)

实验五率失真函数 (15)

实验六差错控制方法 (20)

实验七汉明编码 (22)

实验一 信源熵值的计算

一、 实验目的

1 进一步熟悉信源熵值的计算 2熟悉 Matlab 编程

二、实验原理

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

∑∑=--==q

i i i q

i i i p p p p x H 1

212log 1

log )(

MATLAB 实现:))(log *.(2x x sum HX -=;或者))((log *)(2i x i x h h -= 流程:第一步:打开一个名为“nan311”的TXT 文档,读入一篇英文文章存入一个数组temp ,为了程序准确性将所读内容转存到另一个数组S ,计算该数组中每个字母与空格的出现次数(遇到小写字母都将其转化为大写字母进行计数),每出现一次该字符的计数器+1;

第二步:计算信源总大小计算出每个字母和空格出现的概率;

最后,通过统计数据和信息熵公式计算出所求信源熵值(本程序中单位为奈特nat )。

程序流程图:

三、实验内容

1、写出计算自信息量的Matlab 程序

2、已知:信源符号为英文字母(不区分大小写)和空格。

输入:一篇英文的信源文档。

输出:给出该信源文档的中各个字母与空格的概率分布,以及该信源的熵。

四、实验环境

Microsoft Windows 7

Matlab 6.5

五、编码程序

#include"stdio.h"

#include

#include

#define N 1000

int main(void)

{

char s[N];

int i,n=0;

float num[27]={0};

double result=0,p[27]={0};

FILE *f;

char *temp=new char[485];

f=fopen("nan311.txt","r");

while (!feof(f)) {

fread(temp,1, 486, f);}

fclose(f);

s[0]=*temp;

for(i=0;i

{

s[i]=temp[i];

}

for(i=0;i

{

if(s[i]==' ')

num[26]++;

else if(s[i]>='a'&&s[i]<='z')

num[s[i]-97]++;

else if(s[i]>='A'&&s[i]<='Z')

num[s[i]-65]++;

}

printf("文档中各个字母出现的频率:\n");

for(i=0;i<26;i++)

{

p[i]=num[i]/strlen(s);

printf("%3c:%f\t",i+65,p[i]);

n++;

if(n==3)

{

printf("\n");

n=0;

}

}

p[26]=num[26]/strlen(s);

printf("空格:%f\t",p[26]);

printf("\n");

for(i=0;i<27;i++)

{

if (p[i]!=0)

result=result+p[i]*log(p[i]);

}

result=-result;

printf("信息熵为:%f",result);

printf("\n");

return 0;

}

六、求解结果

其中nan311.txt中的文档如下:

There is no hate without fear. Hate is crystallized fear, fear’s dividend, fear objectivized. We hate what we fear and so where hate is, fear is lurking. Thus we hate what threatens our person, our vanity and

our dreams and plans for ourselves. If we can isolate this element in what we hate we may be able to cease from hating.

七、实验总结

通过这次实验,我们懂得了不必运行程序时重新输入文档就可以对文档进行统计,既节省了时间而且也规避了一些输入错误。在实验中,我们进一步了解到信源熵的计算,理论和实践的结合让我们对这个知识点了解的更加深刻了。

实验二 Huffman信源编码

一、实验目的

1.理解信源的最优变长编码的基本思想。

2.熟练掌握Huffman信源编码方法。

二、设计原理

设信源S={s1,s2,…..,sq},其对应的概率分布为P(si)={p1,p2,p3,….,pq},则其编码步骤如下:

(1)将q个信源符号按递减方式排列。

(2)用0、1码符分别表示概率最小的两个信源符号,并将这两个符号合并成一个新的符号,从而得到q-1个符号的新信源成为S信源的缩减信源S1。

(3)将缩减信源S1中的符号仍按递减顺序排列,再将最小两个概率相加,合并成一个符号,并分别用0、1码表示,这样有形成了q-2个缩减信源S2。

(4)依次继续下去,直到缩减信源只剩下两个符号为止,将最后两个符号用0、1分别表示。

(5)从最后一次缩减信源开始,向前返回,沿信源缩减过程的反方向取出所编的马元。

三、实验内容

计算定信源和输入信号字母表的Huffman编码,并计算Huffman编码的平均码长。实验具体要求如下:

信源字母表的概率分布为:

P={ 0.15,0.12,0.2,0.08,0.04,0.18,0.02,0.09,0.04,0.02,0.06}

输入信号字母表:

U={0,1,2};

1.独立设计信源和输入信号字母表进行Huffman编码,其中信源字母表元素个数要求是8以上,信号字母表元素个数是2以上;

2.输出Huffman编码的平均码长。

四、实验环境

Microsoft Windows 7

Matlab 6.5

五、编码程序

MATLAB编码:

function[h,L]=huffman(p,r)

%变量p为符号出现概率所组成的概率向量

%返回值h为利用Huffman编码算法编码后最后得到编码结果

%返回值L为进行Huffman编码后所得编码的码字长度

if length(find(p<0))~=0

error('Not a prob.vector,negative component(s)');

end

%判断概率向量中是否有0元素,有0元素程序显示出错,终止运行

if (sum(p,2)>1)

error('Not a prob.vector,components do not add up to 1');

end

%判断所有符号出现概率之和是否大于1,如果大于1程序显示出错,终止运行

a=length(p); %测定概率向量长度,将长度值赋给变量n k=fix((a-1)/(r-1));

l1=a-k*r+k;

q=zeros(1,a);

m=zeros(k+1,a);

mp=m;

q=p;

[m(1,:),mp(1,:)]=sort(q);

if (l1>1)

s=sum(m(1,1:l1),2);

q=[s,m(1,(l1+1):a),ones(1,l1-1)];

[m(2,:),mp(2,:)]=sort(q);

else

m(2,:)=m(1,:);

mp(2,:)=1:1:a;

end

for i=3:k+1

s=sum(m(i-1,1:r),2);

q=[s,m(i-1,r+1:a),ones(1,r-1)];

[m(i,:),mp(i,:)]=sort(q);

end

n1=m;

n2=mp;

for i=1:k+1

n1(i,:)=m(k+2-i,:);

n2(i,:)=mp(k+2-i,:);

end

m=n1;

mp=n2;

c=cell(k+1,a);

for j=1:r

c{1,j}=num2str(j-1);

end

for i=2:k

p1=find(mp(i-1,:)==1);

for j=1:r

c{i,j}=strcat(c{i-1,p1},int2str(j-1));

end

for j=(r+1):(p1+r-1)

c{i,j}=c{i-1,j-r};

end

for j=(p1+r):a

c{i,j}=c{i-1,j-r+1};

end

end

if l1==1

for j=1:a

c{k+1,j}=c{k,j};

end

else

p1=find(mp(k,:)==1);

for j=1:l1

c{k+1,j}=strcat(c(k,p1),int2str(j-1));

end

for j=(l1+1):(p1+l1)

c{k+1,j}=c{k,mp(1,j-l1)};

end

for j=(p1(1)+l1+1):a

c{k+1,j}=c{k,mp(1,j-l1+1)};

end

end

for j=1:a

l(j)=length(c{k+1,j});

end

h=cell(1,a);

for j=1:a

h{1,j}=c{k+1,j};

end

L=sum(l.*m(k+1,:)); %求平均码长

2、在MATLAB命令窗口中输入:

p=[0.15,0.12,0.2,0.08,0.04,0.18,0.02,0.09,0.04,0.02,0.06]; r=3;

[h,L]=huffman(p,r).

六、运行结果

得出的结论为:

概率编码概率编码

0.1521200.0211

0.1221210.0912

0.221220.0420

0.082100.0222

0.042110.060

0.1810

L=2.0600

七、实验总结

在huffman编码的过程中,我们运用了平时熟悉的数学软件MATLAB的运行来实现,把书本上huffman的算法运用编程来实现。通过这次实验,使我更加清晰地理解huffman编码的原理及实现过程,并且能够在MATLAB中熟练地进行编码运行。

实验三 Shannon 编码

一、实验目的

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

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

3、学习离散信源平均信息量的计算方法

4、熟悉 Matlab 编程

二、实验原理

给定某个信源符号的概率分布,通过以下的步骤进行香农编码 1、信源符号按概率从大到小排列;

12.......n

p p p ≥≥≥

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

()()1

i i i lb p K lb p -≤<-+

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

4、将累加概率i P 变换成二进制数;

5、取i P 二进制数的小数点后i K 位即为该消息符号的二进制码字。

三、实验内容

1、写出计算自信息量的Matlab 程序

2、写出计算离散信源平均信息量的Matlab 程序。

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

四、实验环境

Microsoft Windows 7 Matlab 6.5

五、编码程序

计算如下信源进行香农编码,并计算编码效率:

??????=??????01.01.015.017.018.019.02.06543210

a a a a a a a P X MATLAB 程序:

(1) a=[0.2 0.18 0.19 0.15 0.17 0.1 0.01]; k=length(a);y=0; for i=1:k-1

1

1()

i i k k P p a -==∑

for n=i+1:k

if (a(i)

t=a(i);

a(i)=a(n);

a(n)=t;

end

end

end

s=zeros(k,1);b=zeros(k,1);

for m=1:k

s(m)=y;

y=y+a(m);

b(m)=ceil(-log2(a(m)));

z=zeros(b(m),1);

x=s(m);

p=b2d10(x);

for r=1:b(m)

z(r)=p(r);

end

disp('ê?3??á1??a£o')

disp('3?ê????ê'),disp(a(m)) disp('?óoí?á1?'),disp(s(m)) disp('±à????êy'),disp(b(m))

disp('×???±à??'),disp(z')

end

(2) function y=b2d10(x)

for i=1:8

temp=x.*2;

if(temp<1)

y(i)=0;

x=temp;

else

x=temp-1;

y(i)=1;

end

end

(3) p=[0.2 0.19 0.18 0.17 0.15 0.1 0.01]; sum=0;sum1=0;

for i=1:7

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

K(i)=ceil(a(i));

R(i)=p(i)*K(i);

sum=sum+R(i);

c(i)=a(i)*p(i);

信息论与编码实验

实验五霍夫曼编码 一、实验目的 1、熟悉Matlab 工作环境及工具箱; 2、掌握霍夫曼编码的基本步骤; 3、利用MATLAB实现霍夫曼编码。 二、实验内容 (1)熟悉理解Huffman编码的过程 (2)将给定的数据进行Huffman编码 知识要点: 1、霍夫曼编码的基本原理。参照教材及参考书。 2、二进制霍夫曼编码方法。 1. 基本原理: 变长编码 不要求所有码字长度相同,对不同概率的信源符号或序列,可赋予不同长度的码字。变长编码力求平均码长最小,此时编码效率最高,信源的冗余得到最大程度的压缩。 1)几种常用变长编码方法: 霍夫曼编码 费若编码 香农编码。 2)霍夫曼编码: 二进制霍夫曼编码 r进制霍夫曼编码 符号序列的霍夫曼编码。 3)二进制霍夫曼编码的编码过程: 将信源中n个符号按概率分布的大小,以递减次序排列起来; 用0和1码分别分配给概率最小的两个信源符号,并将这两个概率最小的信源符号合并成一个新符号,并用这两个最小概率之和作为新符号的概率,从而得到只包含n-1个符号的新信源,称为其缩减信源; 把缩减信源的符号仍按概率大小以递减次序排列,再将最后两个概率最小的符号合并

成一个新符号,并分别用0和1码表示,这样又形成一个新缩减信源; 依次继续下去,直到缩减信源最后只剩两个符号为止。再将最后两个新符号分别用0和1 码符号表示。最后这两个符号的概率之和为1,然后从最后一级缩减信源开始,依编码路径右后向前返回,就得到各信源符号所对应得码符号序列,即对应得码字。 r进制霍夫曼编码 由二进制霍夫曼编码可推广到r进制霍夫曼编码,只是每次求缩减信源时,改求r个最小概率之和,即将r个概率最小符号缩减为一个新符号,直到概率之和为1。但要注意,即缩减过程中可能到最后没有r个符号。为达次目的,可给信源添加几个概率为零的符号。 符号序列的霍夫曼编码 对信源编码除了对信源符号编码以外,也可对信源符号序列编码,一般来说,对序列编码比对单个符号更为有效。 2 数据结构与算法描述 1)变量及函数的定义 3 实验数据与实验结果(可用文字描述或贴图的方式进行说明) 1)测试数据 0.2 0.1 0.3 0.1 0.1 0.2 2)实验结果

信息论与编码试卷与答案

一、(11’)填空题 (1)1948年,美国数学家香农发表了题为“通信的数学理论”的长篇论文,从而创立了信息论。 (2)必然事件的自信息是 0 。 (3)离散平稳无记忆信源X的N次扩展信源的熵等于离散信源X的熵的 N倍。 (4)对于离散无记忆信源,当信源熵有最大值时,满足条件为__信源符号等概分布_。 (5)若一离散无记忆信源的信源熵H(X)等于2.5,对信源进行等长的无失真二进制编码,则编码长度至少为 3 。 (6)对于香农编码、费诺编码和霍夫曼编码,编码方法惟一的是香农编码。(7)已知某线性分组码的最小汉明距离为3,那么这组码最多能检测出_2_______个码元错误,最多能纠正___1__个码元错误。 (8)设有一离散无记忆平稳信道,其信道容量为C,只要待传送的信息传输率R__小于___C(大于、小于或者等于),则存在一种编码,当输入序列长度n足够大,使译码错误概率任意小。(9)平均错误概率不仅与信道本身的统计特性有关,还与___译码规则____________和___编码方法___有关 三、(5')居住在某地区的女孩中有25%是大学生,在女大学生中有75%是身高1.6米以上的,而女孩中身高1.6米以上的占总数的一半。 假如我们得知“身高1.6米以上的某女孩是大学生”的消息,问获得多少信息量? 解:设A表示“大学生”这一事件,B表示“身高1.60以上”这一事件,则 P(A)=0.25 p(B)=0.5 p(B|A)=0.75 (2分) 故 p(A|B)=p(AB)/p(B)=p(A)p(B|A)/p(B)=0.75*0.25/0.5=0.375 (2分) I(A|B)=-log0.375=1.42bit (1分) 四、(5')证明:平均互信息量同信息熵之间满足 I(X;Y)=H(X)+H(Y)-H(XY) 证明:

信息论与编码课后习题答案

1. 有一个马尔可夫信源,已知p(x 1|x 1)=2/3,p(x 2|x 1)=1/3,p(x 1|x 2)=1,p(x 2|x 2)=0,试画出该信源的香农线图,并求出信源熵。 解:该信源的香农线图为: 1/3 ○ ○ 2/3 (x 1) 1 (x 2) 在计算信源熵之前,先用转移概率求稳定状态下二个状态x 1和 x 2 的概率)(1x p 和)(2x p 立方程:)()()(1111x p x x p x p =+)()(221x p x x p =)()(2132x p x p + )()()(1122x p x x p x p =+)()(222x p x x p =)(0)(2131x p x p + )()(21x p x p +=1 得4 3 1)(=x p 4 12)(=x p 马尔可夫信源熵H = ∑∑- I J i j i j i x x p x x p x p )(log )()( 得 H=0.689bit/符号 2.设有一个无记忆信源发出符号A 和B ,已知4 341)(.)(= =B p A p 。求: ①计算该信源熵; ②设该信源改为发出二重符号序列消息的信源,采用费诺编码方法,求其平均信息传输速率; ③又设该信源改为发三重序列消息的信源,采用霍夫曼编码方法,求其平均信息传输速率。 解:①∑- =X i i x p x p X H )(log )()( =0.812 bit/符号 ②发出二重符号序列消息的信源,发出四种消息的概率分别为 用费诺编码方法 代码组 b i BB 0 1 BA 10 2 AB 110 3 AA 111 3 无记忆信源 624.1)(2)(2 ==X H X H bit/双符号 平均代码组长度 2B =1.687 bit/双符号 B X H R )(22==0.963 bit/码元时间 ③三重符号序列消息有8个,它们的概率分别为 用霍夫曼编码方法 代码组 b i BBB 64 27 0 0 1 BBA 64 9 0 )(6419 1 110 3

信息论与编码实验报告.

本科生实验报告 实验课程信息论与编码 学院名称信息科学与技术学院 专业名称通信工程 学生姓名 学生学号 指导教师谢振东 实验地点6C601 实验成绩 二〇一五年十一月二〇一五年十一月

实验一:香农(Shannon )编码 一、实验目的 掌握通过计算机实现香农编码的方法。 二、实验要求 对于给定的信源的概率分布,按照香农编码的方法进行计算机实现。 三、实验基本原理 给定某个信源符号的概率分布,通过以下的步骤进行香农编码 1、将信源消息符号按其出现的概率大小排列 )()()(21n x p x p x p ≥≥≥ 2、确定满足下列不等式的整数码长K i ; 1)(l o g )(l o g 22+-<≤-i i i x p K x p 3、为了编成唯一可译码,计算第i 个消息的累加概率 ∑ -== 1 1 )(i k k i x p p 4、将累加概率P i 变换成二进制数。 5、取P i 二进制数的小数点后K i 位即为该消息符号的二进制码。 四、源程序: #include #include #include #include #include using namespace std; int main() { int N; cout<<"请输入信源符号个数:";cin>>N; cout<<"请输入各符号的概率:"<

int i,j; for(i=0;i

信息论与编码试卷及答案(多篇)

一、概念简答题(每题5分,共40分) 1.什么是平均自信息量与平均互信息,比较一下这两个概念的异同? 答:平均自信息为 表示信源的平均不确定度,也表示平均每个信源消息所提供的信息量。 平均互信息 表示从Y获得的关于每个X的平均信息量,也表示发X前后Y的平均不确定性减少的量,还表示通信前后整个系统不确定性减少的量。 2.简述最大离散熵定理。对于一个有m个符号的离散信源,其最大熵是多少? 答:最大离散熵定理为:离散无记忆信源,等概率分布时熵最大。 最大熵值为。 3.解释信息传输率、信道容量、最佳输入分布的概念,说明平均互信息与信源的概率分布、信道的传递概率间分别是什么关系? 答:信息传输率R指信道中平均每个符号所能传送的信息量。信道容量是一个信道所能达到的最大信息传输率。信息传输率达到信道容量时所对应的输入概率分布称为最佳输入概率分布。 平均互信息是信源概率分布的∩型凸函数,是信道传递概率的U型凸函数。 4.对于一个一般的通信系统,试给出其系统模型框图,并结合此图,解释数据处理定理。 答:通信系统模型如下:

数据处理定理为:串联信道的输入输出X、Y、Z组成一个马尔可夫链,且有, 。说明经数据处理后,一般只会增加信息的损失。 5.写出香农公式,并说明其物理意义。当信道带宽为5000Hz,信噪比为30dB时求信道容量。 .答:香农公式为,它是高斯加性白噪声信道在单位时间内的信道容量,其值取决于信噪比和带宽。 由得,则 6.解释无失真变长信源编码定理。 .答:只要,当N足够长时,一定存在一种无失真编码。 7.解释有噪信道编码定理。 答:当R<C时,只要码长足够长,一定能找到一种编码方法和译码规则,使译码错误概率无穷小。 8.什么是保真度准则?对二元信源,其失真矩阵,求a>0时率失真函数的和? 答:1)保真度准则为:平均失真度不大于允许的失真度。 2)因为失真矩阵中每行都有一个0,所以有,而。 二、综合题(每题10分,共60分) 1.黑白气象传真图的消息只有黑色和白色两种,求:

信息论与编码实验报告材料

实验报告 课程名称:信息论与编码姓名: 系:专 业:年 级:学 号:指导教 师:职 称:

年月日 目录 实验一信源熵值的计算 (1) 实验二Huffman 信源编码. (5) 实验三Shannon 编码 (9) 实验四信道容量的迭代算法 (12) 实验五率失真函数 (15) 实验六差错控制方法 (20) 实验七汉明编码 (22)

实验一信源熵值的计算 、实验目的 1 进一步熟悉信源熵值的计算 2 熟悉Matlab 编程 、实验原理 熵(平均自信息)的计算公式 q q 1 H(x) p i log2 p i log2 p i i 1 p i i 1 MATLAB实现:HX sum( x.* log2( x));或者h h x(i)* log 2 (x(i )) 流程:第一步:打开一个名为“ nan311”的TXT文档,读入一篇英文文章存入一个数组temp,为了程序准确性将所读内容转存到另一个数组S,计算该数组中每个字母与空格的出现次数( 遇到小写字母都将其转化为大写字母进行计数) ,每出现一次该字符的计数器+1;第二步:计算信源总大小计算出每个字母和空格出现的概率;最后,通过统计数据和信息熵公式计算出所求信源熵值(本程序中单位为奈特nat )。 程序流程图: 三、实验内容 1、写出计算自信息量的Matlab 程序 2、已知:信源符号为英文字母(不区分大小写)和空格输入:一篇英文的信源文档。输出:给出该信源文档的中各个字母与空格的概率分布,以及该信源的熵。 四、实验环境 Microsoft Windows 7

五、编码程序 #include"stdio.h" #include #include #define N 1000 int main(void) { char s[N]; int i,n=0; float num[27]={0}; double result=0,p[27]={0}; FILE *f; char *temp=new char[485]; f=fopen("nan311.txt","r"); while (!feof(f)) { fread(temp,1, 486, f);} fclose(f); s[0]=*temp; for(i=0;i='a'&&s[i]<='z') num[s[i]-97]++; else if(s[i]>='A'&&s[i]<='Z') num[s[i]-65]++; } printf(" 文档中各个字母出现的频率:\n"); for(i=0;i<26;i++) { p[i]=num[i]/strlen(s); printf("%3c:%f\t",i+65,p[i]); n++; if(n==3) { printf("\n"); n=0; } } p[26]=num[26]/strlen(s); printf(" 空格:%f\t",p[26]);

信息论与编码理论课后习题答案高等教育出版社

信息论与编码理论习题解 第二章-信息量和熵 解: 平均每个符号长为:154 4.0312.032= ?+?秒 每个符号的熵为9183.03log 3 1 23log 32=?+?比特/符号 所以信息速率为444.34 15 9183.0=?比特/秒 解: 同步信号均相同不含信息,其余认为等概, 每个码字的信息量为 3*2=6 比特; 所以信息速率为600010006=?比特/秒 解:(a)一对骰子总点数为7的概率是 36 6 所以得到的信息量为 585.2)366(log 2= 比特 (b) 一对骰子总点数为12的概率是36 1 所以得到的信息量为 17.536 1 log 2= 比特 解: (a)任一特定排列的概率为 ! 521 ,所以给出的信息量为 58.225! 521 log 2 =- 比特 (b) 从中任取13张牌,所给出的点数都不相同的概率为 1352 13 13 521344!13C A =? 所以得到的信息量为 21.134 log 1313 52 2=C 比特. 解:易证每次出现i 点的概率为 21 i ,所以

比特比特比特比特比特比特比特398.221 log 21)(807.1)6(070.2)5(392.2)4(807.2)3(392.3)2(392.4)1(6,5,4,3,2,1,21 log )(26 12=-==============-==∑ =i i X H x I x I x I x I x I x I i i i x I i 解: 可能有的排列总数为 27720! 5!4!3! 12= 没有两棵梧桐树相邻的排列数可如下图求得, Y X Y X Y X Y X Y X Y X Y X Y 图中X 表示白杨或白桦,它有???? ??37种排法,Y 表示梧桐树可以栽 种的位置,它有???? ??58种排法,所以共有???? ??58*???? ??37=1960种排法保证没有 两棵梧桐树相邻,因此若告诉你没有两棵梧桐树相邻时,得到关于树排列的信息为1960log 27720log 22-= 比特 解: X=0表示未录取,X=1表示录取; Y=0表示本市,Y=1表示外地; Z=0表示学过英语,Z=1表示未学过英语,由此得

《信息论与信源编码》实验报告

《信息论与信源编码》实验报告 1、实验目的 (1) 理解信源编码的基本原理; (2) 熟练掌握Huffman编码的方法; (3) 理解无失真信源编码和限失真编码方法在实际图像信源编码应用中的差异。 2、实验设备与软件 (1) PC计算机系统 (2) VC++6.0语言编程环境 (3) 基于VC++6.0的图像处理实验基本程序框架imageprocessing_S (4) 常用图像浏览编辑软件Acdsee和数据压缩软件winrar。 (5) 实验所需要的bmp格式图像(灰度图象若干幅) 3、实验内容与步骤 (1) 针对“图像1.bmp”、“图像2.bmp”和“图像3.bmp”进行灰度频率统计(即计算图像灰度直方图),在此基础上添加函数代码构造Huffman码表,针对图像数据进行Huffman编码,观察和分析不同图像信源的编码效率和压缩比。 (2) 利用图像处理软件Acdsee将“图像1.bmp”、“图像2.bmp”和“图像 3.bmp”转换为质量因子为10、50、90的JPG格式图像(共生成9幅JPG图像),比较图像格式转换前后数据量的差异,比较不同品质因素对图像质量的影响; (3) 数据压缩软件winrar将“图像1.bmp”、“图像2.bmp”和“图像3.bmp”分别生成压缩包文件,观察和分析压缩前后数据量的差异; (4) 针对任意一幅图像,比较原始BMP图像数据量、Huffman编码后的数据量(不含码表)、品质因素分别为10、50、90时的JPG文件数据量和rar压缩包的数据量,分析不同编码方案下图像数据量变化的原因。 4、实验结果及分析 (1)在VC环境下,添加代码构造Huffman编码表,对比试验结果如下: a.图像1.bmp:

信息论与编码期中试卷及答案

信息论与编码期中试题答案 一、(10’)填空题 (1)1948年,美国数学家香农发表了题为“通信的数学理论”的长篇论文,从而创立了信息论。 (2)必然事件的自信息是0 。 (3)离散平稳无记忆信源X的N次扩展信源的熵等于离散信源X的熵的N倍。 (4)对于离散无记忆信源,当信源熵有最大值时,满足条件为__信源符号等概分布_。 (5)若一离散无记忆信源的信源熵H(X)等于2.5,对信源进行等长的无失真二进制编码,则编码长度至少为 3 。 二、(10?)判断题 (1)信息就是一种消息。(? ) (2)信息论研究的主要问题是在通信系统设计中如何实现信息传输、存储和处理的有效性和可靠性。(? ) (3)概率大的事件自信息量大。(? ) (4)互信息量可正、可负亦可为零。(? ) (5)信源剩余度用来衡量信源的相关性程度,信源剩余度大说明信源符号间的依赖关系较小。 (? ) (6)对于固定的信源分布,平均互信息量是信道传递概率的下凸函数。(? ) (7)非奇异码一定是唯一可译码,唯一可译码不一定是非奇异码。(? ) (8)信源变长编码的核心问题是寻找紧致码(或最佳码)。 (? ) (9)信息率失真函数R(D)是关于平均失真度D的上凸函数. ( ? ) 三、(10?)居住在某地区的女孩中有25%是大学生,在女大学生中有75%是身高1.6米以上的,而女孩中身高1.6米以上的占总数的一半。 假如我们得知“身高1.6米以上的某女孩是大学生”的消息,问获得多少信息量? 解:设A表示“大学生”这一事件,B表示“身高1.60以上”这一事件,则 P(A)=0.25 p(B)=0.5 p(B|A)=0.75 (5分) 故p(A|B)=p(AB)/p(B)=p(A)p(B|A)/p(B)=0.75*0.25/0.5=0.375 (4分) I(A|B)=-log0.375=1.42bit (1分)

信息论与编码课后答案

一个马尔可夫信源有3个符号{}1,23,u u u ,转移概率为:()11|1/2p u u =,()21|1/2p u u =, ()31|0p u u =,()12|1/3p u u =,()22|0p u u =,()32|2/3p u u =,()13|1/3p u u =,()23|2/3p u u =,()33|0p u u =,画出状态图并求出各符号稳态概率。 解:状态图如下 状态转移矩阵为: 1/21/2 01/302/31/32/30p ?? ?= ? ??? 设状态u 1,u 2,u 3稳定后的概率分别为W 1,W 2、W 3 由1231WP W W W W =??++=?得1231132231231 112331223 231W W W W W W W W W W W W ?++=???+=???=???++=? 计算可得1231025925625W W W ?=??? =?? ?=?? 由符号集{0,1}组成的二阶马尔可夫链,其转移概率为:(0|00)p =,(0|11)p =,(1|00)p =, (1|11)p =,(0|01)p =,(0|10)p =,(1|01)p =,(1|10)p =。画出状态图,并计算各状态 的稳态概率。 解:(0|00)(00|00)0.8p p == (0|01)(10|01)0.5p p == (0|11)(10|11)0.2p p == (0|10)(00|10)0.5p p == (1|00)(01|00)0.2p p == (1|01)(11|01)0.5p p == (1|11)(11|11)0.8p p == (1|10)(01|10)0.5p p ==

信息论与编码实验报告

实验一 绘制二进熵函数曲线(2个学时) 一、实验目的: 1. 掌握Excel 的数据填充、公式运算和图表制作 2. 掌握Matlab 绘图函数 3. 掌握、理解熵函数表达式及其性质 二、实验要求: 1. 提前预习实验,认真阅读实验原理以及相应的参考书。 2. 在实验报告中给出二进制熵函数曲线图 三、实验原理: 1. Excel 的图表功能 2. 信源熵的概念及性质 ()()[] ()[]())(1)(1 .log )( .) ( 1log 1log ) (log )()(10 , 110)(21Q H P H Q P H b n X H a p H p p p p x p x p X H p p p x x X P X i i i λλλλ-+≥-+≤=--+-=-=≤≤? ?????-===??????∑ 单位为 比特/符号 或 比特/符号序列。 当某一符号xi 的概率p(xi)为零时,p(xi)log p(xi) 在熵公式中无意义,为此规定这时的 p(xi)log p(xi) 也为零。当信源X 中只含有一个符号x 时,必有p(x)=1,此时信源熵H (X )为零。 四、实验内容: 用Excel 和Matlab 软件制作二进熵函数曲线。根据曲线说明信源熵的物理意义。 (一) Excel 具体步骤如下: 1、启动Excel 应用程序。 2、准备一组数据p 。在Excel 的一个工作表的A 列(或其它列)输入一组p ,取步长为0.01,从0至100产生101个p (利用Excel 填充功能)。

3、取定对数底c,在B列计算H(x) ,注意对p=0与p=1两处,在B列对应位置直接输入0。Excel中提供了三种对数函数LN(x),LOG10(x)和LOG(x,c),其中LN(x)是求自然对数,LOG10(x)是求以10为底的对数,LOG(x,c)表示求对数。选用c=2,则应用函数LOG(x,2)。 在单元格B2中输入公式:=-A2*LOG(A2,2)-(1-A2)*LOG(1-A2,2) 双击B2的填充柄,即可完成H(p)的计算。 4、使用Excel的图表向导,图表类型选“XY散点图”,子图表类型选“无数据点平滑散点图”,数据区域用计算出的H(p)数据所在列范围,即$B$1:$B$101。在“系列”中输入X值(即p值)范围,即$A$1:$A$101。在X轴输入标题概率,在Y轴输入标题信源熵。 (二)用matlab软件绘制二源信源熵函数曲线 p = 0.0001:0.0001:0.9999; h = -p.*log2(p)-(1-p).*log2(1-p); plot(p,h) 五、实验结果

信息论与编码试题集与答案

一填空题(本题20分,每小题2分) 1、平均自信息为 表示信源的平均不确定度,也表示平均每个信源消息所提供的信息量。 平均互信息 表示从Y获得的关于每个X的平均信息量,也表示发X前后Y的平均不确定性减少的量,还表示通信前后整个系统不确定性减少的量。 2、最大离散熵定理为:离散无记忆信源,等概率分布时熵最大。 3、最大熵值为。 4、通信系统模型如下: 5、香农公式为为保证足够大的信道容量,可采用(1)用频带换信噪比;(2)用信噪比换频带。 6、只要,当N足够长时,一定存在一种无失真编码。 7、当R<C时,只要码长足够长,一定能找到一种编码方法和译码规则,使译码错误概率无穷小。 8、在认识论层次上研究信息的时候,必须同时考虑到形式、含义和效用三个方面的因素。 9、1948年,美国数学家香农发表了题为“通信的数学理论”的长篇论文,从而创立了信息论。 按照信息的性质,可以把信息分成语法信息、语义信息和语用信息。 按照信息的地位,可以把信息分成客观信息和主观信息。 人们研究信息论的目的是为了高效、可靠、安全地交换和利用各种各样的信息。 信息的可度量性是建立信息论的基础。 统计度量是信息度量最常用的方法。 熵是香农信息论最基本最重要的概念。 事物的不确定度是用时间统计发生概率的对数来描述的。 10、单符号离散信源一般用随机变量描述,而多符号离散信源一般用随机矢量描述。 11、一个随机事件发生某一结果后所带来的信息量称为自信息量,定义为其发生概率对数的负值。 12、自信息量的单位一般有比特、奈特和哈特。 13、必然事件的自信息是 0 。 14、不可能事件的自信息量是∞。 15、两个相互独立的随机变量的联合自信息量等于两个自信息量之和。 16、数据处理定理:当消息经过多级处理后,随着处理器数目的增多,输入消息与输出消息之间的平均互信息量趋于变小。 17、离散平稳无记忆信源X的N次扩展信源的熵等于离散信源X的熵的 N倍。 18、离散平稳有记忆信源的极限熵,。 19、对于n元m阶马尔可夫信源,其状态空间共有 nm 个不同的状态。 20、一维连续随即变量X在[a,b]区间内均匀分布时,其信源熵为 log2(b-a)。

信息论与编码(第二版)曹雪虹(最全版本)答案

《信息论与编码(第二版)》曹雪虹答案 第二章 2.1一个马尔可夫信源有3个符号{}1,23,u u u ,转移概率为:()11|1/2p u u =,()21|1/2p u u =, ()31|0p u u =,()12|1/3p u u =,()22|0p u u =,()32|2/3p u u =,()13|1/3p u u =,()23|2/3p u u =,()33|0p u u =,画出状态图并求出各符号稳态概率。 解:状态图如下 状态转移矩阵为: 1/21/2 01/302/31/32/30p ?? ?= ? ??? 设状态u 1,u 2,u 3稳定后的概率分别为W 1,W 2、W 3 由1231WP W W W W =??++=?得1231132231231 112331223231W W W W W W W W W W W W ?++=???+=???=???++=? 计算可得1231025925625W W W ?=??? =? ? ?=?? 2.2 由符号集{0,1}组成的二阶马尔可夫链,其转移概率为:(0|00)p =0.8,(0|11)p =0.2, (1|00)p =0.2,(1|11)p =0.8,(0|01)p =0.5,(0|10)p =0.5,(1|01)p =0.5,(1|10)p =0.5。画出 状态图,并计算各状态的稳态概率。 解:(0|00)(00|00)0.8p p == (0|01)(10|01)0.5p p == (0|11)(10|11)0.2p p == (0|10)(00|10)0.5p p == (1|00)(01|00)0.2p p == (1|01)(11|01)0.5p p == (1|11)(11|11)0.8p p == (1|10)(01|10)0.5p p ==

信息论与编码理论习题答案全解

信息论与编码理论习题答案全解

第二章 信息量和熵 2.2 八元编码系统,码长为3,第一个符号用于同步,每秒1000个码字,求它的 信息速率。 解:同步信息均相同,不含信息,因此 每个码字的信息量为 2?8log =2?3=6 bit 因此,信息速率为 6?1000=6000 bit/s 2.3 掷一对无偏骰子,告诉你得到的总的点数为:(a) 7; (b) 12。问各得到多少 信息量。 解:(1) 可能的组合为 {1,6},{2,5},{3,4},{4,3},{5,2},{6,1} )(a p =366=6 1 得到的信息量 =) (1 log a p =6log =2.585 bit (2) 可能的唯一,为 {6,6} )(b p =361 得到的信息量=) (1 log b p =36log =5.17 bit 2.4 经过充分洗牌后的一副扑克(52张),问: (a) 任何一种特定的排列所给出的信息量是多少? (b) 若从中抽取13张牌,所给出的点数都不相同时得到多少信息量? 解:(a) )(a p =! 521 信息量=) (1 log a p =!52log =225.58 bit (b) ???????花色任选 种点数任意排列 13413!13 )(b p =13 52134!13A ?=1352 13 4C 信息量=1313 52 4log log -C =13.208 bit

2.9 随机掷3颗骰子,X 表示第一颗骰子的结果,Y 表示第一和第二颗骰子的 点数之和,Z 表示3颗骰子的点数之和,试求)|(Y Z H 、)|(Y X H 、 ),|(Y X Z H 、)|,(Y Z X H 、)|(X Z H 。 解:令第一第二第三颗骰子的结果分别为321,,x x x ,1x ,2x ,3x 相互独立, 则1x X =,21x x Y +=,321x x x Z ++= )|(Y Z H =)(3x H =log 6=2.585 bit )|(X Z H =)(32x x H +=)(Y H =2?( 361log 36+362log 18+363log 12+364log 9+365log 536)+36 6 log 6 =3.2744 bit )|(Y X H =)(X H -);(Y X I =)(X H -[)(Y H -)|(X Y H ] 而)|(X Y H =)(X H ,所以)|(Y X H = 2)(X H -)(Y H =1.8955 bit 或)|(Y X H =)(XY H -)(Y H =)(X H +)|(X Y H -)(Y H 而)|(X Y H =)(X H ,所以)|(Y X H =2)(X H -)(Y H =1.8955 bit ),|(Y X Z H =)|(Y Z H =)(X H =2.585 bit )|,(Y Z X H =)|(Y X H +)|(XY Z H =1.8955+2.585=4.4805 bit 2.10 设一个系统传送10个数字,0,1,…,9。奇数在传送过程中以0.5的概 率错成另外一个奇数,其余正确接收,求收到一个数字平均得到的信息量。 解: 信道 X Y 9,7,5,3,1=i 8,6,4,2,0=i √Χ );(Y X I =)(Y H -)|(X Y H 因为输入等概,由信道条件可知,

信息论与编码实验报告

信息论与编码实验报告-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

实验一关于硬币称重问题的探讨 一、问题描述: 假设有N 个硬币,这N 个硬币中或许存在一个特殊的硬币,这个硬币或轻 或重,而且在外观上和其他的硬币没什么区别。现在有一个标准天平,但是无刻度。现在要找出这个硬币,并且知道它到底是比真的硬币重还是轻,或者所有硬币都是真的。请问: 1)至少要称多少次才能达到目的; 2)如果N=12,是否能在3 次之内将特殊的硬币找到;如果可以,要怎么称? 二、问题分析: 对于这个命题,有几处需要注意的地方: 1)特殊的硬币可能存在,但也可能不存在,即使存在,其或轻或重未知; 2)在目的上,不光要找到这只硬币,还要确定它是重还是轻; 3)天平没有刻度,不能记录每次的读数,只能判断是左边重还是右边重,亦或者是两边平衡; 4)最多只能称3 次。 三、解决方案: 1.关于可行性的分析 在这里,我们把称量的过程看成一种信息的获取过程。对于N 个硬币,他们 可能的情况为2N+1 种,即重(N 种),轻(N 种)或者无假币(1 种)。由于 这2N+1 种情况是等概率的,这个事件的不确定度为: Y=Log(2N+1) 对于称量的过程,其实也是信息的获取过程,一是不确定度逐步消除的过程。 每一次称量只有3 种情况:左边重,右边重,平衡。这3 种情况也是等概率 的,所以他所提供的信息量为: y=Log3 在K 次测量中,要将事件的不确定度完全消除,所以 K= Log(2N+1)/ Log3 根据上式,当N=12 时,K= 2.92< 3 所以13 只硬币是可以在3 次称量中达到

信息理论与编码期末试卷A及答案

一、填空题(每空1分,共35分) 1、1948年,美国数学家 发表了题为“通信的数学理论”的长篇论文,从而创立了信息论。信息论的基础理论是 ,它属于狭义信息论。 2、信号是 的载体,消息是 的载体。 3、某信源有五种符号}{,,,,a b c d e ,先验概率分别为5.0=a P ,25.0=b P ,125.0=c P ,0625.0==e d P P ,则符号“a ”的自信息量为 bit ,此信源的熵为 bit/符号。 4、某离散无记忆信源X ,其概率空间和重量空间分别为1 234 0.50.250.1250.125X x x x x P ????=??? ?????和1234 0.5122X x x x x w ???? =??????? ? ,则其信源熵和加权熵分别为 和 。 5、信源的剩余度主要来自两个方面,一是 ,二是 。 6、平均互信息量与信息熵、联合熵的关系是 。 7、信道的输出仅与信道当前输入有关,而与过去输入无关的信道称为 信道。 8、马尔可夫信源需要满足两个条件:一、 ; 二、 。 9、若某信道矩阵为????? ????? ??01000 1 000001 100,则该信道的信道容量C=__________。 10、根据是否允许失真,信源编码可分为 和 。 11、信源编码的概率匹配原则是:概率大的信源符号用 ,概率小的信源符号用 。(填 短码或长码) 12、在现代通信系统中,信源编码主要用于解决信息传输中的 性,信道编码主要用于解决信息传输中的 性,保密密编码主要用于解决信息传输中的安全性。 13、差错控制的基本方式大致可以分为 、 和混合纠错。 14、某线性分组码的最小汉明距dmin=4,则该码最多能检测出 个随机错,最多能纠正 个随机错。 15、码字101111101、011111101、100111001之间的最小汉明距离为 。 16、对于密码系统安全性的评价,通常分为 和 两种标准。 17、单密钥体制是指 。 18、现代数据加密体制主要分为 和 两种体制。 19、评价密码体制安全性有不同的途径,包括无条件安全性、 和 。 20、时间戳根据产生方式的不同分为两类:即 和 。 二、选择题(每小题1分,共10分) 1、下列不属于消息的是( )。 A. 文字 B. 信号 C. 图像 D. 语言 2、设有一个无记忆信源发出符号A 和B ,已知4341)(,)(==B p A p ,发出二重符号序列消息的信源, 无记忆信源熵)(2X H 为( )。 A. 0.81bit/二重符号 B. 1.62bit/二重符号 C. 0.93 bit/二重符号 D . 1.86 bit/二重符号 3、 同时扔两个正常的骰子,即各面呈现的概率都是1/6,若点数之和为12,则得到的自信息为( )。 A. -log36bit B. log36bit C. -log (11/36)bit D. log (11/36)bit 4、 二进制通信系统使用符号0和1,由于存在失真,传输时会产生误码,用符号表示下列事件,x0: 发出一个0 、 x1: 发出一个1、 y0 : 收到一个0、 y1: 收到一个1 ,则已知收到的符号,被告知发出的符号能得到的信息量是( )。 A. H(X/Y) B. H(Y/X) C. H( X, Y) D. H(XY) 5、一个随即变量x 的概率密度函数P(x)= x /2,V 20≤≤x ,则信源的相对熵为( )。 A . 0.5bit B. 0.72bit C. 1bit D. 1.44bit 6、 下面哪一项不属于熵的性质: ( ) A .非负性 B .完备性 C .对称性 D .确定性 信息论与编码 信息论与编码

信息论与编码理论第二章习题答案

I (X ;Y=1)= P(x/Y 1)I(x;Y 1) x P(x/Y 1)log P(x/Y 1) P(x) = P(X 0/Y 1)log P(X 0/Y 1) P(X 0) P(X 1/Y 1)log P(X 1/Y 1) P(X 1) 部分答案,仅供参考。 信息速率是指平均每秒传输的信息量点和划出现的信息量分别为log3Jog3, 2’ 一秒钟点和划出现的次数平均为 1 15 2 1 ~4 0.20.4 - 3 3 一秒钟点和划分别出现的次数平均为巴5 4 4 那么根据两者出现的次数,可以计算一秒钟其信息量平均为10 log 3 5 竺 5 4 2 4 4 2 解: ⑻骰子A和B,掷出7点有以下6种可能: A=1,B=6; A=2,B=5; A=3,B=4; A=4,B=3; A=5,B=2; A=6,B=1 概率为6/36=1/6,所以信息量 -log(1/6)=1+log3 ~ bit (b)骰子A和B,掷出12点只有1种可能: A=6,B=6 概率为1/36,所以信息量 -log(1/36)=2+log9 ~ bit 解: 出现各点数的概率和信息量: 1 点:1/21 , log21 ?bit ; 2 点:2/21 , log21-1 ?bit ; 3 点:1/7 , log7 4 点:4/21 , log21-2 5 点:5/21 , log (21/5 )~; 6 点:2/ 7 , log(7/2)? 平均信息量: (1/21) X +(2/21) X +(1/7) X +(4/21) X +(5/21) X +(2/7) 解: X=1:考生被录取;X=0考生未被录取; Y=1:考生来自本市;Y=0考生来自外地; Z=1:考生学过英语;z=o:考生未学过英语 P(X=1)=1/4, P( X=q=3/4; P( Y=1/ X=1)=1/2 ;P( Y=1/ X=0)=1/10 ;P(Z=1/ Y=1 )=1, P( Z=1/ X=0, Y=0 )=, P( Z=1/ X=1, Y=0 )=, P(Z=1/Y=0)= (a)P(X=0,Y=1)=P(Y=1/X=0)P(X=0)=, P(X=1,Y=1)= P(Y=1/X=1)P(X=1)= P(Y=1)= P(X=0,Y=1)+ P(X=1,Y=1)= P(X=0/Y=1)=P(X=0,Y=1)/P(Y=1)=, P(X=1/Y=1)=P(X=1,Y=1)/P(Y=1)=

信息论霍夫曼编码

信息论与编码实验报告 课程名称:信息论与编码 实验名称:霍夫曼编码 班级: 学号: 姓名:

实验目的 1、熟练掌握Huffman编码的原理及过程,并熟练运用; 2、熟练运用MATLAB应用软件,并实现Huffman编码过程。 一、实验设备 装有MATLAB应用软件的PC计算机。 二、实验原理及过程 原理: 1、将信源符号按概率从大到小的排列,令P (X1)>=P(X2)>=P(X3)......P(Xn) 2、给两个概率最小的信源符号P(Xn-1)和P(Xn)各分配一个码位“0”和“1”,将这两个信源符号合并成一个新符号,并用这两个最小的概率之和作为新符号的概率,结果得到一个只包含(n-1)个信源符号的新信源。称为信源的第一次缩减信源,用S1表示。 3、将缩减信源S1的符号仍按概率从大到小顺序排列,重复步骤2,得到只含(n-2)个符号的缩减信源S2. 4、重复上述步骤,直至缩减信源只剩两个符号为止,此时所剩两个符号的概率之和必为1。然后从最后一级缩减信源开始,依编码路径向前返回,就得到各信源符号所对应的码字。 过程: 用MATLAB编写代码实现Huffman编码其程序为: %哈夫曼编码的MA TLAB实现(基于0、1编码):

clc; clear; A=[0.3,0.2,0.1,0.2,0.2];信源消息的概率序列 A=fliplr(sort(A));%按降序排列 T=A; [m,n]=size(A); B=zeros(n,n-1);%空的编码表(矩阵) for i=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; for j=2:n-1%生成编码表的其他各列 for i=1:t B(i,j)=T(i); end K=find(T==r); B(n,j)=K(end);%从第二列开始,每列的最后一个元素记录特征元素在

相关文档
最新文档