文档库 最新最全的文档下载
当前位置:文档库 › 实验十五 汉明编码和译码实验报告

实验十五 汉明编码和译码实验报告

实验十五  汉明编码和译码实验报告
实验十五  汉明编码和译码实验报告

实验十五汉明编码和译码实验

一、实验前的准备

(1)预习本实验的相关内容。

(2)熟悉实验指导书附录B和附录C中实验箱面板分布及测试孔位置

相关模块的跳线状态。

(3)实验前重点熟悉的内容:汉明码的编码规则、汉明码的纠错能力。

(4)思考题。

1)什么是汉明码?它能纠几位错码?它有什么特点?

2)本实验中汉明编码器的输入数据速率为32kbps,输出数据速

率为多少?为汉明编码器的输入信号选择m序列信号时,跳

线开关SWCO1、KCO1如何汉明编码器的输入信号选择来自

ADPCM模块的ADPCM信号时,跳线开关如何设置?

二、实验目的

(1)掌握汉明码编译码原理。

(2)掌握汉明码纠错检错原理。

(3)通过纠错编解码实验,加深对纠错编解码理论的理解。

三、实验仪器

(1)ZH5001A通信原理综合实验系统

(2)20MHz双踪示波器

四、基本原理

差错控制编码的基本原理是:由发送端的信道编码器在信息码元序列中增加一些监督码元。这冗余的码元与信息之间以某种确定的规则建立校验关系,使接收端可以利用这种关系由信道译码器来发现或纠正可能存在的错码。不同的编码方法有不同的检错或纠错能力。为了纠正位错码,在分组码中最少要加入多少监督位才可行呢?编码效率能否提高呢?从这种思想出发进行研究,便导致了汉明码的诞生。

汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。下面介绍汉明码的编码原理。

一般来说,若码长为n ,信息位数为k ,记作(,)n k 码,则监督位数r n k =-,如果希望用r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求

2121r n r k r -≥≥++或

通信原理综合实验系统中的纠错码系统采用(7,4)汉明码。用650a a a … 表示这7个码元,用123S S S 、、表小3个监督关系式中的校正子,则123S S S 的值与码元间构成偶数监督关系:

16542

2443136530

S a a a a S a a a a S a a a a =⊕⊕⊕=⊕⊕⊕=⊕⊕⊕

在发送端编码时,信息位654a a a 、、和3a 的值决定于输入信号,因此它们是随机的。监督位21a a 、和0a 应根据信息位的取值按监督关系来确定,即监督位应使以上=式中123S S S 、、的值为零(表示变成的码组中应无错码),即

654254316530000a a a a a a a a a a a a ⊕⊕⊕=??⊕⊕⊕=??⊕⊕⊕=?

上式经移项运算,解出监督位

265415430653a a a a a a a a a a a a =⊕⊕??=⊕⊕??=⊕⊕?

给定信息位后,可直接按上式算出监督位,其结果如下表

接收端收到每个码组后,先按式(12-2)~式(12-4)计算出

123S S S 、、,再按上表判断错码情况。例如,若接收码组为0000011,按式(12-2)~式(12-4)计算可得1231S S S =0、=1、。由于123S S S 等于011,故可知在3a 位有一错码。按上述方法构造的码称为汉明码。(7,

4)汉明码的最小码距d=3,因此,这种码能纠正一个错码或检测两个错码。

汉明码有以下特点:

码长 21m n =-

最小码距d=3 信息码位

21n k m =-- 纠错能力t=1 监督码位 r n k m =-=

这里,m 为2≥ 的正整数,给定m 后,即可构造出具体的汉明码(n,k )。

汉明码的编码器和译码器电路如图所示。

汉明编码模块实验电路工作原理描述如下。

1.输入数据

汉明编码输入数据可以来自ADPCM1模块的ADPCM 码字,或来自同步数据端口数据、异步端口数据、CVSD 编码数据、m 序列。选择ADPCM 码字由工作方式选择开关SWCO1中的ADPCM 状态决定,当处于ADPCM 状态时(插入跳线器),汉明编码器对ADPCM 信号编码否则处于非ADPCM 状态时(拔除跳线器),输入编码数据来自开关KCO1所设置的位置,分别为同步数据端口数据、异步端口数据、CVSD 编码、m 序列。

2.m序列发生器

m序列用于测试汉明编码规则,输出数据信号与开关SWCO1位置如下表。

3.编码使能开关

此开关应与接收端汉明译码器使能开关同步使用,该开关处于使能状态(H-EN短路器插入),汉明码编码器工作;否则汉明码编码器不工作。需要注意:汉明码编码器不工作时,ADPCM和CVSD话音数据无法通过调制解调信道通话,这是因为编码速率与信道速率不匹配。

4.错码产生

错码产生专门设计用于测量汉明译码器的纠错和检错性能。输出错码与开关SWCO1位置如下表所示。

错码可以用示波器从错码指示端口TPC03监测。

汉明编码模块各测试点定义如下。

(1)TPCO1:输入数据。

(2)TPC02:输入时钟。

(3)TPC03:错码指示(无加错时,该点为低电平)。(4)TPC04:编码模块输出时钟(56kHz/BPSK/DBPSK)。(5)TPC05:编码模块输出数据(56kbtps/BPSK/DBPSK)。汉明编码模块电路功能组成框图见图12-2。

汉明译码模块实验电路工作原理描述如下。

1.输入信号选择开关

开关KWO1、KW02用于选择输入信号和时钟是来自解调器信道或直接来自汉明编码模块。当KWO1、KW02设置在1-2位置(CH:左端),则输入信号来自信道开关KWO1、KW02设置在2_3位置(LOOP:右端)则输入信号来自汉明编码模块。

