信息论与编码大作业

信息论与编码大作业
信息论与编码大作业

广西科技大学

大作业

课程名称:信息论与编码

题目:信道编码对通信系统性能的影响学院:电气与信息工程学院

专业:电子信息工程

班级:

学号:

成绩:

姓名:

电话号码:

信道编码对通信系统性能的影响

[摘要] 简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB仿真有无信道编码条件下对通信系统性能的影响及信道编码在不同信道下对通信系统性能的影响,如AWGN信道和深衰落信道。

[关键词] 信道编码、分组码、MATLAB仿真、性能

一、引言

提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。1948年,信息论的奠基人C.E.Shannon在他的开创性论文“通信的数学理论”中,提出了著名的有噪信道编码定理.他指出:对任何信道,只要信息传输速率R不大于信道容量C, 就一定存在这样的编码方法:在采用最大似然译码时,其误码率可以任意小.该定理在理论上给出了对给定信道通过编码所能达到的编码增益的上限,并指出了为达到理论极限应采用的译码方法.在信道编码定理中,香农提出了实现最佳编码的三个基本条件:(1 )采用随机编译码方式;(2 )编码长度L→∞ , 即分组的码组长度无限;(3)译码采用最佳的最大似然译码算法。

二、信道编码理论

1、信道编码的概念与目的

进行信道编码是为了提高信号传输的可靠性,改善通信系统的传输质量,研究信道编码的目标是寻找具体构造编码的理论与方法。从原理上,构造信道码的基本思路是根据一定的规律在待发送的信息码元中人为的加入一定的多余码元,以引入最小的多余度为代价来换取最好的抗干扰性能。信道编码是通过信道编码器和译码器实现的用于提高信道可靠性的理论和方法,是信息论的内容之一。信道编码大致分为两类:①信道编码定理,从理论上解决理想编码器、译码器的存在性问题,也就是解决信道能传送的最大信息率的可能性和超过这个最大值时的传输问题。②构造性的编码方法以及这些方法能达到的性能界限。编码定理的证明,从离散信道发展到连续信道,从无记忆信道到有记忆信道,从单用户信道到多用户信道,从证明差错概率可接近于零到以指数规律逼近于零,正在不断完善。编码方法,在离散信道中一般用代数码形式,其类型有较大发展,各种界限也不断有人提出,但尚未达到编码定理所启示的限度。在连续信道中常采用正交函数系来代表消息,这在极限情况下可达到编码定理的限度,不是所有信道的编码定理都已被证明。

2、信道编码的分类

信道编码可以分成分组码、卷积码和循环冗余码3类。

分组码是把若干个输入信号变成一个更长的输出序列的编码方式,它通过提供编码的冗余度来实现对信号的检错和纠错。假设输入信号是一个长度为k 的向量x ,经过分组编码之后的输出信号时一个长度为n 的向量y ,则这个分组编码表示为

(),n k ,其中信息位的长度等于k ,码长位n ,监督位的长度r n k =-,编码效率等

于/1/k n r n =-.对于分组码,输出序列y 一般可以表示成输入向量x 与生成矩阵G 的乘积,其中G 是一个k 行n 列的矩阵。

BCH 码是一种特别重要的分组编码。它是根据3个发明人的名字Bose,Chaudhuri Hocguenghem 命名的。 BCH 码的重要性在于它解决了生成多项式与纠错能力至今的关系问题,可以方便的纠正多个随机错误。对于特定的码字长度n ,BCH 码只能对特定的长度为k 的信息序列进行编码。Reed-Slolmon 码是一种具有很强纠错能力的多进制BCH 码(简称RS 码),它是以两个发明人的名字Reed 和Solomon 命名的。

对于一个M 进制的RS 码,它的输入和输出信号的范围都等于[]0,1M -,其中

2m M =。RS 码的码长度121m

n M =-=-,如果信息位的长度等于k ,则监督位的长度r n k =-另外,RS 码具有很强的纠错能力,假设它能够纠正t 个错误,则RS 码的监督位长度r 和t 之间应该满足关系2r n k t =-=,因此,RS 码的长度与信息为长度之间的差值应该是一个偶数,同时RS 码的最小码元距离为: 0121d r t =+=+

RS 码的输入信号还可以用二进制符号来表示,每个M 进制符号可以表示成

m 位二进制符号。

循环冗余码CRC 是一种是用相当频繁的检错码。与分组码不同的是循环冗余码不具有纠错能力。当接收端检测到传输错误时候,它并不去纠正这个传输错误,而是要求发送端重新发送这个信号序列。在循环冗余码的编码过程中,发送端对一个特定长度的信息序列计算得到一个循环冗余码,并且把这个循环冗余码附加到原来的信息序列的末尾一起发送出去。接收端接收到带有循环冗余码的信号后,从中分离出信息序列和循环冗余码,然后根据接收到的信息位序列重新计算循环冗余码。如果这个重新计算得到的循环冗余码与分离出来的循环冗余码不同,则接收信号序列存在着传输错误。这时候接收端就会要求发送端饿重新发送这个信号序列,通过合格过程实现对信号的纠错。

卷积编码与分组码不同。在分组码中任何一段规定时间内编码器的输出万群决定

于这段时间中的输入信号;而在卷积码中任何一段规定时间的n 个码元不仅取决于这段时间内的k 个信息位,而且还取决于前1N -段时间内的信息位,这个N 就成为卷积码的约束长度。

卷积编码器的表示有两种方式:用多项式表示以及用trellis 图表示。卷积编码器的多项式表示由3部分组成:约束长度、生成多项式以及反馈多相似。如果卷积编码器只有一个输入时它的约束长度是一个标量,并且等于卷积编码器中储存的信息位的个数(包括移位寄存器的个数以及当前按的输入信号)。如果卷积编码器有多个输入,则约束长度是一个向量,其中的每一个元素对应于一个输入信号在卷积编码器中存储的信息位的个数。假设卷积编码器有个k 输入信号和n 个

输出信号,则这个卷积编码器的生成多项式是一个k 行n 列的矩阵

