文档库 最新最全的文档下载
当前位置:文档库 › 实验一 离散信源及其信息测度

实验一 离散信源及其信息测度

实验一  离散信源及其信息测度
实验一  离散信源及其信息测度

预备知识

一、矩阵处理

1)在MATLAB中矩阵的创建应遵循以下基本常规:矩阵元素应用方括号([])括住;每行内的元素间用逗号(,)或空格隔开;行与行之间用分号(;)或回车键隔开;元素可以是数值或表达式。

2)矩阵赋值

若A=[1 2 3; 4 5 6; 7 8 9;10 11 12]

若A=[1 2 3; 4 5 6; 7 8 9;10 11 12],选出前3行构成矩阵B,B=A(1:3,:)选出前2列构成矩阵C,C=A(:,1:2)

3)矩阵删除

在MATLAB中可以对数组中的单个元素、子矩阵和所有元素进行删除操作,删除就是将其赋值为空矩阵(用[]表示)。

若将A的2,3行去除,则A([2,3],:)=[]

4)矩阵变换

A' %矩阵A的转置

A(:) %矩阵A按列展开形成一维数组

5)矩阵运算

点运算

两个矩阵之间的点运算是按照数组运算规则计算,矩阵的对应元素直接运算。要求参加运算的矩阵大小必须相同。有“.*”、“./”和“.\”三种运算符。

乘法运算

两个矩阵的维数相容时(A的列数等于B的行数),可以进行A乘B的乘法运算。二、M文件

if语句

最简单的选择结构语句,其基本格式为:

if 表达式

语句组

end

说明:表达式多为关系或逻辑表达式。如果表达式为真(非零),就执行if和end之间的语句组,然后再执行end之后的语句;如果表达式为假(零),就直接执行end之后的语句。

for语句

for语句为计数循环语句,在许多情况下,循环条件是有规律变化的,通常把循环条件初值、终值和变化步长放在循环语句的开头,这种形式就是for语句的循环结构。for循环的一般形式是:

for 循环变量名=表达式1:表达式2:表达式3

语句体

end

说明:其中表达式1的值是循环变量的初值,表达式2的值是循环步长,表达式3的值是循环变量的终值。初值、步长和终值可以取整数、小数、正数和负数,步长可以缺省,缺省值为1。

continue语句

continue语句用于控制for循环或while循环跳过某些执行语句,当出现continue 语句时,则跳过循环体中所有剩余的语句,继续下一次循环,即结束本次循环。

三、函数文件

基本结构

函数文件由function关键字引导,其基本结构为:

function [输出形参表]=函数名(输入形参表)

注释说明部分

函数体语句

return

说明:以function开头的一行为引导行,表示该文件是一个函数文件。函数名的命名规则与变量名相同。输入形参表是函数的输入参数,可以有多个,用“逗号”来分隔;输出形参表为函数的输出参数,当输出形参只有一个时,直接输入变量名而不用方括号,多个输出形参用“逗号”来分隔。

注意:函数文件编辑结束后,不能像M文件那样单击〈F5〉或单击Debug → Save and Run选项运行,而是要直接存盘。

函数调用

函数文件编制好后,就可以调用函数进行计算了。函数调用的一般格式为:

[输出实参表]=函数名(输入实参表)

需要注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。

四、二维绘图

二维绘图

plot(x,y,’参数’)

说明:x,y可以是向量或矩阵,参数选项为一个字符串,决定二维图形的颜色、线型及数据点的图标。

plot (x1, y1, ‘参数1’,x2, y2, ‘参数2’,…)

说明:可以用同一函数在同一坐标系中画多幅图形,x1,y1确定第一条曲线的坐标值,参数1为第一条曲线的选项参数;x2,y2为第二曲线的坐标值,参数2为第二条曲线的选项参数;其他图形以次类推。

坐标轴的调整

(1)坐标轴比例控制

函数:axis([xmin xmax ymin ymax])

说明:将图形的x轴范围限定在[xmin xmax]之间,y轴的范围限定在[ymin ymax ]之

间。 MATLAB绘制图形时,按照给定的数据值确定坐标轴参数范围。

(2)有关图形的标题、坐标轴标注等图形文字标识类函数如下:

函数:title(‘字符串’)

说明:图形标题。

函数:xlabel(‘字符串’)

说明:x轴标注。

函数:ylabel(‘字符串’)

说明:y轴标注。

函数:text(x,y,‘字符串’)

说明:在坐标(x,y)处标注说明文字。

函数:gtext(‘字符串’)

说明:用鼠标在特定处标注说明文字。

图形控制

(1)图形的保持

函数:hold on

说明:保持当前图形及轴系的所有特性

(2)网格控制

函数:grid on

说明:在所画的图形中添加网格线

五、三维绘图

1.meshgrid函数

按指定方式创建网格矩阵。

函数:[X,Y]=meshgrid(a,b)

说明:将等长度向量a,b,转换为二维网格数据,再以一组z轴的数据对应到这个二维网格,即可得到三维数据。

MATLAB提供了plot3函数绘制三维曲线图形。该函数将绘制二维图形的函数plot的特性扩展到了三维空间,其功能和使用方法类似于绘制二维图形的函数。其格式为:

plot3(x1,y1,z1,‘参数1’,x2,y2,z2,‘参数2’,…)

三维曲面图:

六、符号计算

1.定义符号变量

函数:syms 变量名1 变量名2 变量名3 …说明:一次创建多个符号变量。

2.符号方程求解

3.级数的符号求和

4.符号计算结果的绘图

实验一 离散信源及其信息测度

一、[实验目的]

1.掌握离散信源熵的原理和计算方法。

2.熟悉matlab 软件的基本操作,练习应用matlab 软件进行信源熵函数曲线的绘制。

3.理解信源熵的物理意义,并能从信源熵函数曲线图上进行解释其物理意义。

二、[实验环境]

windows 系统,MATLAB

三、[实验原理]

1. 离散信源相关的基本概念、原理和计算公式

(1)产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。随机事件的自信息量I (xi )为其对应的随机变量xi 出现概率对数的负值。

即: I (xi )= -log2p ( xi)

(2)信源输出的各消息的自信息量的数学期望为信源的信息熵,信源熵是信源的统计平均不确定性的描述,是概率函数()p x 的函数。表达式如下:

1()[()]()log ()

q

i i i H X E I xi p x p x ===-∑

2. 二元信源的信息熵及二维绘图

1)设信源符号集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 2)MATLAB 二维绘图

用matlab 中的命令plot( x , y) 就可以自动绘制出二维图来。 如:在matlab 上绘制余弦曲线图,y = cos x ,其中 0 ≤ x ≤ 。

>>x =0:0.1:2*pi ; %生成横坐标向量,使其为 0,0.1,0.2,…,6.2 >>y =cos(x ); %计算余弦向量 >>plot(x ,y ) %绘制图形 3.求解联合熵,条件熵,平均符号熵

4.求解马尔可夫信源的稳态分布及n 步转移矩阵 P (n )=P^n ;稳态分布要满足W*P=W 及∑W=1

四、[实验内容]

1、用matlab 编程实现离散无记忆信源熵值的计算。编写一M 函数文件:

function H= entropy(p)

2、绘制2元符号信源熵函数与概率分布曲线,图形如下图所示:

)(2

1

)(212X X H X H =

21211

(|)()(|)q

i i i H X X p a H X X a ===∑11

11

()(|)log (|)()log (|)

q

q q q

i j i j i i j j i i j i j p a p a a p a a p a a p a a =====-=-∑∑∑∑1211()()log ()q q

i j i j i j H X X p a a p a a ===-∑∑)|()(121X X H X H +=

2124、一个马尔可夫信源有3个符号{}1,23,u u u ,转移概率为:()11|1/2p u u =,()21|1/2p u u =,()31|0

p u u =,

()12|1/3p u u =,

()22|0

p u u =,

()32|2/3

p u u =,

()13|1/3

p u u =,

()23|2/3p u u =,

()33|0

p u u =,求出各符号稳态概率分布及二

步转移概率矩阵

五、[设计思路]

1) 求解信息熵过程:去除信源中符号分布概率为零的元素, 根据平均信息量公式,求出离散信源的熵。

2) H (p) = - plogp –(1 - p)log(1- p) 其中 0 ≤ p ≤1 ,用matlab 中

的命令plot( x , y) 就可以自动绘制出二维图来。 3) 根据公式进行求解

4) 可列出状态转移矩阵为:

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 =??++=?得1231132

2312311123312232

31

W W W W W W W W W W W W ?++=???+=???=???++=? 六、[实验步骤]

七、[实验结果]

实验一离散信源及其信息测度

预备知识 一、矩阵处理 1)在MATLAB中矩阵的创建应遵循以下基本常规:矩阵元素应用方括号([])括住;每行内的元素间用逗号(,)或空格隔开;行与行之间用分号(;)或回车键隔开;元素可以是数值或表达式。 2)矩阵赋值 若A=[1 2 3; 4 5 6; 7 8 9;10 11 12] 若A=[1 2 3; 4 5 6; 7 8 9;10 11 12],选出前3行构成矩阵B,B=A(1:3,:)选出前2列构成矩阵C,C=A(:,1:2) 3)矩阵删除 在MATLAB中可以对数组中的单个元素、子矩阵和所有元素进行删除操作,删除就是将其赋值为空矩阵(用[]表示)。 若将A的2,3行去除,则A([2,3],:)=[] 4)矩阵变换 A' %矩阵A的转置 A(:) %矩阵A按列展开形成一维数组 5)矩阵运算 点运算 两个矩阵之间的点运算是按照数组运算规则计算,矩阵的对应元素直接运算。要求参加运算的矩阵大小必须相同。有“.*”、“./”和“.\”三种运算符。 乘法运算 两个矩阵的维数相容时(A的列数等于B的行数),可以进行A乘B的乘法运算。二、M文件 if语句 最简单的选择结构语句,其基本格式为: if 表达式 语句组 end 说明:表达式多为关系或逻辑表达式。如果表达式为真(非零),就执行if和end之间的语句组,然后再执行end之后的语句;如果表达式为假(零),就直接执行end之后的语句。 for语句 for语句为计数循环语句,在许多情况下,循环条件是有规律变化的,通常把循环条件初值、终值和变化步长放在循环语句的开头,这种形式就是for语句的循环结构。for循环的一般形式是: for 循环变量名=表达式1:表达式2:表达式3 语句体 end