2.汉明译码器

主要由串/并变换器、校正子生成器、3/8译码器和纠错电路构成。该电路专门由一个CPLD(EPM7128)实现。

3.汉明译码使能开关

SW03中H-EN与发端编码使能开关同步使用。

汉明译码模块各测试点定义如下。

TPWO1;输入时钟(56kHz)。

TPW02:输入数据(56kbps)。

TPW03:检测错码指示。

TPW04:输出时钟。

TPW05:CVSD数据输出。

TPW06:同步数据输出。

TPW07:m序列输出。

TPW08:异步数据输出。

汉明译码模块电路功能组成框图见图12-3。

五、实验内容

(一)准备工作

(1)首先通过菜单将调制方式设置为BPSK或DBPSK方式;将汉明编码模块内工作方式选择开关SWCO1中:编码使能开关插入(HEN),ADPCM 数据断开(ADPCM);加错开关EMODO、EMOD1均拔出接入;将输入数据选择开关KCO1设置在m序列(DTM)位置,设置m序列方式为00(MSEL2和MSEL1拔下),此时m序列输出为1/0码。

(2)将汉明译码模块内输入信号和时钟选择开关KWO1、KW02设置在LOOP位置(右端),输入信号直接来自汉明编码模块(不通过调制、信道、解调);将译码器使能开关KW03设置在工作位置ON(左端)。

(二)编码规则验证

(1)用示波器同时观测编码输入信号TPCO1波形和编码输出波形

TPC05,观测时以TPCO1同步,观测是否符合汉明编码规则(参见表12-1)。注意此时输入、输出数据速率不同,输入数据速率为32kbps,输出数据

速率为56kbps。

上方为TPC01波形,下方为TPC05波形:

可见上方数据为:…1100……

TPC05编码波形数据为:……1100010……

对比上面编码表,可以看出,是正确的。

(2)设置m序列方式为10(MSEL2插入、MSEL1拔下),此时m序列输出为1l/00码(参见表12-1)。用示波器同时观测编码输入信号TPCO1波形和编码输出波形TPC05,观测时以TPCO1同步,观测是否符合汉明编码规则。

上方为TPC01波形,下方为TPC05波形:

可见上方数据为:…1100……

TPC05编码波形数据为:……1100010……

对比上面编码表,可以看出,是正确的。

(三)译码数据输出量