()ij k n G g ?=,其中的每一个元素ij g

表示第i 个输入信号对第j 个输出信号的影响。如果第i 个

输入信号对第j 个输出信号有影响则ij g =1;否则ij g

=0。对于带反馈的卷积编码器,还需要指定相应的反馈多项式,如果卷积编码器只有一个输入信号则反馈多项式是一个标量。当卷积编码器有多个输入信号时,反馈多项式是一个向量,它的长度等于卷积编码器输入信号的个数。

3、信道编码的实质

信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码元),使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由信道传输的码字。举例而言,欲传输k 位信息,经过编码得到长为n(n>k)的码字,则增加了 n - k = r 位多余码元,我们定义 R = k / n 为编码效率。 4、信道编码公式

令信息速率为fb ,经过编码以后的速率为ft ,定义:R =fb/ft 为编码率。则对于任何一个信道,总存在一个截止速率R0,只要R

对于等概二进码、AWGN 信道,有:

三、线性分组码的编译码原理

1、线性分组码的基本概念

一个[n ,k ]线性分组码,是把信息划成k 个码元为一段(称为信息组),通过编码器变成长为n 个码元的一组,作为[n ,k ]线性分组码的一个码字。若每位码元的取值有q 种(q 为素数幂),则共有qk 个码字。n 长的数组共有qn 组,在二进制情况下,有2n 个数组。显然,qn 个n 维数组(n 重)组成一个GF(q)上的n 维线性空间。如果qk(或2k)个码字集合构成了一个k 维线性子空间,则称

)1(log 10

0/20

N E R b e R -+-=1

21

ln 1)1(000-=-R b R N E

它是一个[n ,k ]线性分组码。即将k 维k 重信息空间的元素线性映射到n 维n 重矢量空间(接收矢量/收码)的k 维n 重子空间(码空间)。如下图为[7,3]码

2、生成矩阵和校验矩阵 生成矩阵:

G 称为生成矩阵,因为可以用它产生整个码组A ,即有

生成矩阵的性质:具有[IkQ]形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A 中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。矩阵G 的各行也必须是线性无关的。如果已有k 个线性无关的码组,则可以将其用来作为生成矩阵G ,并由它生成其余码组。 监督矩阵:

监督矩阵可用来校验和纠错。

四、MATLAB 仿真源程序及说明

采用模块化编程,把每个功能独立成各个模块,让程序更清晰。首先介绍各个子程序及其实现的基本功能。 运行环境为Matlab2016版本

[][]G 34560123456a a a a a a a a a a a A =

=[]?

????????

???==0110001

101001011001001111000

Q G k I []r PI H =?????

?????=001101101011011001110

通信过程的每个模块写成子程序函数:

Channelcoding 为信道编码函数

Channeldecoding 为信道解码纠错子函数

Interwaving 为交积子函数

Deinterwaving 为解交积子函数

addfade为向信道加入衰落参数的子函数

awgn 为库函数,向信源加高斯白噪声

pskmod 为库函数,用于信号调制,输出为复数

pskdemod 为库函数,用于信号解调

信道编码子程序:

%信道编码子函数,sym为编码码流,G为生成矩阵,k为编码方式的长度,如(7,4)码的4

function bitcoded=channelcoding(sym,G,k)

A=vec2mat(sym,k);

U=A*G;

U=mod(U,2);

bitcoded=reshape(U',1,[]);

信道解码子程序:

function bitdecoded=channeldecoding(recode,Etab,Smatrix,H,n,k)

% 前向纠错函数,实现纠错功能

% bidecoded为纠错后返回的比特流

% recode为输入的比特流

% E为错误图样表,S为对应的伴随式表

% H为监督矩阵,n,k为码的类型,如(7,4)码,n=7,k=4

row=length(recode)/n; %行数

E=zeros(row,n); %错误图样

RM=zeros(row,n); %纠错之后的矩阵

R=vec2mat(recode,n);

S=R*H'; %伴随矩阵

S=mod(S,2);

for i=1:row

for j=1:2^(n-k) %查表纠错

if(S(i,:)==Smatrix(j,:))

E(i,:)=Etab(j,:);

RM(i,:)=R(i,:)+E(i,:);

RM(i,:)=mod(RM(i,:),2);

break;

end

end

end

bitdecoded=reshape(RM',1,[]); %转化为比特流

交织子程序:

function retbit=interweaving(bitstream,row,col)

%功能:实现对输入比特的交积

% retbit为交积后返回的比特流向量

% bitstream 为需要交积的比特流向量

% row 和 col为交积器的行和列,

% 通过改变col就可以改变交积深度

retbit=zeros(1,length(bitstream));

bitarr=vec2mat(bitstream,row);

bitarr=bitarr';

for i=1:length(bitstream)/(row*col)

temp=bitarr(:,((i-1)*col+1):i*col);

retbit(1,((i-1)*(row*col)+1):(i*(row*col)))=reshape(temp',1,[]); end

解交织子程序:

function retbits=deinterweaving(bitstream,row,col)

%功能:实现对输入比特的解交积

%rebits为解交积后返回的比特流

% bitstream输入的比特流

%row 和 col为交积器的行和列,通过改变col就可以改变交积器的长度 retbits=zeros(1,length(bitstream));

bitarr=vec2mat(bitstream,col);

for i=1:length(bitstream)/(row*col)

temp=bitarr((i-1)*row+1:i*row,:);

retbits(1,(i-1)*row*col+1:i*row*col)=reshape(temp,1,[]); end

信道衰落子程序:

function code=addfade(modcode,Tf,isperiod,isfade)

%功能:向传输序列modcode叠加衰落性信道的衰落参数k(t)

%code为加入衰减参数之后返回的序列。

% modcode为调制之后的序列

% Tf 为衰落时间,以ms为单位,小于10ms,

% Tf=1,表示衰落1ms

% isperiod 周期衰落和一次性衰落的标志,

% isperiod=1表示周期性衰落,0表示一次性衰落

% isfade表示是否存在衰落,1存在,0不存在衰落直接返回modcode

if(isfade==1)

if(isperiod==1) %周期性衰落

for k=1:length(modcode)/(100*Tf)

a=(k-1)*100*Tf+31;

b=(k-1)*100*Tf+30+10*Tf;

modcode(1,a:b)=0.1*modcode(1,a:b);

end

else %一次衰落

a=31;

b=30+10*Tf;

modcode(1,a:b)=0.1*modcode(1,a:b);

end

code=modcode;

else

code=modcode;

end

1、信道编码对通信系统性能的影响,有无信道编码的影响

tic

clc

%功能:有无信道编码性能比较

M=2; %进制

b=log2(M) ; %每符号比特数

n=128*10000 ; %符号数

G=[1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1] ; %生成矩阵

H=[1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0] ; %监督矩阵

Etab= [0 0 0 0 0 0 0;0 0 0 0 0 0 1; %错误图样

0 0 0 0 0 1 0;0 0 0 0 1 0 0;

0 0 0 1 0 0 0;0 0 1 0 0 0 0;

0 1 0 0 0 0 0;1 0 0 0 0 0 0];

Smatrix=Etab*H'; %对应的伴随式

sym=randint(n,1,M);

sym=de2bi(sym,'left-msb'); %模拟信源编码

bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码

modbit=pskmod(bitcoded,M);

%在传输序列modbit加入AWGN噪声

snr=0:0.2:15; %噪声为0到15d

L=length(snr)

ser=zeros(1,L);

ser2=zeros(1,L);

for k=1:L

y=awgn(modbit,10*log10(b)+snr(k),'measured');

zsym=pskdemod(y,M); %复数解调

zbit=de2bi(zsym,'left-msb');

recode=reshape(zbit',1,[]);

Rstream=recode;

err=(Rstream~=bitcoded);

errnum=sum(err);

ser(k)=log10(errnum/length(bitcoded));

%纠错

bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4); err=(bitdecoded~=bitcoded);

errbits=sum(err);

ser2(k)=log10(errbits/(length(bitcoded)));

end

plot(snr,ser,'b-*')

hold on

plot(snr,ser2,'r-o')

grid on

legend('没有信道编码','信道编码');

xlabel('Eb/No(dB)');

ylabel('SER');

title('2PSK有无信道编码性能比较');

toc %

结论分析:由上图在较高信噪比的时候编码增益很明显大大提高了误码性能,但是在低信噪被的时候编码增益较小甚至可能是负值,则是因为编码后信息比特能量扩散到多个编码比特上,每个编码比特能量有所降低,如果信噪比低的话,编码冗余带来的性能增益可能弥补不了编码比特的能量的降低,因此信道中信噪比的波动会显著降低编码性能

2、在交织条件下,不同时长的周期性深衰落对系统性能影响的比较

tic

clc

%功能:有无信道编码性能比较

M=2; %进制

b=log2(M) ; %每符号比特数

n=128*10000 ; %符号数

interrow=8;intercol=10;%交积矩阵的行和列

G=[1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1] ; %生成矩阵

H=[1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0] ; %监督矩阵

Etab= [0 0 0 0 0 0 0;0 0 0 0 0 0 1; %错误图样

0 0 0 0 0 1 0;0 0 0 0 1 0 0;

0 0 0 1 0 0 0;0 0 1 0 0 0 0;

0 1 0 0 0 0 0;1 0 0 0 0 0 0];

Smatrix=Etab*H'; %对应的伴随式

sym=randint(n,1,M);

sym=de2bi(sym,'left-msb'); %模拟信源编码

bitcoded=channelcoding(sym,G,4); %信道编码,(7,4)码

interv=interweaving(bitcoded,interrow,intercol); %交积向量

modbit=pskmod(bitcoded,M);

modbit2=pskmod(interv,M);

%向传输序列modcode叠加衰落性信道的衰落参数k(t)

modbitfade=addfade(modbit,1,1,1);

modbitfade2=addfade(modbit2,1,1,1);%1ms周期性衰落

modbitfade3=addfade(modbit2,2,1,1);%衰落时长2ms

%在传输序列modbit加入AWGN噪声

snr=0:0.2:25; %噪声为0到25d

L=length(snr)

ser=zeros(1,L);

ser2=zeros(1,L);

for k=1:L

y=awgn(modbitfade,10*log10(b)+snr(k),'measured');

y2=awgn(modbitfade2,10*log10(b)+snr(k),'measured');

y3=awgn(modbitfade3,10*log10(b)+snr(k),'measured');

zsym=pskdemod(y,M); %复数解调

zsym2=pskdemod(y2,M);

zsym3=pskdemod(y3,M);

zbit=de2bi(zsym,'left-msb');

zbit2=de2bi(zsym2,'left-msb');

zbit3=de2bi(zsym3,'left-msb');

recode=reshape(zbit',1,[]);

recode2=reshape(zbit2',1,[]);

recode3=reshape(zbit3',1,[]);

deinterv=deinterweaving(recode2,interrow,intercol);%解交积向量 deinterv3=deinterweaving(recode3,interrow,intercol);

Rstream=recode;

Rstream2=deinterv;

Rstream3=deinterv3;

%纠错

bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4);

bitdecoded2=channeldecoding(Rstream2,Etab,Smatrix,H,7,4);

bitdecoded3=channeldecoding(Rstream3,Etab,Smatrix,H,7,4);

err=(bitdecoded~=bitcoded);

errbits=sum(err);

ser(k)=log10(errbits/(length(bitcoded)));

err2=(bitdecoded2~=bitcoded);

errbits2=sum(err2);

ser2(k)=log10(errbits2/(length(bitcoded)));

err3=(bitdecoded3~=bitcoded);

errbits3=sum(err3);

ser3(k)=log10(errbits3/(length(bitcoded)));

end

plot(snr,ser,'b-*')

hold on

plot(snr,ser2,'r-o')

hold on

plot(snr,ser3,'k-+')

grid on

legend('有信道编码没有交织1ms衰落','有信道编码有交织1ms衰落','有信道编码有交织2ms衰落');

xlabel('Eb/No(dB)');

ylabel('SER');

title('2PSK衰落信道有无交织性能比较');

toc %Elapsed time is 1504.524053 seconds.%该程序运行时间

结论分析:(1)通过有信道编码没有交织1ms衰落与有信道编码有交织1ms衰落的对比,可以知道衰落信道使系统的误码性能大大的降低,尤其是时延扩展远大于码元宽度的衰落,如瑞利衰落信道,此时信道属于慢深衰落,容易使得传输的信息出现连续的错误,当出现的错误大于信道编码的纠错能力时,就无法产生编码增益,甚至可能是性能恶化。此时必须使用交织把连续的错误打破分到不同的编解码分组中,尽量使没组只有少量甚至一个错误,此时编码增益将会大大提高。(2)因为信道编码是1ms的周期性衰落,信息传输速率是10kbps,所以会出现周期性的连续10个比特出现深衰落,此时交织深度为10,可以解决深衰落带来的影响。但是如果信道编码变为2ms的周期性衰落,交织深度依旧为10,此时每个分组中可能有两个以上的错误,超出了汉明码的纠错能力,误码性能将会恶化。此时的SNR-SER曲线如上图中间那条所示,性能介于没有交织的1ms深衰落和交织的1ms深衰落之间。如果要改善系统的误码性能,就只能增加交织深度,知道满足信道编码的纠错能力,但是交织深度加深的话,会加大编译码的时延,不适合实时通信,所以应该根据实际通信系统的需求在两者之间取一个平衡。

参考文献:

[1] 傅祖芸, 赵建中.信息论与编码.电子工业出版社,2006

[2] 田宝玉,信息论基础,人民邮电出版社

[3] 刘玉君,信道编码[M]. 河南科学技术出版社,2001.9

[4] 陈平等.现代通信实验系统的计算机仿真[M].北京:国防工业出版社.2003

[5] 李建新等.现代通信系统分析与仿真[M].西安:西安电子科技大学出版社,

2000.

[6] 施俊杰,王琳.MATLAB在通信系统仿真中的若干应用[M].信息技术,2005.7:

42-43

[7] 邓华等.MATLAB通信仿真及应用实例详解[M]. 北京:人民邮电出版社.2003

[8] 薛定宇,陈阳泉.基于MATLAB/Simulink的系统仿真技术与应用.北京:清华

大学出版社,2002

[9] 孙屹.Matlab通信与仿真开发手册[M].北京:国防工业出版社.2005.

[10] 张森,张正亮.MATLAB仿真技术与实例应用教程[M].北京:机械工业出版

社,2012

信息论与编码实验

实验五霍夫曼编码 一、实验目的 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)实验结果

信息论与编码实验报告.

本科生实验报告 实验课程信息论与编码 学院名称信息科学与技术学院 专业名称通信工程 学生姓名 学生学号 指导教师谢振东 实验地点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

信息论与编码习题参考答案(全)

信息论与编码习题参考答案 第一章 单符号离散信源 同时掷一对均匀的子,试求: (1)“2和6同时出现”这一事件的自信息量; (2)“两个5同时出现”这一事件的自信息量; (3)两个点数的各种组合的熵; (4)两个点数之和的熵; (5)“两个点数中至少有一个是1”的自信息量。 解: bit P a I N n P bit P a I N n P c c N 17.536log log )(36 1 )2(17.418log log )(362)1(36 662221111 616==-=∴====-=∴== =?==样本空间: * (3)信源空间: bit x H 32.436log 36 16236log 36215)(=??+?? =∴

bit x H 71.3636 log 366536log 3610 436log 368336log 366236log 36436log 362)(=??+?+?+??= ∴++ (5) bit P a I N n P 17.111 36 log log )(3611333==-=∴== ? 如有6行、8列的棋型方格,若有两个质点A 和B ,分别以等概落入任一方格内,且它们的坐标分别为(Xa ,Ya ), (Xb ,Yb ),但A ,B 不能同时落入同一方格内。 (1) 若仅有质点A ,求A 落入任一方格的平均信息量; (2) 若已知A 已落入,求B 落入的平均信息量; (3) 若A ,B 是可辨认的,求A ,B 落入的平均信息量。 解: ! bit a P a P a a P a I a P A i 58.548log )(log )()(H 48log )(log )(481 )(:)1(48 1 i i i i i ==-=∴=-=∴= ∑=落入任一格的概率 bit b P b P b b P b I b P A i 55.547log )(log )()(H 47 log )(log )(47 1 )(:B ,)2(48 1i i i i i ==-=∴=-=∴=∑=落入任一格的概率是落入任一格的情况下在已知 bit AB P AB P AB H AB P AB I AB P AB i i i i i i i 14.11)4748log()(log )()() (log )(47 1 481)()3(47481 =?=-=-=∴?=∑?=是同时落入某两格的概率 从大量统计资料知道,男性中红绿色盲的发病率为7%,女性发病率为%.如果你问一位男士:“你是否是红绿色盲”他的回答可能是:“是”,也可能“不是”。问这两个回答中各含有多少信息量平均每个回答中各含有多少信息量如果你问一位女士,则她的答案中含有多少平均信息量 解:

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

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

目录 实验一信源熵值的计算 (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='a'&&s[i]<='z') num[s[i]-97]++; else if(s[i]>='A'&&s[i]<='Z') num[s[i]-65]++; } printf("文档中各个字母出现的频率:\n");

(完整版)信息论与编码概念总结

第一章 1.通信系统的基本模型: 2.信息论研究内容:信源熵,信道容量,信息率失真函数,信源编码,信道编码,密码体制的安全性测度等等 第二章 1.自信息量:一个随机事件发生某一结果所带的信息量。 2.平均互信息量:两个离散随机事件集合X 和Y ,若其任意两件的互信息量为 I (Xi;Yj ),则其联合概率加权的统计平均值,称为两集合的平均互信息量,用I (X;Y )表示 3.熵功率:与一个连续信源具有相同熵的高斯信源的平均功率定义为熵功率。如果熵功率等于信源平均功率,表示信源没有剩余;熵功率和信源的平均功率相差越大,说明信源的剩余越大。所以信源平均功率和熵功率之差称为连续信源的剩余度。信源熵的相对率(信源效率):实际熵与最大熵的比值 信源冗余度: 0H H ∞=ηη ζ-=1

意义:针对最大熵而言,无用信息在其中所占的比例。 3.极限熵: 平均符号熵的N 取极限值,即原始信源不断发符号,符号间的统计关系延伸到无穷。 4. 5.离散信源和连续信源的最大熵定理。 离散无记忆信源,等概率分布时熵最大。 连续信源,峰值功率受限时,均匀分布的熵最大。 平均功率受限时,高斯分布的熵最大。 均值受限时,指数分布的熵最大 6.限平均功率的连续信源的最大熵功率: 称为平均符号熵。 定义:即无记忆有记忆N X H H X H N X H X NH X H X H X H N N N N N N )() ()()()()()(=≤∴≤≤

若一个连续信源输出信号的平均功率被限定为p ,则其输出信号幅度的概率密度分布是高斯分布时,信源有最大的熵,其值为 1log 22 ep π.对于N 维连续平稳信源来说,若其输出的N 维随机序列的协方差矩阵C 被限定,则N 维随机矢量为正态分布时信源 的熵最大,也就是N 维高斯信源的熵最大,其值为1log ||log 222N C e π+ 7.离散信源的无失真定长编码定理: 离散信源无失真编码的基本原理 原理图 说明: (1) 信源发出的消息:是多符号离散信源消息,长度为L,可以用L 次扩展信 源表示为: X L =(X 1X 2……X L ) 其中,每一位X i 都取自同一个原始信源符号集合(n 种符号): X={x 1,x 2,…x n } 则最多可以对应n L 条消息。 (2)信源编码后,编成的码序列长度为k,可以用k 次扩展信宿符号表示为: Y k =(Y 1Y 2……Y k ) 称为码字/码组 其中,每一位Y i 都取自同一个原始信宿符号集合: Y={y 1,y 2,…y m } 又叫信道基本符号集合(称为码元,且是m 进制的) 则最多可编成m k 个码序列,对应m k 条消息 定长编码:信源消息编成的码字长度k 是固定的。对应的编码定理称为定长信源编码定理。 变长编码:信源消息编成的码字长度k 是可变的。 8.离散信源的最佳变长编码定理 最佳变长编码定理:若信源有n 条消息,第i 条消息出现的概率为p i ,且 p 1>=p 2>=…>=p n ,且第i 条消息对应的码长为k i ,并有k 1<=k 2<=…<=k n

信息论与编码第一章答案

第一章信息论与基础 1.1信息与消息的概念有何区别? 信息存在于任何事物之中,有物质的地方就有信息,信息本身是看不见、摸不着的,它必须依附于一定的物质形式。一切物质都有可能成为信息的载体,信息充满着整个物质世界。信息是物质和能量在空间和时间中分布的不均匀程度。信息是表征事物的状态和运动形式。 在通信系统中其传输的形式是消息。但消息传递过程的一个最基本、最普遍却又十分引人注意的特点是:收信者在收到消息以前是不知道具体内容的;在收到消息之前,收信者无法判断发送者将发来描述何种事物运动状态的具体消息;再者,即使收到消息,由于信道干扰的存在,也不能断定得到的消息是否正确和可靠。 在通信系统中形式上传输的是消息,但实质上传输的是信息。消息只是表达信息的工具,载荷信息的载体。显然在通信中被利用的(亦即携带信息的)实际客体是不重要的,而重要的是信息。 信息载荷在消息之中,同一信息可以由不同形式的消息来载荷;同一个消息可能包含非常丰富的信息,也可能只包含很少的信息。可见,信息与消息既有区别又有联系的。 1.2 简述信息传输系统五个组成部分的作用。 信源:产生消息和消息序列的源。消息是随机发生的,也就是说在未收到这些消息之前不可能确切地知道它们的内容。信源研究主要内容是消息的统计特性和信源产生信息的速率。 信宿:信息传送过程中的接受者,亦即接受消息的人和物。 编码器:将信源发出的消息变换成适于信道传送的信号的设备。它包含下述三个部分:(1)信源编码器:在一定的准则下,信源编码器对信源输出的消息进行适当的变换和处理,其目的在于提高信息传输的效率。(2)纠错编码器:纠错编码器是对信源编码器的输出进行变换,用以提高对于信道干扰的抗击能力,也就是说提高信息传输的可靠性。(3)调制器:调制器是将纠错编码器的输出变换适合于信道传输要求的信号形式。纠错编码器和调制器的组合又称为信道编码器。 信道:把载荷消息的信号从发射端传到接受端的媒质或通道,包括收发设备在内的物理设施。信道除了传送信号外,还存储信号的作用。 译码器:编码的逆变换。它要从受干扰的信号中最大限度地提取出有关信源输出消息的信息,并尽可能地复现信源的输出。 1.3 同时掷一对骰子,要得知面朝上点数之和,描述这一信源的数学 模型。 解:设该信源符号集合为X

信息论与编码实验报告

实验一 绘制二进熵函数曲线(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) 五、实验结果

信息论与编码第五章答案

设信源1 234567()0.20.190.180.170.150.10.01X a a a a a a a p X ????=???? ???? (1) 求信源熵H(X); (2) 编二进制香农码; (3) 计算平均码长和编码效率. 解: (1) 7 21222222()()log () 0.2log 0.20.19log 0.19 0.18log 0.180.17log 0.170.15log 0.150.1log 0.10.01log 0.012.609/i i i H X p a p a bit symbol ==-=-?-?-?-?-?-?-?=∑ (2) (3) 7 1 ()0.230.1930.1830.1730.153 0.140.0173.141 ()()/ 2.609 3.14183.1% i i i K k p x H X H X K R η===?+?+?+?+?+?+?====÷=∑ 对习题的信源编二进制费诺码,计算编码效率. 解:

a i p(a i )编码码字k i a1 0002 a2 1 00103 a310113 a4 1 0102 a5 1 01103 a6 1 011104 a7111114 对信源编二进制和三进制哈夫 曼码,计算各自的平均码长和编码效率. 解: 二进制哈夫曼码: x i p(x i)编码码字k i s61 s50 s41 s30 s21 x10102 x21112 x300003

x410013 x500103 s11 x6001104 x7101114 三进制哈夫曼码: x i p(x i)编码码字k i s31 s20 s11 x1221 x20002 x31012 x42022 x50102 x61112 x72122

信息论与编码试题集与答案(新)

一填空题(本题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、离散平稳有记忆信源的极限熵,=∞H )/(lim 121-∞→N N N X X X X H 。 19、对于n 元m 阶马尔可夫信源,其状态空间共有 nm 个不同的状态。 20、一维连续随即变量X 在[a ,b]区间内均匀分布时,其信源熵为 log2(b-a ) 。 21、平均功率为P 的高斯分布的连续信源,其信源熵,Hc (X )=eP π2log 21 2。 22、对于限峰值功率的N 维连续信源,当概率密度 均匀分布 时连续信源熵具有最大值。 23、对于限平均功率的一维连续信源,当概率密度 高斯分布 时,信源熵有最大值。 24、对于均值为0,平均功率受限的连续信源,信源的冗余度决定于平均功率的限定值P 和信源的熵功率P 之比 。

信息论与编码习题参考答案(全)

信息论与编码习题参考答案 第一章 单符号离散信源 同时掷一对均匀的子,试求: (1)“2和6同时出现”这一事件的自信息量; (2)“两个5同时出现”这一事件的自信息量; (3)两个点数的各种组合的熵; (4)两个点数之和的熵; (5)“两个点数中至少有一个是1”的自信息量。 解: bit P a I N n P bit P a I N n P c c N 17.536log log )(361 )2(17.418log log )(362)1(36 662221111 616==-=∴====-=∴== =?==样本空间: (3)信源空间:

bit x H 32.436log 36 16236log 36215)(=??+?? =∴ (4)信源空间: bit x H 71.3636 log 366536log 3610 436log 368336log 366236log 36436log 362)(=??+?+?+??= ∴++ (5) bit P a I N n P 17.111 36 log log )(3611333==-=∴== 如有6行、8列的棋型方格,若有两个质点A 和B ,分别以等概落入任一方格内,且它们的坐标分别为(Xa ,Ya ), (Xb ,Yb ),但A ,B 不能同时落入同一方格内。 (1) 若仅有质点A ,求A 落入任一方格的平均信息量; (2) 若已知A 已落入,求B 落入的平均信息量; (3) 若A ,B 是可辨认的,求A ,B 落入的平均信息量。 解: bit a P a P a a P a I a P A i 58.548log )(log )()(H 48log )(log )(481 )(:)1(48 1 i i i i i ==-=∴=-=∴= ∑=落入任一格的概率Θ bit b P b P b b P b I b P A i 55.547log )(log )()(H 47 log )(log )(47 1 )(:B ,)2(48 1i i i i i ==-=∴=-=∴=∑=落入任一格的概率是落入任一格的情况下在已知Θ

信息论与编码实验报告

信息论与编码实验报告-标准化文件发布号:(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 次称量中达到

信息论与编码实验1-3

实验一 关于信源熵的实验 班级:电子131501 姓名:赵英凯 学号:201315020137 时间:2016.5.22

一、实验目的 1. 掌握离散信源熵的原理和计算方法。 2. 熟悉matlab 软件的基本操作,练习使用matlab 求解信源的信息熵。 3. 自学图像熵的相关概念,并应用所学知识,使用matlab 求解图像熵。 二、实验原理 1. 离散信源相关的基本概念、原理和计算公式 产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。随机事件的自信息量I(xi)为其对应的随机变量xi 出现概率对数的负值。 即: I (xi )= -log2p ( xi) 随机事件X 的平均不确定度(信源熵)H(X)为离散随机变量 xi 出现概率的数学期望,即: 2.二元信源的信息熵 设信源符号集X={0,1} ,每个符号发生的概率分别为p(0)= p,p(1)= q,p+ q =1,即信源的概率空间为:

则该二元信源的信源熵为: H( X) = - plogp–qlogq = - plogp –(1 - p)log(1- p) 即:H (p) = - plogp –(1 - p)log(1- p) 其中 0 ≤ p ≤1 3. MATLAB二维绘图 用matlab 中的命令plot( x , y) 就可以自动绘制出二维图来。例1-2,在matlab 上绘制余弦曲线图,y = cos x ,其中 0 ≤ x ≤2 >>x =0:0.1:2*pi; %生成横坐标向量,使其为 0,0.1,0.2,…, 6.2 >>y =cos(x ); %计算余弦向量 >>plot(x ,y ) %绘制图形 4. MATLAB求解离散信源熵 求解信息熵过程: 1) 输入一个离散信源,并检查该信源是否是完备集。 2) 去除信源中符号分布概率为零的元素。 3) 根据平均信息量公式,求出离散信源的熵。 5. 图像熵的相关知识 图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。

信息论与编码实验指导书

信息论与编码实验指导书 1 课程实验目的 本课程是一门实践性很强的专业课和核心课程,根据课程理论教学的需要安排了6学时的配套实验教学,主要内容涉及信息度量的计算方法、典型信源编码方法、典型信道容量计算方法和数据压缩方法四个实验,这四个实验的开设一方面有助于学生消化、巩固课程理论教学的知识,另一方面又可培养学生实践动手能力,同时为后续课程做好准备。 2 课程实验要求 课程实验准备要求 (1)课程实验主要为设计性实验,要求学生熟悉掌握在VC环境下编写和调试C++程序的方法。 (2)要求学生在实验前复习实验所用到的预备知识。可以查阅教材或者相关的参考资料,这需要学生有自主的学习意识和整理知识的能力。 (3)根据实验项目,设计相关的数据结构和算法,再转换为对应的书面程序,并进行静态检查,尽量减少语法错误和逻辑错误。上机前的充分准备能高效利用机时,在有限的时间内完成更多的实验内容。 课程实验过程要求 (1)生成源代码。将课前编写好的书面代码,利用VC自带的编辑器尽快输入为转换为源代码; (2)程序调试和软件测试。要求学生熟练掌握调试工具,调试正确后,认真整理源程序和注释,给出带有完整注释且格式良好的源程序清单和结果。 (3)完成实验报告。根据实验内容和完成情况,按照附件1给定的格式完成课程实验报告的编写。

课程实验报告要求 在每次课程实验后要及时进行总结和整理,并编写课程实验报告。报告格式按江西蓝天学院实验报告纸格式填写。 实验一二维随机变量信息熵的计算 [实验目的] 掌握二变量多种信息量的计算方法。 [实验学时] 2学时 [实验准备] 1.熟悉二变量多种信息量的计算方法,设计实验的数据结构和算法; 2.编写计算二维随机变量信息量的书面程序代码。 [实验内容及步骤] 离散二维随机变换熵的计算 说明: (1)利用random函数和归一化方法构造一个二维离散随机变量(X,Y); (2)分别计算X与Y的熵、联合熵、条件熵:H(X)、H(Y)、H(X,Y)H(X|Y)、I(X|Y); (3)对测试通过的程序进行规范和优化; (4)编写本次实验的实验报告。

最新信息论与编码第五章答案

5.1 设信源1 234567()0.20.190.180.170.150.10.01X a a a a a a a p X ????=???? ???? (1) 求信源熵H(X); (2) 编二进制香农码; (3) 计算平均码长和编码效率. 解: (1) 7 21222222()()log () 0.2log 0.20.19log 0.19 0.18log 0.180.17log 0.170.15log 0.150.1log 0.10.01log 0.012.609/i i i H X p a p a bit symbol ==-=-?-?-?-?-?-?-?=∑ (3) 7 1 ()0.230.1930.1830.1730.153 0.140.0173.141 ()()/ 2.609 3.14183.1% i i i K k p x H X H X K R η===?+?+?+?+?+?+?====÷=∑ 5.2 对习题5.1的信源编二进制费诺码,计算编码效率. 解:

5.3对信源编二进制和三进制 哈夫曼码,计算各自的平均码长和编码效率. 解: 二进制哈夫曼码: x i p(x i)编码码字k i s61 s50.610 s40.391 s30.350 s20.261 x10.20102 x20.191112 x30.1800003 x40.1710013 x50.1500103 s10.111 x60.1001104 x70.01101114 三进制哈夫曼码: x i p(x i)编码码字k i s31 s20.540 s10.261 x10.2221 x20.190002 x30.181012 x40.172022

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

5-10 设有离散无记忆信源}03.0,07.0,10.0,18.0,25.0,37.0{)(=X P 。 (1)求该信源符号熵H(X)。 (2)用哈夫曼编码编成二元变长码,计算其编码效率。 (3)要求译码错误小于3 10-,采用定长二元码达到(2)中的哈夫曼编码效率,问需要多少个信源符号连在一起编? 解:(1)信源符号熵为 symbol bit x p x p X H i i i /23.203.0log 03.007.0log 07.010.0log 10.018.0log 18.025.0log 25.037.0log 37.0) (log )()(222222=------=-=∑ (2) 1 x 3x 2x 6 x 5x 4x 0.370.250.180.100.070.03 01 1 1 1 1 0.10 0.20 0.38 0.62 1.00 000111 10110001001 符号概率 编码 该哈夫曼码的平均码长为 符号 码元/3.2403.0407.0310.0218.0225.0237.0)(=?+?+?+?+?+?==∑i i i K x p K 编码效率为9696.03.223 .2)(=== K X H η (3)信源序列的自信息方差为 2 2 22) (792.0)]([)]()[log ()(bit X H x p x p X i i i =-=∑σ 7.00696.90)() (==+= εε η得,由X H X H

5 3 22210 2.6110)7.00(92.70)(?=?=≥-δεσX L 由切比雪夫不等式可得 所以,至少需要1.62×105个信源符号一起编码才能满足要求。 5-12 已知一信源包含8个消息符号,其出现的概率 }04.0,07.0,1.0,06.0,05.0,4.0,18.0,1.0{)(=X P ,则求: (1)该信源在每秒内发出1个符号,求该信源的熵及信息传输速率。 (2)对这8个符号作哈夫曼编码,写出相应码字,并求出编码效率。 (3)采用香农编码,写出相应码字,求出编码效率。 (4)进行费诺编码,写出相应码字,求出编码效率。 解:(1)信源熵 symbol bit x p x p X H i i i /55.204.0log 04.007.0log 07.01.0log 1.006.0log 06.005.0log 05.04.0log 4.018.0log 18.01.0log 1.0) (log )()(22222222=--------=-=∑ 信息传输速率为 s b i t R /55.2= (2)哈夫曼编码: 2 x 8 x 6 x 5x 4x 3x 1x 7x 0.40.180.10.10.070.060.05 0.04符号概率 码字 1 0.09 1 0.130.19 1 0.23 1 0.37 0 10.6 1 1.001 001 01100000100 0101 0001000011 信源各符号的对应哈夫曼曼码字如下: 0.1 0.18 0.4 0.05 0.06 0.1 0.07 0.04 011 001 1 00010 0101 0000 0100 00011 平均码长为

信息论与编码实验指导书

信息论与编码实验指导书

1 课程实验目的 本课程是一门实践性很强的专业课和核心课程,根据课程理论教学的需要安排了6学时的配套实验教学,主要内容涉及信息度量的计算方法、典型信源编码方法、典型信道容量计算方法和数据压缩方法四个实验,这四个实验的开设一方面有助于学生消化、巩固课程理论教学的知识,另一方面又可培养学生实践动手能力,同时为后续课程做好准备。 2 课程实验要求 2.1 课程实验准备要求 (1)课程实验主要为设计性实验,要求学生熟悉掌握在VC环境下编写和调试C++程序的方法。 (2)要求学生在实验前复习实验所用到的预备知识。可以查阅教材或者相关的参考资料,这需要学生有自主的学习意识和整理知识的能力。 (3)根据实验项目,设计相关的数据结构和算法,再转换为对应的书面程序,并进行静态检查,尽量减少语法错误和逻辑错误。上机前的充分准备能高效利用机时,在有限的时间内完成更多的实验内容。 2.2 课程实验过程要求 (1)生成源代码。将课前编写好的书面代码,利用VC自带的编辑器尽快输入为转换为源代码; (2)程序调试和软件测试。要求学生熟练掌握调试工具,调试正确后,认真整理源程序和注释,给出带有完整注释且格式良好的源程序清单和结果。 (3)完成实验报告。根据实验内容和完成情况,按照附件1给定的格式完成课程实验报告的编写。

2.3 课程实验报告要求 在每次课程实验后要及时进行总结和整理,并编写课程实验报告。报告格式按江西蓝天学院实验报告纸格式填写。

实验一二维随机变量信息熵的计算 [实验目的] 掌握二变量多种信息量的计算方法。 [实验学时] 2学时 [实验准备] 1.熟悉二变量多种信息量的计算方法,设计实验的数据结构和算法; 2.编写计算二维随机变量信息量的书面程序代码。 [实验内容及步骤] 离散二维随机变换熵的计算 说明: (1)利用random函数和归一化方法构造一个二维离散随机变量(X,Y); (2)分别计算X与Y的熵、联合熵、条件熵:H(X)、H(Y)、H(X,Y)H(X|Y)、I(X|Y); (3)对测试通过的程序进行规范和优化; (4)编写本次实验的实验报告。 附实验一主要内容及源程序 实验一离散二维随机变量信息熵的计算 1 实验内容 (1)利用random函数和归一化方法构造一个二维离散随机变量(X,Y); (2)分别计算X与Y的熵、联合熵、条件熵:H(X)、H(Y)、H(X,Y)H(X|Y)、I(X|Y); 2 数据结构与算法描述 (1)函数的定义:函数的数据成员 1.随机生成函数的代码: int k,n,t=0; double a[4][4],b=0,c=0; for(k=0;k<4;k++) { for(n=0;n<4;n++) { a[k][n]=rand()%100;

信息论与编码实验报告

信息论与编码实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级:计1203班 学号: 姓名: 2014年12月29日

实验一唯一可译码判别准则 实验目的: 1.进一步熟悉唯一可译码判别准则; 2.掌握C语言字符串处理程序的设计和调试技术。 实验内容: 1.已知:信源符号数和码字集合C; 2.输入:任意的一个码,码字的个数和每个具体的码字在运行时从键盘输入; 3.输出:判决(是唯一可译码/不是唯一可译码);循环(若继续判决则输入1循环判决,否则输入0结束运行)。 实验原理: 根据唯一可译码的判别方法,利用数据结构所学的知识,定义字符串数据类型并利用指针进行编程来实现算法。 算法:1、考察C 中所有的码字,若Wi是Wj的前缀,则将对应的后缀作为一个尾随后缀码放入集合Fi+1中; 2、考察C和Fi俩个集合,若Wi ∈C是Wj∈F的前缀或Wi ∈F是Wj∈C的前缀,则将相应的后缀作为尾随后缀码放入集合Fi+1中; 3、F=∪Fi即为码C的尾随后缀集合; 4、若F中出现了C中的元素,算法终止,返回假(C不是唯一可译码);否则若F中没有出现新的元素,则返回真。 实验环境及实验文件存档名: 1.实验环境:visual C++ 6.0 2.文件名:weiyikeyi.cpp 实验结果及分析: 1.源代码: #include #include char c[100][50]; char f[300][50]; int N,sum=0; //N为输入码字的个数,sum为尾随后缀集合中码字的个数 int flag;//判断是否唯一可译标志位 void patterson(char c[],char d[]) //检测尾随后缀 { int i,j,k; for(i=0;;i++) { if(c[i]=='\0'&&d[i]=='\0')//2字符串一样,跳出

信息论与编码实验1

信息论与编码实验1 实验一关于信源熵的实验班级:电子131501 姓名:赵英凯学号:201315020137时间:一、实验目的 1. 掌握离散信源熵的原理和计算方法。 2. 熟悉matlab 软件的基本操作,练习使用matlab 求解信源的信息熵。 3. 自学图像熵的相关概念,并应用所学知识,使用matlab 求解图像熵。 二、实验原理 1. 离散信源相关的基本概念、原理和计算公式产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。随机事件的自信息量I为其对应的随机变量xi 出现概率对数的负值。即:I = -log2p ( xi) 随机事件X 的平均不确定度H为离散随机变量xi 出现概率的数学期望,即:? 2.二元信源的信息熵

设信源符号集X={0,1} ,每个符号发生的概率分别为p(0)= p,p(1)= q,p+ q =1,即信源的概率空间为:?则该二元信源的信源熵为:H( X) = - plogp–qlogq = - plogp –(1 - p)log(1- p) 即:H (p) = - plogp –(1 - p)log(1- p)其中0 ≤ p ≤1 3. MATLAB 二维绘图用matlab 中的命令plot( x , y) 就可以自动绘制出二维图来。例1-2,在matlab 上绘制余弦曲线图,y = cos x ,其中0 ≤ x ≤ 2?。>>x =0::2*pi;%生成横坐标向量,使其为0,,,…,>>y =cos(x );%计算余弦向量>>plot(x ,y ) %绘制图形 4. MATLAB求解离散信源熵求解信息熵过程:1) 输入一个离散信源,并检查该信源是否是完备集。2) 去除信源中符号分布概率为零的元素。 3) 根据平均信息量公式,求出离散信源的熵。 5. 图像熵的相关知识图像熵是一种特征的统计形式,它反映

相关文档
最新文档