多核编程与并行计算实验报告 (1)

多核编程与并行计算实验报告 姓名: 日期:2014年 4月20日 实验一 // exa1.cpp : Defines the entry point for the console application.

// #include"stdafx.h" #include #include #include #include using namespace std; void ThreadFunc1(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc1"<

实验二 // exa2.cpp : Defines the entry point for the console application. // #include"stdafx.h" #include #include using namespace std; DWORD WINAPI FunOne(LPVOID param){ while(true) { Sleep(1000); cout<<"hello! "; } return 0; } DWORD WINAPI FunTwo(LPVOID param){ while(true) { Sleep(1000); cout<<"world! ";

第3章_离散信源()题与答案

该信源发出的信息序列为(202 120 130 213 001 203 210 110 321 010 021 032 011 223 210)。求: (1)此消息的自信息量是多少? (2)此消息中平均每符号携带的信息量是多少? 解: (1) 此消息总共有14个0、13个1、12个2、6个3,因此消息发出的概率是: 此消息的信息量是:I二-log p =87.811 bit 3.2某一无记忆信源的符号集为{0, 1},已知信源的概率空间为 ;x 口0 1: ]P(X)」J/4 3/4: (1)求信息符号的平均熵; ⑵ 由100个符号构成的序列,求某一特定序列(例如有m个“0”和(100 - m个“1”) 的自信息量的表达式; ⑶计算⑵中序列的熵。 解: (1) 丁"133、 H(X)二一p(X|) log p(X|) log log 0.811 bit i\_4 4 4 4 J 100 -m 3 —,100 4 3〔00 -m l(xj - -log p(xj - -log 10厂=41.5 1.585m bit 4 H(X100) =100H(X) =100 0.811 =81.1 bit 其概率空间为 ;X L X1 = 0 X2 =1 X3 = 2 X4 = 3 J P(X)J '、3/8 1/4 1/4 1/8 离散无记忆信源 ⑵ 此消息中平均每符号携带的信息量是: I /n =87.811/45=1.951 bit z-m 100 -m g盯(4〕

3.5某信源的消息符号集的概率分布和二进制代码如题表 3.2所列

(1)求信息的符号熵; (2)求每个消息符号所需要的平均二进制码的个数或平均代码长度。进而用这一结果求码序列中的一个二进制码的熵; (3)当消息是由符号序列组成时,各符号之间若相互独立,求其对应的二进制码序列中出现 0和1的无条件概率P o和P i,求相邻码间的条件概率P o/1、P l/0、P i/1、P o/o。 解: (1) 「1 1 1 1 1 1 1 1 \ H(X) - p(xjlogp(x) log log log log 1.75 bit i(2 2448888 丿 ⑵ - 丁1111 L =E(h)=為p(x)h 1 ——2 — 3 — 3=1.75 i 2 4 8 8 1 1 H N(X) H (X) H(X) =1 bit N L 设消息序列长为N,则u0、u1、u2、u3的个数分别为N/2, N/4, N /8, N/8个。 N N N N 7N 则0的个数为一1 — 1 — 1 — 0 =—— 2 4 8 8 8 N N N N 7N 而1的个数为0 1 2 3 = 2 4 8 8 8 因而p0 = p1 = 0.5 P0/1 二P10 / P1 =屮P 0/0 = P00 / P0 P1/0 二p 01 / p 1 二2__2 1 P1/1 二 p 11 / p 1

并行计算1

并行计算 实 验 报 告 学院名称计算机科学与技术学院专业计算机科学与技术 学生姓名 学号 年班级 2016年5 月20 日

一、实验内容 本次试验的主要内容为采用多线程的方法计算pi的值,熟悉linux下pthread 形式的多线程编程,对实验结果进行统计并分析以及加速比曲线分析,从而对并行计算有初步了解。 二、实验原理 本次实验利用中值积分定理计算pi的值 图1 中值定理计算pi 其中公式可以变换如下: 图2 积分计算pi公式的变形 当N足够大时,可以足够逼近pi,多线程的计算方法主要通过将for循环的计算过程分到几个线程中去,每次计算都要更新sum的值,为避免一个线程更新sum 值后,另一个线程仍读到旧的值,所以每个线程计算自己的部分,最后相加。三、程序流程图 程序主体部分流程图如下:

多线程执行函数流程图如下: 四、实验结果及分析

令线程数分别为1、2、5、10、20、30、40、50和100,并且对于每次实验重复十次求平均值。结果如下: 图5 时间随线程的变化 实验加速比曲线的计算公式类似于 结果如下: 图5 加速比曲线 实验结果与预期类似,当线程总数较少时,线程数的增多会对程序计算速度带来明显的提升,当线程总数增大到足够大时,由于物理节点的核心数是有限的,因此会给cpu带来较多的调度,线程的切换和最后结果的汇总带来的时间开销较大,所以线程数较大时,增加线程数不会带来明显的速度提升,甚至可能下降。 五、实验总结

本次试验的主要内容是多线程计算pi的实现,通过这次实验,我对并行计算有了进一步的理解。上学期的操作系统课程中,已经做过相似的题目,因此程序主体部分相似。不同的地方在于,首先本程序按照老师要求应在命令行提供参数,而非将数值写定在程序里,其次是程序不是在自己的电脑上运行,而是通过ssh和批处理脚本等登录到远程服务器提交任务执行。 在运行方面,因为对批处理任务不够熟悉,出现了提交任务无结果的情况,原因在于windows系统要采用换行的方式来表明结束。在实验过程中也遇到了其他问题,大多还是来自于经验的缺乏。 在分析实验结果方面,因为自己是第一次分析多线程程序的加速比,因此比较生疏,参考网上资料和ppt后分析得出结果。 从自己遇到的问题来看,自己对批处理的理解和认识还比较有限,经过本次实验,我对并行计算的理解有了进一步的提高,也意识到了自己存在的一些问题。 六、程序代码及部署 程序源代码见cpp文件 部署说明: 使用gcc编译即可,编译时加上-pthread参数,运行时任务提交到服务器上。 编译命令如下: gcc -pthread PI_3013216011.cpp -o pi pbs脚本(runPI.pbs)如下: #!/bin/bash #PBS -N pi #PBS -l nodes=1:ppn=8 #PBS -q AM016_queue #PBS -j oe cd $PBS_O_WORKDIR for ((i=1;i<=10;i++)) do ./pi num_threads N >> runPI.log

计算方法上机实验报告

《计算方法》上机实验报告 班级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX XXXXXXX 任课教师:XXX 二〇一八年五月二十五日

前言 通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB 程序的编写。 以下为本次上机实验报告,按照实验内容共分为六部分。 实验一: 一、实验名称及题目: Newton 迭代法 例2.7(P38):应用Newton 迭代法求 在 附近的数值解 ,并使其满足 . 二、解题思路: 设'x 是0)(=x f 的根,选取0x 作为'x 初始近似值,过点())(,00x f x 做曲线)(x f y =的切线L ,L 的方程为))((')(000x x x f x f y -+=,求出L 与x 轴交点的横坐标) (') (0001x f x f x x - =,称1x 为'x 的一次近似值,过点))(,(11x f x 做曲线)(x f y =的切线,求该切线与x 轴的横坐标) (') (1112x f x f x x - =称2x 为'x

的二次近似值,重复以上过程,得'x 的近似值序列{}n x ,把 ) (') (1n n n n x f x f x x - =+称为'x 的1+n 次近似值,这种求解方法就是牛顿迭代法。 三、Matlab 程序代码: function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1; f1=diff(f);%求导 y=subs(f,z,x0); y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1; while abs(x1-x0)>=tol x0=x1; y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end x=double(x1) K 四、运行结果: 实验二:

第3章_离散信源(1)题与答案

3.1 设有一离散无记忆信源,其概率空间为 ??? ? ??=====??????8/14/1324/18/310)(4321x x x x X P X 该信源发出的信息序列为(202 120 130 213 001 203 210 110 321 010 021 032 011 223 210)。 求: (1) 此消息的自信息量是多少? (2) 此消息中平均每符号携带的信息量是多少? 解: (1) 此消息总共有14个0、13个1、12个2、6个3,因此消息发出的概率是: 6 2514814183?? ? ?????? ?????? ??=p 此消息的信息量是:bit p I 811.87log =-= (2) 此消息中平均每符号携带的信息量是:bit n I 951.145/811.87/== 3.2 某一无记忆信源的符号集为{0, 1},已知信源的概率空间为 ???? ??=??????4/34/110 )(X P X (1) 求信息符号的平均熵; (2) 由100个符号构成的序列,求某一特定序列(例如有m 个“0”和(100 - m )个“1”)的自信息量的表达式; (3) 计算(2)中序列的熵。 解: (1) bit x p x p X H i i i 811.043log 4341log 41 )(log )()(=??? ??+-=-=∑ (2) bit m x p x I x p m i i m m m i 585.15.4143 log )(log )(4 34341)(100 100100 100100+=-=-==? ? ? ?????? ??=--- (3) bit X H X H 1.81811.0100)(100)(100=?== 3.5 某信源的消息符号集的概率分布和二进制代码如题表3.2所列。 题表 3.2

并行计算实验报告一

江苏科技大学 计算机科学与工程学院 实验报告 实验名称:Java多线程编程 学号:姓名:班级: 完成日期:2014年04月22日

1.1 实验目的 (1) 掌握多线程编程的特点; (2) 了解线程的调度和执行过程; (3)掌握资源共享访问的实现方法。 1.2 知识要点 1.2.1线程的概念 (1)线程是程序中的一个执行流,多线程则指多个执行流; (2)线程是比进程更小的执行单位,一个进程包括多个线程; (3)Java语言中线程包括3部分:虚拟CPU、该CPU执行的代码及代码所操作的数据。 (4)Java代码可以为不同线程共享,数据也可以为不同线程共享; 1.2.2 线程的创建 (1) 方式1:实现Runnable接口 Thread类使用一个实现Runnable接口的实例对象作为其构造方法的参数,该对象提供了run方法,启动Thread将执行该run方法; (2)方式2:继承Thread类 重写Thread类的run方法; 1.2.3 线程的调度 (1) 线程的优先级 ●取值范围1~10,在Thread类提供了3个常量,MIN_PRIORITY=1、MAX_ PRIORITY=10、NORM_PRIORITY=5; ●用setPriority()设置线程优先级,用getPriority()获取线程优先级; ●子线程继承父线程的优先级,主线程具有正常优先级。 (2) 线程的调度:采用抢占式调度策略,高优先级的线程优先执行,在Java中,系统按照优先级的级别设置不同的等待队列。 1.2.4 线程的状态与生命周期

说明:新创建的线程处于“新建状态”,必须通过执行start()方法,让其进入到“就绪状态”,处于就绪状态的线程才有机会得到调度执行。线程在运行时也可能因资源等待或主动睡眠而放弃运行,进入“阻塞状态”,线程执行完毕,或主动执行stop方法将进入“终止状态”。 1.2.5 线程的同步--解决资源访问冲突问题 (1) 对象的加锁 所有被共享访问的数据及访问代码必须作为临界区,用synchronized加锁。对象的同步代码的执行过程如图14-2所示。 synchronized关键字的使用方法有两种: ●用在对象前面限制一段代码的执行,表示执行该段代码必须取得对象锁。 ●在方法前面,表示该方法为同步方法,执行该方法必须取得对象锁。 (2) wait()和notify()方法 用于解决多线程中对资源的访问控制问题。 ●wait()方法:释放对象锁,将线程进入等待唤醒队列; ●notify()方法:唤醒等待资源锁的线程,让其进入对象锁的获取等待队列。 (3)避免死锁 指多个线程相互等待对方释放持有的锁,并且在得到对方锁之前不会释放自己的锁。 1.3 上机测试下列程序 样例1:利用多线程编程编写一个龟兔赛跑程序。 乌龟:速度慢,休息时间短;

(完整版)计算离散信源的熵matlab实现

实验一:计算离散信源的熵 一、实验设备: 1、计算机 2、软件:Matlab 二、实验目的: 1、熟悉离散信源的特点; 2、学习仿真离散信源的方法 3、学习离散信源平均信息量的计算方法 4、熟悉 Matlab 编程; 三、实验内容: 1、写出计算自信息量的Matlab 程序 2、写出计算离散信源平均信息量的Matlab 程序。 3、掌握二元离散信源的最大信息量与概率的关系。 4、将程序在计算机上仿真实现,验证程序的正确性并完成习题。 四、实验报告要求 简要总结离散信源的特点及离散信源平均信息量的计算,写出习题的MATLAB 实现语句。 信息论基础: 自信息的计算公式 21()log a I a p = Matlab 实现:I=log2(1/p) 或I=-log2(p) 熵(平均自信息)的计算公式 22111()log log q q i i i i i i H x p p p p ====-∑∑ Matlab 实现:HX=sum(-x.*log2(x));或者h=h-x(i)*log2(x(i)); 习题: 1. 甲地天气预报构成的信源空间为: 1111(),,,8482 X p x ??????=???????? 小雨 云 大雨晴 乙地信源空间为: 17(),88 Y p y ??????=???????? 小雨晴 求此两个信源的熵。求各种天气的自信息量。 案:() 1.75;()0.5436H X H Y ==

运行程序: p1=[1/2,1/4,1/8,1/8];%p1代表甲信源对应的概率p2=[7/8,1/8];%p2代表乙信源对应的概率 H1=0.0; H2=0.0; I=[]; J=[]; for i=1:4 H1=H1+p1(i)*log2(1/p1(i)); I(i)=log2(1/p1(i)); end disp('自信息量分别为:'); I disp('H1信源熵为:'); H1 for j=1:2 H2=H2+p2(j)*log2(1/p2(j)); J(j)=log2(1/p2(j)); end disp('自信息量分别为:'); J disp('H2信源熵为:'); H2

实验一 离散信源及其信息测度

实验一 离散信源及其信息测度 一、[实验目的] 离散无记忆信源是一种最简单且最重要的信源,可以用完备的离散型概率空间来描述。本实验通过计算给定的信源的熵,加深对信源及其扩展信源的熵的概念的理解。 二、[实验环境] windows XP,MATLAB 三、[实验原理] 信源输出的各消息的自信息量的数学期望为信源的信息熵,表达式如下 1()[()]()log ()q i i i H X E I xi p x p x ===-∑ 信源熵是信源的统计平均不确定性的描述,是概率函数()p x 的函数。 四、[实验内容] 1、有条100字符英文信息,假定其中每字符从26个英文字母和1个空格中等概选取,那么每条信息提供的信息量为多少?若将27个字符分为三类,9个出现概率占2/7,13个出现概率占4/7,5个出现占1/7,而每类中符号出现等概,求该字符信源的信息熵。 2、二进制通信系统使用0、1,由于存在失真,传输会产生误码,用符号表示下列事件:u0:一个0发出;u1:一个1发出;v0:一个0收到;v1:一个1收到;给定下列概率:p(u0)=1/2,p(v0|u0)=3/4,p(v0|u1)=1/2。求:(a)已知发出一个0,求收到符号后得到的信息量;(b)已知发出的符号,求收到符号后得到的信息量; 3、给定离散无记忆信源X ,其概率空间为 010.70.3X P ????=???????? 求该信源的熵和其二次、三次扩展信源的熵。(编写一M 函数文件: function [H_X1,H_X2,H_X3]=t03(X1,P1) %t03 求信源和其二次、三次扩展信源的熵 %输入为X1,P1,分别为信源符号和概率阵 %输出为原离散信源的熵H_X1和二次、三次扩展信源的熵H_X2、H_X3

多核编程与并行计算实验报告 (1)

(此文档为word格式,下载后您可任意编辑修改!) 多核编程与并行计算实验报告 姓名: 日期:2014年 4月20日

实验一 // exa1.cpp : Defines the entry point for the console application. // #include"stdafx.h" #include #include #include #include using namespace std; void ThreadFunc1(PVOID param) { while(1) { Sleep(1000); cout<<"This is ThreadFunc1"<

实验二 // exa2.cpp : Defines the entry point for the console application. // #include"stdafx.h" #include #include using namespace std; DWORD WINAPI FunOne(LPVOID param){ while(true) { Sleep(1000); cout<<"hello! "; } return 0; } DWORD WINAPI FunTwo(LPVOID param){ while(true) { Sleep(1000); cout<<"world! "; } return 0; } int main(int argc, char* argv[]) { int input=0; HANDLE hand1=CreateThread (NULL, 0, FunOne, (void*)&input, CREATE_SUSPENDED,

实验一-信息熵与图像熵计算-正确

实验一信息熵与图像熵计算(2 学时) 一、实验目的 1.复习MATLAB的基本命令,熟悉MATLAB下的基本函数; 2.复习信息熵基本定义,能够自学图像熵定义和基本概念。 二、实验内容 1.能够写出MATLAB源代码,求信源的信息熵; 2.根据图像熵基本知识,综合设计出MATLAB程序,求出给定图像的图像熵。 三、实验仪器、设备 1.计算机-系统最低配置256M内存、P4 CPU; 2.MATLAB编程软件。 四实验流程图 五实验数据及结果分析 四、实验原理 1.MATLAB中数据类型、矩阵运算、图像文件输入与输出知识复习。 2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。所发出的消息不

同,它们所含有的信息量也就不同。任何一个消息的自信息量都代表不了信源所包含的平均自信息量。不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量: 1( ) 1 ( ) [log ] ( ) log ( ) i n i i p a i H E p a p a X 信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。它是从平均意义上来表征信源的总体特性的。对于某特定的信源,其信息熵只有一个。不同的信源因统计特性不同,其熵也不同。 3.学习图像熵基本概念,能够求出图像一维熵和二维熵。 图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为: 2550 log i ii p p H 图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。选择图像的邻域灰度均值作为灰度2

离散信源题与答案

离散信源题与答案 Last revision date: 13 December 2020.

3.1 设有一离散无记忆信源,其概率空间为 该信源发出的信息序列为(202 120 130 213 001 203 210 110 321 010 021 032 011 223 210)。求: (1) 此消息的自信息量是多少? (2) 此消息中平均每符号携带的信息量是多少? 解: (1) 此消息总共有14个0、13个1、12个2、6个3,因此消息发出的概率是: 此消息的信息量是:bit p I 811.87log =-= (2) 此消息中平均每符号携带的信息量是:bit n I 951.145/811.87/== 3.2 某一无记忆信源的符号集为{0, 1},已知信源的概率空间为 (1) 求信息符号的平均熵; (2) 由100个符号构成的序列,求某一特定序列(例如有m 个“0”和(100 - m )个“1”)的自信息量的表达式; (3) 计算(2)中序列的熵。 解: (1) (2) (3) 3.5 某信源的消息符号集的概率分布和二进制代码如题表3.2所列。 (1) (2) 求每个消息符号所需要的平均二进制码的个数或平均代码长度。进而用这一结果求码序列中的一个二进制码的熵; (3) 当消息是由符号序列组成时,各符号之间若相互独立,求其对应的二进制码序列中出现0和1的无条件概率0p 和1p ,求相邻码间的条件概率1/0p 、0/1p 、1/1p 、0/0p 。 解: (1) (2) (3) 设消息序列长为N ,则0u 、1u 、2u 、3u 的个数分别为8/ ,8/ ,4/ ,2/N N N N 个。 则0的个数为 8 708181412N N N N N =?+?+?+? 而1的个数为8738281402N N N N N =?+?+?+?

并行计算第一次实验报告

并行计算上机实验报告题目:多线程计算Pi值 学生姓名 学院名称计算机学院 专业计算机科学与技术时间

一. 实验目的 1、掌握集群任务提交方式; 2、掌握多线程编程。 二.实验内容 1、通过下图中的近似公式,使用多线程编程实现pi的计算; 2、通过控制变量N的数值以及线程的数量,观察程序的执行效率。 三.实现方法 1. 下载配置SSH客户端 2. 用多线程编写pi代码 3. 通过文件传输界面,将文件上传到集群上 4.将命令行目录切换至data,对.c文件进行编译 5.编写PBS脚本,提交作业 6.实验代码如下: #include

#include #include #include #include #include static double PI=0; static int N=0; static int numOfThread=0; static int length=0; static int timeUsed=0; static int numOfThreadArray[]={1,2,4,6,8,10,12,14,16,20,24,30}; static int threadArraySize=12; static int nTime=4; static int repeatTime=30; static double totalTime=0; struct timeval tvpre, tvafter; pthread_mutex_t mut; clockid_t startTime,endTime;

实验1_信息论相关实验实验报告

信息论与编码实验一实验报告 学生姓名周群创 指导教师张祖平 学号0909110814 专业班级电子信息1101

实验一关于信源熵的实验 一、实验目的 1. 掌握离散信源熵的原理和计算方法。 2. 熟悉matlab 软件的基本操作,练习使用matlab 求解信源的信息熵。 3. 自学图像熵的相关概念,并应用所学知识,使用matlab 或其他开发工具求解图像熵。 4. 掌握Excel 的绘图功能,使用Excel 绘制散点图、直方图。 二、实验原理 1. 离散信源相关的基本概念、原理和计算公式 产生离散信息的信源称为离散信源。离散信源只能产生有限种符号。 随机事件的自信息量I(x i)为其对应的随机变量x i 出现概率对数的负值。即: I(x i)= -log2 p(x i) 随机事件X 的平均不确定度(信源熵)H(X)为离散随机变量x i 出现概 率的数学期望,即:

H(X )=-∑p(x )I (x ) =-∑p(x ) log p(x ) 2. 二元信源的信息熵 设信源符号集X={0,1},每个符号发生的概率分别为p(0)=p,p(1)=q, p+ q=1,即信源的概率空间为 则该二元信源的信源熵为: H(X) = - p log p –q log q = - p log p – (1- p) log (1- p) 即:H (p) = - p log p – (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. 图像熵的相关知识 图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。图像的

离散信源题与答案

? ?? ???=====??????8/14/1324/18/310)(4321x x x x X P X 该信源发出的信息序列为(202 120 130 213 001 203 210 110 321 010 021 032 011 223 210)。 求: (1) 此消息的自信息量是多少 (2) 此消息中平均每符号携带的信息量是多少 解: (1) 此消息总共有14个0、13个1、12个2、6个3,因此消息发出的概率是: 6 2514814183?? ? ?????? ?????? ??=p 此消息的信息量是:bit p I 811.87log =-= (2) 此消息中平均每符号携带的信息量是:bit n I 951.145/811.87/== 某一无记忆信源的符号集为{0, 1},已知信源的概率空间为 ???? ??=??????4/34/110 )(X P X (1) 求信息符号的平均熵; (2) 由100个符号构成的序列,求某一特定序列(例如有m 个“0”和(100 - m )个“1”)的自信息量的表达式; (3) 计算(2)中序列的熵。 解: (1) bit x p x p X H i i i 811.043log 4341log 41 )(log )()(=??? ??+-=-=∑ (2) bit m x p x I x p m i i m m m i 585.15.414 3 log )(log )(4 34341)(100 100100 100100+=-=-==? ? ? ?????? ??=--- (3) bit X H X H 1.81811.0100)(100)(100=?== 某信源的消息符号集的概率分布和二进制代码如题表所列。 题表

2015秋.信息论.第2章离散信源与信息熵

第2章离散信源与信息熵 信号 信号+干扰 消息 干扰 消息 信源 编码器 信道 译码器 信宿 噪声源 通信系统模型 信息

2.1 信源的分类和描述 信源是信息的发源地,可以是人、生物、机器或其他事物。信源的输出是包含信息的消息。消息的形式可以是离散的或连续的。 信源输出为连续信号形式(如语音),可用连续随机变量描述。 连续信源←→模拟通信系统 信源输出是离散的消息符号(如书信),可用离散随机变量描述。 离散信源←→数字通信系统

离散信源…X i…X j… 离散无记忆信源:输出符号X i X j 之间相互无影响; 离散有记忆信源:输出符号X i X j 之间彼此依存。 3 离散信源 无记忆 有记忆发出单个符号发出符号序列马尔可夫信源 非马尔可夫信源

y j 将一粒棋子随意地放 在棋盘中的某列; 棋子放置的位置是一 个随机事件; 可看做一个发出单个 符号的离散信源。 x i

1212,,...,(),(),...,()m m x x x X P p x p x p x ????=???????? 就数学意义来讲,信源就是一个概率场,可用概率空间来描述信源。由离散随机变量X 表示棋子位置: 10()1,()1m i i i p x p x =≤≤=∑i x 其中,代表随机事件的某一结果。

2.2离散信源的信息熵信息的可度量性是信息论建立的基础; 香农的信息论用事件发生概率的对数来描述事件的不确定性,得到消息的信息量,建立熵的概念。 2.2.1自信息量 –定义2.1 任意随机事件x i 的自信息量定义为: i i i 1(x )log log (x )(x ) I P P ==-

并行计算__中国科学技术大学(1)--测验习题1

并行分布式试卷1 姓名____________________ 学号____________________ 分数_____________ 1.填空(每空1分,共30分) 1.在并行机系统中,常用的静态互联网络有__ ___________,__ _____________,_ _____________________,______________________,___________________等。2.在并行机系统中,常用的动态互联网络有___________________________________, _____________________________________和______________________________。3.近代并行计算机体系结构模型包括_______ _________,___________________,_ ______________________,____________ ______,_____________________等。4.常用的并行存储访问模型(又叫并行存储结构)包括_______________________, ________________________________,_____________________________等。 5.常用的并行程序设计模型有____________ _______,__ _ _______________,___ _________________________等。 6.大型稀疏线性方程常用迭代解法有____________________,_ _________________, _________________________,__________________________等。 7.常用的并行计算(或算法)模型有___________________,___ ________________ _,________________________,______________________等。 8.我国自行研制的并行计算机三大系列是___________________________,________ _____________________,_____________________________。 2.简要回答(每题5分,共20分) 1.试述并行算法基本的设计技术。 2.何谓X-Y 选路算法何E-cube 选路算法(可以例明之)?3.何谓Amdahle 和Gustfson 加速定律及其推导过程? 4.何谓等效率、等速度和平均延迟可扩放性度量标准?并推导他们之间的等效性。 三.综合题(每题10分,共50分) 1.假定44?A 和44?B 都已加载到44?处理器阵列上,试图示Cannon 矩阵乘法的具体 过程。 2.已知??????=4331A ,?? ? ???--=8765B ,试用DNS 方法,逐步求出矩阵乘积

关于信源熵的实验报告讲解

实验报告 实验名称关于信源熵的实验课程名称信息论与编码 姓名xxx 成绩90 班级电子信息 1102学号0909112204 日期2013.11.22地点综合实验楼

实验一关于信源熵的实验 一、实验目的 1. 掌握离散信源熵的原理和计算方法。 2. 熟悉matlab 软件的基本操作,练习使用matlab 求解信源的信息熵。 3. 自学图像熵的相关概念,并应用所学知识,使用matlab 或其他开发工具 求解图像熵。 4. 掌握Excel的绘图功能,使用Excel绘制散点图、直方图。 二、实验原理 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) 输入一个离散信源,并检查该信源是否是完备集。

离散信源题与答案

设有一离散无记忆信源,其概率空间为 ??? ? ??=====??????8/14/1324/18/310)(4321x x x x X P X 该信源发出的信息序列为(202 120 130 213 001 203 210 110 321 010 021 032 011 223 210)。 求: (1) 此消息的自信息量是多少? (2) 此消息中平均每符号携带的信息量是多少? 解: (1) 此消息总共有14个0、13个1、12个2、6个3,因此消息发出的概率是: 6 2514814183?? ? ?????? ?????? ??=p 此消息的信息量是:bit p I 811.87log =-= (2) 此消息中平均每符号携带的信息量是:bit n I 951.145/811.87/== 某一无记忆信源的符号集为{0, 1},已知信源的概率空间为 ???? ??=??????4/34/110 )(X P X (1) 求信息符号的平均熵; (2) 由100个符号构成的序列,求某一特定序列(例如有m 个“0”和(100 - m )个“1”)的自信息量的表达式; (3) 计算(2)中序列的熵。 解: (1) bit x p x p X H i i i 811.043log 4341log 41 )(log )()(=??? ??+-=-=∑ (2) bit m x p x I x p m i i m m m i 585.15.4143 log )(log )(4 34341)(100 100100 100100+=-=-==? ? ? ?????? ??=--- (3) bit X H X H 1.81811.0100)(100)(100=?== 某信源的消息符号集的概率分布和二进制代码如题表所列。 题表

并行计算-实验二-矩阵乘法的OpenMP实现及性能分析

深圳大学 实验报告 课程名称:并行计算 实验名称:矩阵乘法的OpenMP实现及性能分析姓名: 学号: 班级: 实验日期:2011年10月21日、11月4日

一. 实验目的 1) 用OpenMP 实现最基本的数值算法“矩阵乘法” 2) 掌握for 编译制导语句 3) 对并行程序进行简单的性能 二. 实验环境 1) 硬件环境:32核CPU 、32G 存计算机; 2) 软件环境:Linux 、Win2003、GCC 、MPICH 、VS2008; 4) Windows 登录方式:通过远程桌面连接192.168.150.197,用户名和初始密码都是自己的学号。 三. 实验容 1. 用OpenMP 编写两个n 阶的方阵a 和b 的相乘程序,结果存放在方阵c 中,其中乘法用for 编译制导语句实现并行化操作,并调节for 编译制导中schedule 的参数,使得执行时间最短,写出代码。 方阵a 和b 的初始值如下: ????????? ? ??????????-++++=12,...,2,1,..2,...,5,4,31,...,4,3,2,...,3,2,1n n n n n n n a ???????? ? ???????????= 1,...,1,1,1..1,...,1,1,11,...,1,1,11,..., 1,1,1b 输入: 方阵的阶n 、并行域的线程数 输出: c 中所有元素之和、程序的执行时间 提示: a,b,c 的元素定义为int 型,c 中所有元素之各定义为long long 型。 Windows 计时: 用中的clock_t clock( void )函数得到当前程序执行的时间 Linux 计时: #include

相关文档
相关文档 最新文档