(1)设置m序列方式为11(MSEL2,MSEL1均插入用示波器同时观测汉明编码模块的编码输入信号TPCO1波形和汉明译码模块译码输出m序列波形TPW07,观测时以TPCO1同步。测量译码输出数据与发端信号是否保持一致。注意:输出波形与输入波形之间有时延。记录输出波形和输入波形。

上方为TPC01波形,下方为TPW07波形:

可见上方数据为:……1101011110001001101……

TPW07解码输出波形数据为:……1111000100110101111……

可以看出,两者之间存在6个码元的延迟。

(四)译码同步过程观测

将汉明编码模块工作方式选择开关SWCO1的编码使能开关插入

(H_EN);ADPCM数据有效(ADPCM)将汉明译码模块的输入信号和时钟选择开关KWO1、KW02设置在23位置(右端),输入信号直接来自汉明编码模块。

(1)用示波器检测汉明译码模块内错码检测指示输出波形TPW03。将

汉明编码模块内工作方式选择开关SWCO1的编码使能开关断开(H_EN,使汉明译码模块失步,观测TPW03变化;将编码使能开关插入(H_EN),观测汉明译码的同步过程,记录测量结果。

(五)发端加错信号和汉明译码检错能力观测

用示波器同时测量汉明编码模块内加错指示TPC03和汉明译码模块内错码检测指示输出波形TPW03的波形,观测时以TPC03同步。

(1)将汉明编码模块工作方式选择开关SWCO1的加错开关E_MOD0、E_MOD1均拔出,此时无错码,记录结果。

JPEG编码器实验报告代码分析

实验报告 1.实验目的 通过阅读JPEG编码器代码,了解编码原理、编码过程和代码实现。 2.实验要求 (1)详细阅读JPEG编码器代码,结合编码原理,了解整个代码实现的过程(2)输入bmp文件,在VC6.0下跑通代码,查看编码器的压缩倍数 (3)对有些模块进行单步跟踪调试,详细了解其过程 3.实验原理 JPEG编码的基本过程如下 (1)像素阵列分块(分为8*8小块) (2)进行DCT离散余弦变换 (3)进行Z字形扫描,将二维阵列变为一维数列 (4)进行量化 (5)熵编码(Huffman编码) (6)封装为JPG文件 本次试验所用bmp转jpg编码器的编码步骤 (1)读取bmp文件信息,创建并打开jpg文件 (2)8*8分块及色彩空间变换(RGB转YCbCr) (3)快速离散余弦变换FDCT (4)量化 (5)Z字形扫描 (6)使用差分脉冲编码调制对直流系数DC进行编码 (7)使用游程长度编码对交流系数AC编码 (8)霍夫曼熵编码 4.代码分析 整个代码过程可分为三个部分 (1)文件操作 (2)对编码所用信息表进行初始化(int_all) (3)主编码器进行编码(main_encoder) 主函数分析 int main(int argc, char *argv[]) { char BMP_filename[64];

char JPG_filename[64]; WORD width_original,height_original; //the original image dimensions, // before we made them divisible by 8 BYTE len_filename; bitstring fillbits; //filling bitstring for the bit alignment of the EOI(end of image) marker if (argc>1) { strcpy(BMP_filename,argv[1]); if (argc>2) strcpy(JPG_filename,argv[2]); else { // replace ".bmp" with ".jpg" strcpy(JPG_filename, BMP_filename); len_filename=strlen(BMP_filename); strcpy(JPG_filename+(len_filename-3),"jpg");//从后三位开始拷贝jpg. } } else exitmessage("Syntax: enc fis.bmp [fis.jpg]"); //BMP_filename=""; load_bitmap(BMP_filename, &width_original, &height_original);//加载bmp文件信息 fp_jpeg_stream = fopen(JPG_filename,"wb");//创建jpg文件流 init_all();//初始化函数,初始化量化、霍夫曼及亮度色差转换表等,为编码做准备 SOF0info.width = width_original; SOF0info.height = height_original;//写入图像的宽和高 writeword(0xFFD8); // SOI,写入图像开始标志 write_A PP0info(); // write_comment("Cris made this JPEG with his own encoder"); write_DQTinfo();//写入量化表 write_SOF0info();//写入帧开始 write_DHTinfo();//写入霍夫曼表 write_SOSinfo();//写入扫描开始信息 // init global variables bytenew = 0; // current byte bytepos = 7; // bit position in this byte main_encoder();//主编码函数 // Do the bit alignment of the EOI marker if (bytepos >= 0) {

数据结构 哈夫曼编码实验报告

实验报告 实验课名称:数据结构实验 实验名称:文件压缩问题 班级:20132012 学号:姓名:时间:2015-6-9 一、问题描述 哈夫曼编码是一种常用的数据压缩技术,对数据文件进行哈夫曼编码可大大缩短文件的传输长度,提高信道利用率及传输效率。要求采用哈夫曼编码原理,统计文本文件中字符出现的词频,以词频作为权值,对文件进行哈夫曼编码以达到压缩文件的目的,再用哈夫曼编码进行译码解压缩。 二、数据结构设计 首先定义一个结构体: struct head { unsigned char b; //记录字符 long count; //权重 int parent,lch,rch; //定义双亲,左孩子,右孩子 char bits[256]; //存放哈夫曼编码的数组 } header[512],tmp; //头部一要定设置至少512个,因为结 点最多可达256,所有结点数最多可 达511 三、算法设计 输入要压缩的文件读文件并计算字符频率根据字符的频率,利用Huffman 编码思想创建Huffman树由创建的Huffman树来决定字符对应的编码,进行文件的压缩解码压缩即根据Huffman树进行译码 设计流程图如图1.1所示。

图1.1 设计流程图 (1)压缩文件 输入一个待压缩的文本文件名称(可带路径)如:D:\lu\lu.txt 统计文本文件中各字符的个数作为权值,生成哈夫曼树;将文本文件利用哈夫曼树进行编码,生成压缩文件。压缩文件名称=文本文件名.COD 如:D:\lu\lu.COD 压缩文件内容=哈夫曼树的核心内容+编码序列 for(int i=0;i<256;i++) { header[i].count=0; //初始化权重 header[i].b=(unsigned char)i; //初始化字符 } ifstream infile(infilename,ios::in|ios::binary); while(infile.peek()!=EOF) { infile.read((char *)&temp,sizeof(unsigned char)); //读入一个字符 header[temp].count++; //统计对应结点字符权重 flength++; //统计文件长度 } infile.close(); //关闭文件 for(i=0;i<256-1;i++) //对结点进行冒泡排序,权重大的放在上面,编码时效率高 for(int j=0;j<256-1-i;j++) if(header[j].count

短时记忆视觉编码实验报告

姓名关瀚文学号222012306022011专业应用心理学年级2012级课程实验心理学实验时间2013.11.6同组人姓名洪万里单宏宇成绩 短时记忆视觉编码实验 关瀚文 (西南大学心理学部,重庆,400715) 摘要本实验以西南大学心理学部2012级应用班的44名同学作为被试,每名被试运用PsyKey 心理教学系统 3.1,“短时记忆视觉编码”实验程序,进行以减数法探究短时记忆的视觉编码试验108次,本实验旨在重复posner等人的字母实验,验证短时记忆的视觉编码,并学习减法反应时方法。最后的结果显示,短时记忆的视觉编码确实存在,posner关于短时记忆的视觉编码理论得到验证。 关键词短时记忆减法反应时视觉编码 1引言减数法是一种用减法方法将反应时分解成各个成分,然后来分析信息加工过程的方法。减数法的反应时实验逻辑是如果一种作业包含另一种作业所没有的某个特定的心理过程,且除此过程之外二者在其他方面均相同,那么这两种反应时的差即为此心理过程所需的时间。 储存在短时记忆中的信息,传统的观点认为主要是语音听觉编码。这是根据短时记忆中产生的错误与正确信息之间存在着语音听觉上的联系而推测出来的。康拉德在记忆广度实验中观察到,回忆错误与正确反应之间有着语音上的联系。但是这个结论因为以拼音文字的英文字母做实验材料,因而其普遍性受到了质疑。但70年代波斯纳等人利用减法反应时基本范式,在其实验中清楚地表明,某些短时记忆信息可以有视觉编码和听觉编码两个连续的阶段,这是认知心理学史上的一个重大发现。莫雷的实验也表明,汉字的短时记忆以形状编码为主。对于绘画、脸和身体动作以及视觉观察事件所属范畴的短时记忆,倾向于用视觉编码的短时记忆,倾向于视觉编码和语义编码。现在一般认为,短时记忆信息存在感觉代码与语义代码,其中前者包括听觉代码与视觉编码;对于感觉编码的过程而言,视觉编码率先出现并保持一个短暂的瞬间,然后出现听觉编码。

游程编码实验报告

实验二游程编码 一、实验目的 1、掌握游程编码原理; 2、理解数据编码压缩和译码输出编码的实现。 二、实验要求 实现游程编码和译码的生成算法。 三、实验内容 输入一幅二值图像,先统计要压缩编码的文件中的字符字母出现的次数,按字符字母和空格出现的概率对其进行哈夫曼编码,然后读入要编码的文件,编码后存入另一个文件;接着再调出编码后的文件,并对其进行译码输出,最后存入另一个文件中。 四、实验原理 1、xx 树的定义: 假设有n 个权值,试构造一颗有n 个叶子节点的二叉树,每个叶子带权值为wi ,其中树带权路径最小的二叉树成为哈夫曼树或者最优二叉树; 2、xx 树的构造: weight为输入的频率数组,把其中的值赋给依次建立的HT Node对象中的data属性,即每一个HT Node对应一个输入的频率。然后根据data属性按从小到大顺序排序,每次从data取出两个最小和此次小的HT Node,将他们的data 相加,构造出新的HTNode作为他们的父节点,指针pare nt,leftchild,rightchild 赋相应值。在把这个新的节点插入最小堆。 按此步骤可以构造出一棵XX树。 通过已经构造出的哈夫曼树,自底向上,由频率节点开始向上寻找parent, 直到parent 为树的顶点为止。这样,根据每次向上搜索后,原节点为父节点的

左孩子还是右孩子,来记录 1 或0,这样,每个频率都会有一个01 编码与之唯一对应,并且任何编码没有前部分是同其他完整编码一样的。 五、实验程序 #include #include #define NUM 1000 char dat,flag,str[NUM],b[NUM]; printf("( 请输入待编码的字符串)\n\n"); printf(" 原字符串为: "); gets(str);// 输入待编码的字符串 flag=str[0];// 记下第一个字符值作为flag 游程编码的起始值 /************************ 编码部分**********************************************/ printf("\n 游程编码为: "); for(i=0;i

霍夫曼树实验报告

实验二二叉树的遍历及霍夫曼编码 班级:计科1101班 学号:0909101605 姓名:杜茂鹏 2013年5月22日

一、实验目的 掌握二叉树的建立及遍历操作,霍夫曼编码基本操作及存储结构表示 二、实验内容 1. 系统要求包含以下功能 1)初始化:从终端读入字符集大小n,以及n个字符和n个权值(或者读入字符集和频度数据文件),建立哈夫曼树,并将哈夫曼树存入到文件HfmTree 中。 2)编码:利用已建好的哈夫曼树(如果不在内存中,则从文件中读入),从文件ToBeTran中读入原文,对原文进行编码,将编码后的结果存入文件CodeFile 中。 3)译码:利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 4)打印:打印输出哈夫曼树,显示ToBeTran, TextFile和CodeFile文件的内容。 三、实验要求 1.在上机前写出全部源程序; 2.能在机器上正确运行程序; 3.用户界面友好。 四、概要设计 1)首先动态分配数组存储霍夫曼树及存储霍夫曼编码表,然后从终端或文件读入霍夫曼树的字符变量及其频度,初始化建立霍夫曼树并将其写入文件HfmTree.txt中。 2)从指定的文件succe.txt中读入原文,利用已经编好的霍夫曼树对其编码,将编码结果写入文件Coding.txt保存。 3)利用已建好的哈夫曼树将文件Coding.txt中的代码进行译码,结果存入文件decoding.txt中。

