当前位置:文档之家› 信息论与编码实验报告材料

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

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

实验报告

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

系:

专业:

年级:

学号:

指导教师:

职称:

年月日

目录

实验一信源熵值的计算 (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.15 2120 0.02 11

0.12 2121 0.09 12

0.2 2122 0.04 20

0.08 210 0.02 22

0.04 211 0.06 0

0.18 10

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);

sum1=sum1+c(i);

end

K1=sum;

H=sum1;

Y=H/K1;

disp('???ùD??¢á?'),disp(H)

disp('???ù??3¤'),disp(K1)

disp('±à??D§?ê'),disp(Y)

六、实验结果

输出结果为:

出事概率0.2000,求和结果0,编码位数3,最终编码000

出事概率0.1900,求和结果0.2000,编码位数3,最终编码001

出事概率0.1800,求和结果0.3900,编码位数3,最终编码011

出事概率0.1700,求和结果0.5700,编码位数3,最终编码100

出事概率0.1500,求和结果0.7400,编码位数3,最终编码101

出事概率0.1000,求和结果0.8900,编码位数4,最终编码1110

出事概率0.0100,求和结果0.9900,编码位数7,最终编码1111110

编码效率:

平均信息量2.6087

平均码长3.1400

编码效率0.8308

七、实验总结

通过本次的实验,掌握了Shannon编码的实验原理以及编码过程。Shannon 编码中,对概率的排序是最基本的,如果没有将其按照从大到小的顺序排序,则经过MATLAB的程序运行后,将出现错误。在运用MATLAB编程的过程中,调用了各种函数,实现了编程。通过与队友的讨论,不但让我们更快的完成MATLAB编码,也深深体会到只有将大家的智慧融合起来,才能更快更好的解决难题。

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

一、 实验目的

1、进一步熟悉信道容量的迭代算法;

2、学习如何将复杂的公式转化为程序;

3、熟悉程序设计语言的数值计算程序和调试技术。

二、实验原理

(1)初始化信源分布()r 21)0(,,,P P P P Λ=(一般初始化为均匀分布),置迭代计数器k=0,设信道容量相对误差门限为δ,δ>0,可设;

(2) s i P

P P P i

k i

ij k i ij k ji

,,2,1)

()

()

(Λ==

∑?

(3) r i P P P i j k ji ij j k ji ij k i Λ,2,1ln exp ln exp )()()

1(=??

????????????????????=

∑∑∑+?? (4) ??

??????????????=∑∑+i k ji j ij k P C

)()

1(ln exp ln ? (5)如果

δ≤-++)

1()

