最新范文 方案 计划 总结 报告 体会 事迹 讲话 倡议书 反思 制度 入党

信息论与编码技术之实验

日期:2020-05-21  类别:最新范文  编辑:一流范文网  【下载本文Word版

信息论与编码技术之实验 本文关键词:信息论,编码,实验,技术

信息论与编码技术之实验 本文简介:前两个是别人的,后两个是自己的,学术交流,抛砖引玉。信息论与编码实验报告样板实验室名称:S1-306实验一二维随机变量信息熵的计算教学实验报告[实验目的]掌握二变量多种信息量的计算方法。[实验要求]1.熟悉二变量多种信息量的计算方法,设计实验的数据结构和算法;2.编写计算二维随机变量信息量的书面程序

信息论与编码技术之实验 本文内容:

前两个是别人的,后两个是自己的,学术交流,抛砖引玉。

信息论与编码

实验报告样板

实验室名称:S1-306

实验一

二维随机变量信息熵的计算

教学实验报告

[实验目的]

掌握二变量多种信息量的计算方法。

[实验要求]

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、离散信源熵(平均不确定度/平均信息量/平均自信息量)

2、在给定某个yj条件下,xi的条件自信息量为I(xi/yj),X

集合的条件熵H(X/yj)为

相应地,在给定X(即各个xi)的条件下,Y集合的条件熵H(Y/X)定义为:

3、联合熵是联合符号集合

XY上的每个元素对xiyj的自信息量的概率加权统计平均值,表示X和Y同时发生的不确定度。

[实验体会]

通过本次实验,掌握了离散信源熵、条件熵、联合熵的概念和它们与信源统计分布或条件分布、联合分布之间的关系,并能进行计算。进一步加深了对各种信息熵的物理意义的理解。

附:计算信源熵、联合熵和条件熵的程序代码清单:(可写入实验报告也可不写入)

#include

#include

#include

#include

#include

using

namespace

std;

void

main()

{

int

k,n,t=0;

double

a[4][4],b=0,c=0;

srand((unsigned)time(NULL));

for(k=0;kn;

c=new

string[n];

aa(n);

huffman(a,c,n);

cout(p+right)

);

{

tmp

=(p+right);(p+right)

=(p+left);(p+left)

=

tmp;

}

while(

m_flag

<

p[left])

{

left++;

}

if(m_flag

<

p[left])

{

tmp

=(p+right);(p+right)

=(p+left);(p+left)

=

tmp;

}

}(p+left)

=

m_flag;

return

left;

}

void

myQuickSort(doublep,int

left,int

right)

{

int

mid;

if(left

{

mid

=

mySortBase(p,left,right);

myQuickSort(p,left,mid-1);

myQuickSort(p,mid+1,right);

}

}

(4)

main

#include

#include

“myQuickSort.h“#include

“myRand.h“#include

“myLength.h“#define

N

7

int

main()

{

double

p[N]

=

{0.20,0.19,0.18,0.17,0.15,0.10,0.01};

double

q[N];

int

i,j;

int

k;

//编码

长度

double

b_c;

//

进制

//

生成

随机数

puts(“Rand:/n“);

myRand(p,N);

for(i=0;

i

i++)

{

printf(“%4.2lf/t“,p[i]);

}

puts(“/n“);

//

排序

puts(“Sort:/n“);

myQuickSort(p,0,N-1);

for(i=0;

i

i++)

{

printf(“%4.2lf/t“,p[i]);

}

puts(“/n“);

//累加

概率

puts(“Q:“);

q[0]

=

0;

for(i=1;

i

i++)

{

q[i]

=

q[i-1]

+

p[i-1];

}

for(i=0;

i

i++)

{

printf(“%4.2lf/t“,q[i]);

}

puts(“/n“);

//输出

编码

for(i=0;

i

i++)

{

printf(“P[%d]:

%4.2lf/t“,i+1,p[i]);

printf(“Q[%d]:

%4.2lf/t“,i+1,q[i]);

k

=

myLength(p[i]);

b_c

=

2*q[i];

for(j=0;

j=

1)

{

putchar(

1

);

b_c

-=

1;

}

else

{

putchar(

0

);

}

b_c=

2;

}

puts(“/n“);

}

return

0;

}

    以上《信息论与编码技术之实验》范文由一流范文网精心整理,如果您觉得有用,请收藏及关注我们,或向其它人分享我们。转载请注明出处 »一流范文网»最新范文»信息论与编码技术之实验
‖大家正在看...
设为首页 - 加入收藏 - 关于范文吧 - 返回顶部 - 手机版
Copyright © 一流范文网 如对《信息论与编码技术之实验》有疑问请及时反馈。All Rights Reserved