五、测试数据: 2.原文内容“THIS IS MY PROGRAM” 六、详细设计 实验内容(原理、操作步骤、程序代码) //建立霍夫曼树,对原文进行编码、译码 #include #include #include #include typedef struct tree { char ch; int weight;//权值 int parent,lchild,rchild; }HTNode,*HuffmanTree;//动态分配数组存储霍夫曼树typedef char **HuffmanCode;//动态分配数组存储霍夫曼编码表void Select(HuffmanTree &HT,int* s1,int* s2,int n) { int j; int min1=10000; for(j=1;j<=n;j++) { if(HT[j].parent==0&&min1>HT[j].weight)

短时记忆的信息编码 实验报告

心理实验报告 1.题目 减法反应时-短时记忆的视觉编码 2.引言 R.Conrad(1964)的一项研究给被试视觉呈现字母,随后报告字母的实验结果表明,对于视觉呈现的字母,我们使用听觉编码而非视觉。而Posner等人(1969)的实验结果显示,被试对于不同字母对(Aa和AA)判断是否同一字母的反应时不同,这否定了对于视觉呈现的字母,我们只用听觉编码的观点。对于视觉编码和听觉编码的先后问题,现在普遍的观点是视觉编码在先。 根据R.Conrad的实验,研究者们还在探讨这样一个逻辑,如果一个作业包含另一个作业所没有的某个心理过程,而其它方面相同,则两个作业的反应时之差,即是这个心理过程所用的时间,也是这个心理过程存在的证据。 本实验研究作为一个验证性研究,为存在视觉编码提供证据之外,还将探讨在不同时间间隔下反应时差的差异的内部机理。 3.方法 3.1被试:心理系大三学生 3.2仪器材料:字母对AA、BB、Aa、Bb、AB、BA、Ab、Ba 3.3实验程序: 3.3.1:实验前被试阅读指导语,清楚不同判断的按键方式,尽量正确的判断,并尽快按键反应 3.3.2:第一次实验时,每对字母对随机出现6次,前12对时间间隔是0s,中间12对间隔0.5s,最后12对间隔2s。36次完毕后,被试休息30s。继续第二次实验,但这次时间间隔按0.5s-2s-0s进行;同样休息30s进行第三次实验,这次间隔按照2s-0s-5s进行。被试看到呈现的字母后,尽快正确判断字母是否相同,并尽快按相应的键。 4.结果 表a 各水平下被试平均正确反应时(ms) 间隔(ms) 音同形 同 音同形 异 音异 形异 0 561.59 707.00 777.95 500 519.05 681.79 734.54 2000 489.62 639.46 725.00 表b 各水平下被试平均正确率(%) 间隔 (ms) 音同形 同 音同形 异 音异 形异 0 97.86 91.88 90.38 500 98.08 92.95 89.53 2000 98.08 92.74 90.60 表a显示: 音同形同比音同形异、音异形异在各个间隔时间水平下的反应时均值都要小;(多因素方差分析) 每种音形水平在时间间隔上反应时存在显著差异(多因素方差分析) 表b显示: 音同形同比音同形异、音异形异在各个间隔水平下的正确率均值都要大。而同一音形水平下的各个时间间隔水平上正确率均值相差不大。