()1(k k k C

C C ,转向(7);

(6)置迭代序号k k →+1,转向(2); (7)输出)1(+k i P 和)1(+k C 的结果;

(8)停止。

三、实验内容

1、已知:信源符号个数r 、新宿符号个数s 、信道转移概率矩阵P ;

2、输入:任意的一个信道转移概率矩阵,信源符号个数、信宿符号个数和每一个具体的转移概率在运行时从键盘输入;

3、

输出:最佳信源分布P*,信道容量C 。

四、实验环境

Microsoft Windows 7、 Matlab 6.5

五、编码程序

aa.m文件:

clear;

r=input('输入信源个数:');

s=input('输入信宿个数:');

deta=input('输入信道容量的精度: ');

Q=rand(r,s); %创建m*n随机分布矩阵

A=sum(Q,2);

B=repmat(A,1,s);

disp('信源转移概率矩阵:'),p=Q./B %信源转移概率矩阵

i=1:1:r;

q(i)=1/r;

disp('原始信源分布:'),q

c=-10e-8;

C=repmat(q',1,s);

for k=1:1:100000

m=p.*C; %后验概率的分子部分

a=sum(m); %后验概率的分母部分

su1=repmat(a,r,1);

t=m./su1; %后验概率矩阵

D=exp(sum(p.*log(t),2)); %信源分布的分子部分

su2=sum(D); %信源分布的分母部分

q=D/su2; %信源分布

C=repmat(q,1,s);

c(k+1)=log(sum(exp(sum(p.*log(t),2))))/log(2);

kk=abs(c(k+1)-c(k))/c(k+1);

if(kk<=0.000001)

break;

end

end

disp('最大信道容量时的信源分布:q='),disp(q')

disp('最大信道容量:c='),disp(c(k+1))

六、实验结果结果

1)检验:运行aa.m

输入信源的个数:2

输入信宿的个数:3

输入信道容量的精度:0.000001

信宿转移概率矩阵:p =0.5000 0.3000 0.2000

0.3000 0.5000 0.2000

原始信源分布:q = 0.5000 0.5000

最佳信源分布:q= 0.5000 0.5000

最大信道容量:c= 0.0365

2)计算信源个数为3,信宿个数为5的信道容量:

运行aa.m

输入信源的个数:3

输入信宿的个数:5

输入信道容量的精度:0.000001

信宿转移概率矩阵:p =0.0484 0.1385 0.3058 0.2845 0.2227

0.2104 0.2471 0.1077 0.3762 0.0585

0.3430 0.0800 0.1808 0.3428 0.0534

原始信源分布:q = 0.3333 0.3333 0.3333

最佳信源分布:q =0.4691 0.1794 0.3515

最大信道容量:c =0.1559

七、实验总结

通过实验,我们对信道容量的理解更加深刻了。信道容量是指信道能无错误

传送的最大信息率。信道的输入、输出都取值于离散符号集,且都用一个随机变

量来表示的信道就是离散单符号信道。由于信道中存在干扰,因此输入符号在传

输中将会产生错误,这种信道干扰对传输的影响可用传递概率来描述。为了评价

实际信道的利用率,应具体计算已给信道的容量。这是一个求最大值的问题。由

于互信息对输入符号概率而言是凸函数,其极值将为最大值,因此这也就是求极

值的问题。对于离散信道,P(x)是一组数,满足非负性和归一性等条件,可用拉

格朗日乘子法求得条件极值。对于连续信道,P(x)是一函数,须用变分法求条件

极值。

实验过程中,我们虽然也遇到了很多困难,但也正是因为如此,我们才能发

现自己基础的薄弱点,学的更有方向。对于编程方面,我们也有了很大的提升。

实验五 率失真函数

一、 实验目的

验证率失真函数的极值特性,理解相关参数的变化对率失真函数的影响。

二、实验原理

(1)输入S ,d 的初始值、条件概率、输出分布等值; (2)计算输出分布∑==M

i j i j pji pi q 1;

(3)进入迭代,标志为0或者误差大于指定eps 则迭代,否则退出迭代; (4)计算一个互信息∑∑===M

i M

j j

ij ij i q pji pji pi pji qj I 11)log(

);(;

(5)计算一个条件概率分布∑==

M

k Sd k Sd j ik

ij

e

q e

q i j P 1

);(;

(6)重算一次(4),并计算∑==M i ij ij i d pji pi D 1

(7)重算(3)-(7)步骤,直到退出迭代;

三、实验环境

Microsoft Windows 7、 Visual Studio 2005 profession

四、编码程序

#include

#include #include

using namespace std; //Define some global var const int M = 10; //M 元信源

const double S = -50; //迭代算法中的中间量,S 越小,允许最大失真度D 越小,当S 很小时(例如-100),R(D)=H(X) static int d[M][M]; //失真函数

static double q[M], Pji[M][M]; //输出分布和条件概率分布 static double Pi[M] = {0.4, 0.1, 0.25, 0.1, 0.05, 0.05, 0.01, 0.02, 0.005, 0.015}; //初始化信源的概率分布

const int systemDefine = 2; //定义进制(默认为2进制,结果为bit ,为e 时,结果为nat )

const double eps = 1e-8; //允许误差

//计算输出分布(qj)

void calcOutDistribution()

{

int i, j;

for(j=0; j

{

q[j]=0;

for(i=0; i

{

q[j] += Pi[i] * Pji[i][j];

}

}

}

//计算条件概率分布pji

void calcProbabilityDistribution()

{

int i, j, k;

double temp = 0;

for(i=0; i

{

temp = 0;

for(k=0; k

{

temp = temp + q[k] * exp(S*d[i][k]);

}

for(j=0; j

{

//设定一个初始的条件概率分布

Pji[i][j] = q[j] * exp(S*d[i][j])/temp;

}

}

}

//取得R(r,r)=I(qj;Pji)【实际上就是根据互信息量公式求互信息】double getSelfInformation()

{

int i, j;

double I=0;

for(i=0; i

for(j=0; j

{

I += Pi[i] * Pji[i][j] * log(Pji[i][j]/q[j])/log(systemDefine); //求互信息量

}

}

return I;

}

int main(int argc, char *argv[])

{

double probabilityCount = 0.0; //概率和

for(int k=0; k

{

probabilityCount += Pi[k];

}

//和不为1,说明概率有错误

if(fabs(probabilityCount-1.0) > eps)

{

cout<<"概率和不为1,程序异常退出!"<

return -1;

}

//前两个变量代表求的相邻的两个互信息R(r, r)和R(r, r+1);D代表限定失真

double mutualInformation1, mutualInformation2, D;

int i, j, flag, nCount;

//初始值

mutualInformation1 = 0;

mutualInformation2 = 0;

D = 0;

flag = 0;

nCount = 0; //迭代次数指示器

//init mothod

//输出分布的初始化

for(i=0; i

{

q[i] = 0;

}

//率失真函数的初始化,根据汉明失真距离来初始化

for(i=0; i

{

for(j=0; j

{

if(i == j)

{

d[i][j] = 0;

}

else

{

d[i][j] = 1;

}

}

}

for(i=0; i

{

for(j=0; j

{

//设定一个初始的条件概率分布

Pji[i][j] = 1/(double)(M);

}

}

//计算输出分布

calcOutDistribution();

//迭代算法

cout<<"误差精度:"<

while(flag == 0 || fabs(mutualInformation2-mutualInformation1) > eps)

{

cout<

flag = 1;

//获得一个互信息R(r, r)

mutualInformation1 = getSelfInformation();

//计算下一个条件概率分布

calcProbabilityDistribution();

信息论与编码实验

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

《信息论与编码》教学大纲

《信息论与编码》教学大纲 一课程简介 课程编号:04254002 课程名称:信息论与编码Informatics & Coding 课程类型:基础课必修课 学时:32 学分:2 开课学期:第六学期 开课对象:通信、电子专业 先修课程:概率论与数理统计、信号与系统、随机信号原理。 参考教材:信息论与编码,陈运,周亮,陈新,电子工业出版社,2002年8月 二课程性质、目的与任务 信息论在理论上指出了建立最佳编码、最佳调制和最佳接收方法的最佳系统的理论原则,它对通信体制和通信系统的研究具有指导意义。提高信息传输的可靠性和有效性始终是通信工作所追求的目标。因此,信息论与编码是从事通信、电子系统工程的有关工程技术人员都必须掌握的基本理论知识。 内容提要:本课程包括狭义相对论和提高通信可靠性的差错控制编码理论。信息论所研究的主要问题是在通信系统设计中如何实现有效性和可靠性。 三教学基本内容与基本要求 本课程总学时为32。其中理论教学为28,实验学时为4。 主要的理论教学内容包括:离散信源和连续信源的熵、条件熵、联合熵和平均互信息量的概念及性质;峰值功率受限和平均功率受限下的最大熵定理和连续信源熵的变换;变长码的霍夫曼编码方法,熟悉编码效率和平均码长的计算;最大后验概率准则和最大似然译码准则等。 实验内容主要包括:离散无记忆信道容量的迭代算法,循环码的编译码。 四教学内容与学时分配 第3章离散信源无失真编码

第6章网络信息论 (教学要求:A—熟练掌握;B—掌握;C—了解) 五实习、实验项目及学时分配 1.离散无记忆信道容量的迭代算法2学时 要求用Matlab编写计算离散信道容量的实用程序并调试成功,加深对信道容量的理解。 2.循环码的编译码2学时 要求用Matlab编写程序,用软件完成循环码的编译码算法。 六教学方法与手段 常规教学与多媒体教学相结合。

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

《信息论与信源编码》实验报告 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:

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

第一章 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

信息论与编码实验报告

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

信息论与编码试卷与答案

一、概念简答题(每题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.黑白气象传真图的消息只有黑色和白色两种,求:

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

一填空题(本题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 之比 。

信息论与编码实验报告

信息论与编码实验报告-标准化文件发布号:(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. 在无失真的信源中,信源输出由 H (X ) 来度量;在有失真的信源中,信源输出由 R (D ) 来度量。 2. 要使通信系统做到传输信息有效、可靠和保密,必须首先 信源 编码, 然后_____加密____编码,再______信道_____编码,最后送入信道。 3. 带限AWGN 波形信道在平均功率受限条件下信道容量的基本公式,也就是有名的香农公式是log(1)C W SNR =+;当归一化信道容量C/W 趋近于零时,也即信道完全丧失了通信能力,此时E b /N 0为 -1.6 dB ,我们将它称作香农限,是一切编码方式所能达到的理论极限。 4. 保密系统的密钥量越小,密钥熵H (K )就越 小 ,其密文中含有的关于明文的信息量I (M ;C )就越 大 。 5. 设输入符号表为X ={0,1},输出符号表为Y ={0,1}。输入信号的概率分布为p =(1/2,1/2),失真函数为d (0,0) = d (1,1) = 0,d (0,1) =2,d (1,0) = 1,则D min = 0 ,R (D min )= 1bit/symbol ,相应的编码器转移概率矩阵[p(y/x )]=1001?? ???? ;D max = 0.5 ,R (D max )= 0 ,相应的编码器转移概率矩阵[p(y/x )]=1010?? ???? 。 二、判断题 1. 可以用克劳夫特不等式作为唯一可译码存在的判据。 (√ ) 2. 线性码一定包含全零码。 (√ ) 3. 算术编码是一种无失真的分组信源编码,其基本思想是将一定精度数值作为序列的 编码,是以另外一种形式实现的最佳统计匹配编码。 (×) 4. 某一信源,不管它是否输出符号,只要这些符号具有某些概率特性,就有信息量。 (×) 5. 离散平稳有记忆信源符号序列的平均符号熵随着序列长度L 的增大而增大。 (×) 6. 限平均功率最大熵定理指出对于相关矩阵一定的随机矢量X ,当它是正态分布时具 有最大熵。 (√ ) 7. 循环码的码集中的任何一个码字的循环移位仍是码字。 (√ ) 8. 信道容量是信道中能够传输的最小信息量。 (×) 9. 香农信源编码方法在进行编码时不需要预先计算每个码字的长度。 (×) 10. 在已知收码R 的条件下找出可能性最大的发码i C 作为译码估计值,这种译码方 法叫做最佳译码。 (√ ) 三、计算题 某系统(7,4)码 )()(01201230123456c c c m m m m c c c c c c c ==c 其三位校验 位与信息位的关系为:

信息论霍夫曼编码

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

实验目的 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);%从第二列开始,每列的最后一个元素记录特征元素在

信息论与编码实验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. 图像熵的相关知识 图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。

信息论与编码 课程总结

《信息论与编码》课程总结 本学期我选修了《信息论与编码》这门课程,信息论是应用近代概率统计方法来研究信息传输,交换,存储和处理的一门学科,也是源于通信实践发展起来的一门新兴应用科学。信息是系统传输,交换,存储和处理的对象,信息载荷在语言,文字,数据,图像等消息之中。本书共学习了9章内容,系统详细的学习和深入了解了信息论的相关基本理论。 第一章首先了解了信息论的相关概念,了解到了信息论所研究的通信系统基本模型,以及香农定理的相关应用。 第二章学习到了熵和互信息这两个重要概念。信源的熵是用来刻画信源发出的消息的平均不确定性,而两个随机变量之间的互信息则表示一个随机变量对另一个随机变量所提供的信息量。 第三章学习到了离散无记忆信源的无损编码。根据香农的信源编码定理,明白了所谓的无损编码是指信源编码的错误概率可以任意小,但并非为零;信源的无损编码通常是对非常长的消息序列进行的。并且了解到了几种不等长编码的算法,例如Huffman 编码,Shannon 编码等编码方法。 第四章主要研究的是信道,信道容量及信道编码定理的相关内容。对信道的研究中,首先是对信道分类和建模,本章主要讨论离散无记忆信道和连续加性高斯噪声信道;其次研究信道容量,这是刻画信道的最重要的参数,最后讨论信道编码定理,该定理刻画了信道可靠传输信息的极限性能。 第五章主要介绍的是率失真理论和保真度准则下的信源编码。与无损压缩编码不同,保真度准则下的信源编码允许有失真,且其压缩编码是降熵的,它要求在满足失真要求下使数据熵率尽可能低,从而降低码率,所以不可能从压缩后的数据中无失真的恢复出原来的消息。第六章主要学到的是受限系统和受限系统编码。在了解了受限系统的相关概念之后,又进一步的了解到了受限系统的有限状态转移图和受限系统的容量和其容量的计算方法等相关重要的知识内容。 第七章主要阐述的是线性分组纠错编码。纠错编码通常也称为信道编码,在通信中信源编码,信道编码和数据转换编码常常是同时使用的,信源编码器执行数据压缩功能,把信源输出中的余度去除或减小。信道编码的编码器则是对经过压缩后的数据家一定数量受到控制的余度,使得数据在传输或接受中发生的差错可以被纠正或被发现。 第八章主要带我们了解了有限域代数的基本知识,本章介绍了循环码是一类非常重要的线性码,他的码字具有循环性。 第九章重点介绍了卷积码,了解了卷积码的冲激响应,生成矩阵和它的树图描述以及状态图描述。 通过本学期的学习,了解到很多原来没接触过的比较抽象化的知识点,信息论与编码这门课程中,不仅有很多抽象的概念,更有很多需要反复巩固和研究的数学公式,需要在今后的学习中,更加努力。这门课程让我更深的了解了通信领域,对学习有很大帮助。最后,谢谢老师一学期的努力授课,我受益匪浅。

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

本科生实验报告 实验课程信息理论与编码 学院名称信息科学与技术学院 专业名称 学生姓名 学生学号 指导教师 实验地点 实验成绩 二〇一六年九月----二〇一六年十一月

填写说明 1、适用于本科生所有的实验报告(印制实验报告册除外); 2、专业填写为专业全称,有专业方向的用小括号标明; 3、格式要求: ①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。 ②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm, 左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。 ③具体要求: 题目(二号黑体居中); 摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体); 关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体); 正文部分采用三级标题; 第1章××(小二号黑体居中,段前0.5行) 1.1 ×××××小三号黑体×××××(段前、段后0.5行) 1.1.1小四号黑体(段前、段后0.5行) 参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一:香农(Shannon )编码 一、实验目的 掌握通过计算机实现香农编码的方法。 二、实验要求 对于给定的信源的概率分布,按照香农编码的方法进行计算机实现。 三、实验基本原理 给定某个信源符号的概率分布,通过以下的步骤进行香农编码 1.将信源消息符号按其出现的概率大小排列 )()()(21n x p x p x p ≥≥≥ 2.确定满足下列不等式的整数码长K i ; 1)(lo g )(lo 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 位即为该消息符号的二进制码。 四、实验内容 1.对给定信源? ?????=????? ?01.01.015.017.018.019.02.0)(7654321 x x x x x x x X q X 进行二进制香农编码。 2.对给定信源??????=????? ?05.010.015.020.025.025.0)(654321x x x x x x X q X 进行二进制香农编码。 3.自已选择一个例子进行香农编码。 五、实验设备 PC 计算机 ,C++

信息论与编码实验指导书

信息论与编码实验指导书 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)编写本次实验的实验报告。

信息论与编码实验报告

信息论与编码基础实验报告
学院: 队别: 专业: 姓名: 学号:
电子科学与工程学院 二队 06 级 通信工程专业 曹务绅 200604015014
国防科学技术大学电子科学与工程学院
1

汉明码编译码
一、 实验目的
通过本次实验的练习, 进一步巩固了信道编码的基本原理, 掌握了Hamming 码编译码方法,提高了软硬件操作能力,培养了实验人员理论结合实践的能力。
二、 实验原理
(一)汉明码: 汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。它属 于线性分组码, 由于汉明码的抗干扰能力较强, 至今仍是应用比较广泛的一类码。 它具有以下特征: 码 长: n = 2m ? 1
信息位数: k = 2 m ? m ? 1 监督码位: r = n ? k = m 最小码距: d = 3 纠错能力: t = 1 (二)汉明码的编码: 在(n,k)汉明码中, (n-k)个附加的监督码元是由信息码元的线性运算产生 的。码长为 n,信息码元长度为 k,2k 个码组构成 n 维线性空间中的一个 k 维子 空间,编码的实质就是要在 n 维空间中,找出一组长为 n 的 k 个线性无关的矢 量 g0 g1 g k ?1 ,使得每个码组 c 都可以表示为 k 个矢量的线性组合,即 c0 ] = mk ?1 g 0 + mk ? 2 g1 + m0 g k ?1 其中, m i∈{0,1}, i=0,
c = [cn ?1 cn ? 2
1,……,k-1。将上式写成矩阵形式得
2

信息论与编码概念总结

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

意义:针对最大熵而言,无用信息在其中所占的比例 3 .极限熵: 亿(綸-1]卫扌"(卅) 平均符号熵的N 取极限值,即原始信源不断发符号,符号间的统计关系延伸到 无穷。 5 .离散信源和连续信源的最大熵定理。 离散无记忆信源,等概率分布时熵最大。 连续信源,峰值功率受限时,均匀分布的熵最大 平均功率受限时,高斯分布的熵最大。 均值受限时,指数分布的熵最大 6 ?限平均功率的连续信源的最大熵功率: 若一个连续信源输出信号的平均功率被限定为 p ,则其输出信号幅度的概率密度 1 分布是高斯分布时,信源有最大的熵,其值为 丄Iog2二ep.对于N 维连续平稳信源来说, H ( X N )有记忆 即 H ( X N ) H ( X N ) N < NH ( X ) 定义: -H ( X ) = H ( X N ) N )无记忆 称为平均符号熵

信息论与编码实验书

信 息 论 与 编 码 实 验 报 告 班级: 姓名: 学号:

实验一 绘制二进熵函数曲线(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 λλλλ-+≥-+≤=--+-=-=≤≤???? ?? -===???? ??∑ 四、实验内容: 用Excel 或Matlab 软件制作二进熵函数曲线。 具体步骤如下: 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 散点图”,子图表类型选“无

相关主题
文本预览
相关文档 最新文档