压缩技术实验编码

压缩技术实验编码 实验一统计编码 实验目的 1.熟悉统计编码的原理 2.掌握r元Huffman编码的方法; 3.了解Huffman编码效率及冗余度的计算; 二、实验原理 霍夫曼编码,又称最佳编码,根据字符出现概率来构造平均长度最短的变长编码。 Huffman编码步骤: (1)把信源符号x i(i=1,2,…按出现概率的值由大到小的顺序排列; (2)对两个概率最 小的符号分别分配以“ 0和“ 1,'然

后把这两个概率相加作为一个新的辅助符号的概率; (3)将这个新的辅助符号与其他符号一起重新按概率大小顺序排列; ⑷跳到第2步,直到出现概率相加为1为止; (5)用线将符号连接起来,从而得到一个码树,树的N个端点对应N个信源符号; (6)从最后一个概率为1的节点开始,沿着到达信源的每个符号,将一路遇到的二进制码“ 0或“ 1顺序排列起来,就是端点所对应的信源符号的码字。 以上是二元霍夫曼编码。如果是r元霍夫曼编码,则应该如何做呢? 在HUFFMAN 编码方案中,为出现概率较小的信源输出分配较长的码字,而对那些出现可能性较大的信源输出分配较短的码字。为此,首先将r 个最小可能的信源输出合并成为一个新的输出,该输出的概率就是上述的r 个输出的概率之和。重复进行该过程直到只剩下一个输出为止。信源符号的个数q 与r 必须满足如下的关系式: q = (r-1) n + r n 为整数如果不满足上述关系式,可通过添加概率为零的信源符号来满足。这样就生成了一个树,从该树的根节点出发并将0、1 分别分配给任何r 个来自于相同节点的 分支,生成编码。可以证明用这种方法产生的编码在前向树类

哈夫曼树的实验报告1

一、需求分析 1、本演示程序实现Haffman编/译码器的作用,目的是为信息收发站提供一个编/译系统, 从而使信息收发站利用Haffman编码进行通讯,力求达到提高信道利用率,缩短时间,降低成本等目标。系统要实现的两个基本功能就是:①对需要传送的数据预先编码; ②对从接收端接收的数据进行译码; 2、本演示程序需要在终端上读入n个字符(字符型)及其权值(整形),用于建立Huffman 树,存储在文件hfmanTree.txt中;如果用户觉得不够清晰还可以打印以凹入表形式显示的Huffman树; 3、本演示程序根据建好的Huffman树,对文件的文本进行编码,结果存入文件CodeFile 中;然后利用建好的Huffman树将文件CodeFile中的代码进行译码,结果存入文件TextFile中;最后在屏幕上显示代码(每行50个),同时显示对CodeFile中代码翻译后的结果; 4、本演示程序将综合使用C++和C语言; 5、测试数据: (1)教材例6-2中数据:8个字符,概率分别是0.05,0.29,0.07,0.08,0.14,0.23,0.03, 0.11,可将其的权值看为5,29,7,8,14,23,3,11 (2)用下表给出的字符集和频度的实际统计数据建立Haffman树,并实现以下报文的编码和 一、概要设计 1、设定哈夫曼树的抽象数据类型定义 ADT Huffmantree{ 数据对象:D={a i| a i∈Charset,i=1,2,3,……n,n≥0} 数据关系:R1={< a i-1, a i >| a i-1, a i∈D, i=2,3,……n} 基本操作: Initialization(&HT,&HC,w,n,ch) 操作结果:根据n个字符及其它们的权值w[i],建立Huffman树HT,用字符数组ch[i]作为中间存储变量,最后字符编码存到HC中; Encodeing(n) 操作结果:根据建好的Huffman树,对文件进行编码,编码结果存入到文件CodeFile 中 Decodeing(HT,n) 操作结果:根据已经编译好的包含n个字符的Huffman树HT,将文件的代码进行翻译,结果存入文件TextFile中 } ADT Huffmantree

短时记忆视觉编码实验报告

姓名关瀚文学号222012306022011 专业应用心理学年级 2012级课程实验心理学实验时间2013.11.6 同组人姓名洪万里单宏宇成绩 短时记忆视觉编码实验 关瀚文 (西南大学心理学部,重庆,400715) 摘要本实验以西南大学心理学部2012级应用班的44名同学作为被试,每名被试运用PsyKey 心理教学系统 3.1,“短时记忆视觉编码”实验程序,进行以减数法探究短时记忆的视觉编码试 验108次,本实验旨在重复posner等人的字母实验,验证短时记忆的视觉编码,并学习减法反 应时方法。最后的结果显示,短时记忆的视觉编码确实存在,posner关于短时记忆的视觉编码 理论得到验证。 关键词短时记忆减法反应时视觉编码 1引言减数法是一种用减法方法将反应时分解成各个成分,然后来分析信息加工过程的方法。减数法的反应时实验逻辑是如果一种作业包含另一种作业所没有的某个特定的心理过程,且除此过程之外二者在其他方面均相同,那么这两种反应时的差即为此心理过程所需的时间。 储存在短时记忆中的信息,传统的观点认为主要是语音听觉编码。这是根据短时记忆中产生的错误与正确信息之间存在着语音听觉上的联系而推测出来的。康拉德在记忆广度实验中观察到,回忆错误与正确反应之间有着语音上的联系。但是这个结论因为以拼音文字的英文字母做实验材料,因而其普遍性受到了质疑。但70年代波斯纳等人利用减法反应时基本范式,在其实验中清楚地表明,某些短时记忆信息可以有视觉编码和听觉编码两个连续的阶段,这是认知心理学史上的一个重大发现。莫雷的实验也表明,汉字的短时记忆以形状编码为主。对于绘画、脸和身体动作以及视觉观察事件所属范畴的短时记忆,倾向于用视觉编码的短时记忆,倾向于视觉编码和语义编码。现在一般认为,短时记忆信息存在感觉代码与语义代码,其中前者包括听觉代码与视觉编码;对于感觉编码的过程而言,视觉编码率先出现并保持一个短暂的瞬间,然后出现听觉编码。

游程编码实验报告材料

交通大学信息科学与工程学院综合性设计性实验报告 专业:通信工程专业11级 学号: 2 姓名:徐国健 实验所属课程:移动通信原理与应用 实验室(中心):信息技术软件实验室 指导教师:益才 2014年5月

一、题目 二值图像的游程编码及解码 二、仿真要求 对一幅图像进行编码压缩,然后解码恢复图像。 三、仿真方案详细设计 实验过程分为四步:分别是读入一副图象,将它转换成为二进制灰度图像,然后对其进行游程编码和压缩,最后恢复图象(只能恢复为二值图像)。 1、二值转换 所谓二值图像,就是指图像上的所有像素点的灰度值只用两种可能,不为“0”就为“1”,也就是整个图像呈现出明显的黑白效果。 2、游程编码原理 游程编码是一种无损压缩编码,对于二值图有效。游程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。据进行编码时,沿一定方向排列的具有相同灰度值的像素可看成是连续符号,用字串代替这些连续符号,可大幅度减少数据量。游程编码分为定长行程编码和不定长行程编码两种类型。游程编码是连续精确的编码,在传输过程中,如果其中一位符号发生错误,即可影响整个编码序列,使行程编码无法还原回原始数据。 3、游程编码算法 一般游程编码有两种算法,一种是使用1的起始位置和1的游程长度,另一种是只使用游程长度,如果第一个编码值为0,则表示游程长度编码是从0像素的长度开始。这次实验采

用的是前一种算法。两种方法各有优缺点:前一种存储比第二种困难,因此编程也比较复杂。而后一种需要知道第一个像素值,故压缩编码算法中需给出所读出的图的第一个像素值。 压缩流程图: 解压流程图:

PCM编码 实验报告

实验二十三 时分复用与解复用实验 实验项目一 256K 时分复用帧信号观测 (1)帧同步码观测:用示波器连接复用输出,观测帧头的巴克码。 (2)帧内PN 序列信号观测:用示波器接复用输出,利用储存功能观测3个周期 中的第一时隙的信号。 实验项目二 256K 时分复用及解复用 (1)帧内PCM 编码信号观测:将PCM 信号输入DIN2,观测PCM 数据。以帧同 思考题:PN15序列的数据是如何分配到复用信号中的? 分析分时复用的实质,可知,在模拟传送时,一位用户的数据根据复用划分的时隙以一帧为周期,逐次将8位数据插入每个帧相同的时隙处。对于此次实验中的PN15序列,检测到帧同步信号的帧头时,便插入第一帧数据,在第二次检测到帧头时插入第二帧数据,以此类推,将信号分配到复用信号中,以达到提高信道利用率的目的。 对比观测实验出现的码元,发现为01110010,根据所学知识可知,这串码即为帧头的观测码。

步为触发分别观测PCM编码数据和复用输出的数据。 (2)解复用帧同步信号观测:PCM对正弦波进行编译码。观测复用输出与FSOUT, 观测帧同步上跳沿与帧同步信号的时序关系。 思考题:PCM数据是如何分配到复用信号中去的? 时分多路复用以时间作为信号分割的参量,将各路输入变为变为并行数据,然后按照给端口数据所在的时隙进行帧的拼接,完成一个完整的数据帧。而在本实验中,PCM 的数据输入到DIN2,将其插入到复用信号的第2个时隙,与其它3个时隙拼接为一帧,从而实现了PCM信号分配到复用信号中。 上图分别为PCM编码输入和复用输出的波形。仔细观察可知,对比复用输入信号,复用输出有2帧的延时,且在复用输出的第0时隙为帧头的巴克码,第1时隙没有数据,第2时隙有了数据的存放,即PCM复用编码时被插在了一帧的第2时隙中,在解复用时先寻找巴克码,再按照每一帧的数据存放的相应的时隙进行解复用,之后拼接起来,便实现了PCM的数据恢复。

减法反应时-短时记忆的视觉编码实验报告

减法反应时-短时记忆的视觉编码 记忆的加工水平 减法反应时实验 1、目的:检验短时记忆是否存在视觉编码 2、材料:4对字母:AA Aa BB Bb,装有Psykey心理教学系统的大学版的计算机,一号反应 键盘 3、过程: 给被试并排呈现两个字母,或同时呈现,或有一定间隔,让被试判断这两个字母是否相同并按键反应,记录反应时。 本实验所用字母对是AA(6次)、BB(6次)、Aa(6次)、Bb(6次)、AB(3次)、BA(3次)、Ab(3次)、Ba(3次),共出现36次,有三种呈现间隔:0s(即同时呈现)、50ms和100ms,采用如下拉丁方设计,即:第一次36张随机呈现,前12张间隔0s,中间12张间隔50s,最后12张间隔100ms;休息30s后再做36张,间隔时间按50ms→100ms→0s的顺序;第三次的36张则采用100ms→0s→50ms的顺序。 4、设计: 自变量:字母对的类型(AA BB Aa Bb)呈现时间的长短(0s 50ms 100ms) 因变量:判断的正确率以及辨别所需的时间 5、结果: =====结果数据===== ------------------------------------------------------------ 间隔音同形同音同形异音异形异 ------------------------------------------------------------ 0ms 650(100.00%) 716(100.00%) 768( 91.67%) 50ms 489(100.00%) 621(100.00%) 760(100.00%) 100ms 476(100.00%) 708(100.00%) 696( 91.67%) ------------------------------------------------------------

《数字高程模型》实验讲义[1]

数字高程模型 实验讲义 南阳师范学院环旅学院 地理信息系统教研室编 2011年2月

前 言 Miller于1958年提出首次提出了数字高程模型(Digital Elevation Model,DEM)的概念。经过40多年的发展,DEM的诸多基础理论问题都得到了深入的研究,基于DEM的数字地形分析理论与方法体系正在形成,DEM在许多领域的工作中得到了成功应用。DEM已成为各类GIS数据库的核心数据之一。国家测绘部门将DEM作为国家空间数据基础设施(National Spatial data Infrastructure,NSDI)的重要建设项目之一。在理论研究方面,DEM的不确定性、DEM的尺度效应、DEM的地学分析、基于DEM的数据挖掘都取得了很大的突破。在应用方面,也从一般的地形因子提取、支持三维漫游等简单应用向更多样的形式、更广泛的领域发展。可以说,DEM所代表的已经不仅仅是一种记录海拔的空间数据,更代表着一种地学处理的方法。 适应于学科发展和实践需要,各高等院校的有关专业,特别是地理信息系统、空间信息与数字工程、测绘工程等专业都纷纷将数字高程模型作为本科和研究生课程。我学院办有地理信息系统和测绘工程等专业,数字高程模型一直是此二专业的重要课程。在多年教学经验的基础上,我们编写了本实验讲义,供地理信息系统专业、测绘工程专业的本科教学使用。本实验讲义中,以验证、探索理论知识和传授技能作为基础目标,另外还注重意识和能力的培养。当代教育理论认为,如果说知识和技能是人才素质的基础,意识则决定了运用知识和技能的动机,能力则是运用知识和技能的方法。当代地学人才不仅需要具有充足的专业知识和技能,而且应该具备一系列意识和能力。虽然,高校通常设置培养意识和能力的公共课程;但是,专业课教学也应该将其作为教学目标之一。这样以来,可以根据专业课程的特点有目的地培养特定的意识和能力。本课程所涉及的意识和能力主要包括科学精神、团队意识、创新能力和统合能力等。 本讲义共7个实验,需要16个实验课时。实验类型包括基础型、综合型和设计型。每个实验都有明确的实验目的,有实验原理的详细介绍,实验过程中的必要之处作了解释和提示。实验后安排了思考题,要求学生们通过在实验中的探索来回答这些问题,有助于学生更好地理解和掌握DEM的理论和方法。

信息论与编码实验报告.

本科生实验报告 实验课程信息论与编码 学院名称信息科学与技术学院 专业名称通信工程 学生姓名 学生学号 指导教师谢振东 实验地点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 引言 实验逻辑 此次实验是根据短时记忆是以听觉编码为主的原理,该原理可以得出如果字母发音不同,被试的反应时会存在差异的推论。那么该实验就是要通过同时控制字母形状和发音形成的三个实验水平a1、a2、a3(其中a1:字母形状发音都相同,a2:字母形状不同但发音相同,a3:字母形状发音都不同),实验旨在通过三个不同水平下的比较,探索视觉编码是否存在短时记忆中。 实验假设 我们假设视觉编码存在短时记忆中。若实验设计合理,实验进行正常。那么可以得到,短时记忆存在听觉编码。因此在字母形状不同发音相同、字母形状发音都不同的条件下。被试的反应时会存在差异。 实验预期 被试在不同刺激条件a1、a2、a3下(a1字母形状名称均相同、a2字母形状不同但名称相同、a3字母形状和名称都不同)的反应时存在差异。 2.方法 被试:五人一组,互为主被试,共85名被试。 实验材料:JGW—B型心理实验台的速示器单元,计时计数器单元,手键1个,练习卡片3张(DD、Dd、DG),实验卡片16张(见下表),注视点卡片1张。 实验设计:单因素重复测量设计

实验程序: 统计方法 单因素重复测量的方差分析 3 结果 不同条件下反应时的描述统计结果 在字母形状和发音都相同、字母形状不同但发音相同和字母形状和发音都不同三种条件下的反应时描述统计结果见表1。 表1 三种条件下的反应时的描述统计结果(N=3) 条件M(SD)min max 形状和发音都相 同(a1) 形状不同但发音 相同(a2)

形状和发音都不 同(a3) 不同条件下反应时的差异 通过单因素重复测量方差分析,得出的结果发现,不同条件下,被试反应时有统计学意义上的显着差异(F(2)=,P=0);再通过多重比较结果分析发现:a1≠a2,a1≠a3,a2≠a3,见表2. 表2 不同条件下反应时差异检验的结果 4 讨论 通过实验结果分析、实验假设得到了验证。在a2(字母形状不同但名称相同)与(a3字母形状发音都不同)的条件下,被试反应时差异显着。这个结果表明,在字母形状条件相同的情况下,字母发音的不同会影响到被试反应时的结果,即短时记忆存在记忆的声音编码,这一分析结果表明本实验的设计是比较合理。a1(字母形状发音都相同)与a2(字母形状不同但名称相同)的条件下被试反应时差异显着,这表明,在字母发音条件相同的情况下,字母形状的不同也会影响被试反应时的结果,即短时记忆存在记忆的视觉编码。 5 结论

游程编码实验报告

重庆交通大学信息科学与工程学院综合性设计性实验报告 专业:通信工程专业11级 学号:631106040222 姓名:徐国健 实验所属课程:移动通信原理与应用 实验室(中心):信息技术软件实验室 指导教师:李益才 2014年5月

一、题目 二值图像的游程编码及解码 二、仿真要求 对一幅图像进行编码压缩,然后解码恢复图像。 三、仿真方案详细设计 实验过程分为四步:分别是读入一副图象,将它转换成为二进制灰度图像,然后对其进行游程编码和压缩,最后恢复图象(只能恢复为二值图像)。 1、二值转换 所谓二值图像,就是指图像上的所有像素点的灰度值只用两种可能,不为“0”就为“1”,也就是整个图像呈现出明显的黑白效果。 2、游程编码原理 游程编码是一种无损压缩编码,对于二值图有效。游程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。据进行编码时,沿一定方向排列的具有相同灰度值的像素可看成是连续符号,用字串代替这些连续符号,可大幅度减少数据量。游程编码分为定长行程编码和不定长行程编码两种类型。游程编码是连续精确的编码,在传输过程中,如果其中一位符号发生错误,即可影响整个编码序列,使行程编码无法还原回原始数据。 3、游程编码算法 一般游程编码有两种算法,一种是使用1的起始位置和1的游程长度,另一种是只使用游程长度,如果第一个编码值为0,则表示游程长度编码是从0像素的长度开始。这次实验采

用的是前一种算法。两种方法各有优缺点:前一种存储比第二种困难,因此编程也比较复杂。而后一种需要知道第一个像素值,故压缩编码算法中需给出所读出的图的第一个像素值。 压缩流程图: 解压流程图:

香农编码实验报告

中南大学 《信息论与编码》实验报告 题目信源编码实验 指导教师 学院 专业班级 姓名 学号 日期

目录 一、香农编码 (3) 实验目的 (3) 实验要求 (3) 编码算法 (3) 调试过程 (3) 参考代码 (4) 调试验证 (7) 实验总结 (7) 二、哈夫曼编码 (8) 实验目的 (8) 实验原理 (8) 数据记录 (9) 实验心得 (10)

一、香农编码 1、实验目的 (1)进一步熟悉Shannon 编码算法; (2)掌握C 语言程序设计和调试过程中数值的进制转换、数值与字符串之间 的转换等技术。 2、实验要求 (1)输入:信源符号个数q 、信源的概率分布p ; (2)输出:每个信源符号对应的Shannon 编码的码字。 3、Shannon 编码算法 1:procedure SHANNON(q,{Pi }) 2: 降序排列{Pi } 3: for i=1 q do 4: F(i s ) 5:i l 2 []log 1/()i p s 6:将累加概率F(i s )(十进制小数)变换成二进制小数。 7:取小数点后i l 个二进制数字作为第i 个消息的码字。 8:end for 9:end procedure ------------------------------------------------------------------------------------------------------------------ 4、调试过程 1、fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory fatal error C1083: Cannot open include file: 'values.h': No such file or directory 原因:unistd.h 和values.h 是Unix 操作系统下所使用的头文件 纠错:删去即可 2、error C2144: syntax error : missing ')' before type 'int' error C2064: term does not evaluate to a function 原因:l_i(int *)calloc(n,sizeof(int)); l_i 后缺少赋值符号使之不能通过编译 纠错:添加上赋值符号 1 1 ()i k k p s -=∑

哈夫曼树实验报告

哈夫曼树实验报告 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

计算机科学与技术学院数据结构实验报告 班级 2014级计算机1班学号姓名张建华成绩 实验项目简单哈夫曼编/译码的设计与实现实验日期一、实验目的 本实验的目的是进一步理解哈夫曼树的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 二、实验问题描述 利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码,此实验即设计这样的一个简单编/码系统。系统应该具有如下的几个功能: 1、接收原始数据。 从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件中。 2、编码。 利用已建好的哈夫曼树(如不在内存,则从文件中读入),对文件中的正文进行编码,然后将结果存入文件中。 3、译码。 利用已建好的哈夫曼树将文件中的代码进行译码,结果存入文件中。 4、打印编码规则。 即字符与编码的一一对应关系。 5、打印哈夫曼树, 将已在内存中的哈夫曼树以直观的方式显示在终端上。 三、实验步骤 1、实验问题分析 1、构造哈夫曼树时使用静态链表作为哈夫曼树的存储。 在构造哈夫曼树时,设计一个结构体数组HuffNode保存哈夫曼树中各结点的信息,根据二叉树的性质可知,具有n个叶子结点的哈夫曼树共有2n-1个结点,所以数组HuffNode的大小设置为2n-1,描述结点的数据类型为: Typedef strcut { Int weight;/*结点权值*/ Int parent; Int lchild; Int rchild; }HNodeType; 2、求哈夫曼编码时使用一维结构数组HuffCode作为哈夫曼编码信息的存储。 求哈夫曼编码,实质上就是在已建立的哈夫曼树中,从叶子结点开始,沿结点的双亲链域回退到根结点,没回退一步,就走过了哈夫曼树的一个分支,从而得到一位哈夫曼码值,由于一个字符的哈夫曼编码是从根结点到相应叶子结点所经过的路

相关文档