信息论与编码技术实验二指导书
- 格式:doc
- 大小:149.00 KB
- 文档页数:4
信息理论与编码实验教学指导书(试用教材)电子信息工程系2019年4月实验1.1 汉明码的编译码实验板实验一、实验目的1. 学习汉明码编译码的基本概念; 2. 掌握汉明码的编译码方法; 3. 验证汉明码的纠错能力。
二、实验仪器1. RZ9681实验平台 2. 实验模块: ● 主控模块● 信道编码与频带调制模块-A4 ● 频带解调与信道译码模块-A5 3. 100M 双通道示波器 4. 信号连接线 5. PC 机(二次开发)三、实验原理3.1汉明编译码介绍汉明码(Hamming Code )是一个可以有多个校验位,具有检测并纠正一位错误代码的纠错码,所以它也仅用于信道特性比较好的环境中,如以太局域网中,因为如果信道特性不好的情况下,出现的错误通常不是一位。
汉明码的检错、纠错基本思想是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶性测试,然后产生多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反(也是原来是1就变成0,原来是0就变成1)来将其纠正。
3.2汉明编译码原理汉明码编码采用()4,7汉明码,信息位数4=k ,监督位数3=-=k n r ,可以纠一位错码,生成矩阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1101000101010001100101110001G ,编码情况见表 1。
表 1()4,7 Hamming 编码表汉明码译码计算校正子[]321,,S S S S =,其中24561a a a a S ⊕⊕⊕= 13562a a a a S ⊕⊕⊕= 03463a a a a S ⊕⊕⊕=校正子S 的值决定了接收码元中是否有错码,并且指出错码的位置,见表2。
表2 错码位置示意3.3 举例说明信息位10013456=a a a a ,根据表 1()4,7 Hamming 编码表,编码为1001100,如果在信道传输的过程中产生一位误码,编码接收时变为1101100,我们计算校正子:124561=⊕⊕⊕=a a a a S 113562=⊕⊕⊕=a a a a S 003463=⊕⊕⊕=a a a a S校正子110=S ,查找表2 错码位置示意,5a 产生误码,则译码输出信息位1001。
信息论与编码实验2-实验报告信息论与编码实验 2 实验报告一、实验目的本次信息论与编码实验 2 的主要目的是深入理解和应用信息论与编码的相关知识,通过实际操作和数据分析,进一步掌握信源编码和信道编码的原理及方法,提高对信息传输效率和可靠性的认识。
二、实验原理(一)信源编码信源编码的目的是减少信源输出符号序列中的冗余度,提高符号的平均信息量。
常见的信源编码方法有香农编码、哈夫曼编码等。
香农编码的基本思想是根据符号出现的概率来分配码字长度,概率越大,码字越短。
哈夫曼编码则通过构建一棵最优二叉树,为出现概率较高的符号分配较短的编码,从而实现平均码长的最小化。
(二)信道编码信道编码用于增加信息传输的可靠性,通过在发送的信息中添加冗余信息,使得在接收端能够检测和纠正传输过程中产生的错误。
常见的信道编码有线性分组码,如汉明码等。
三、实验内容与步骤(一)信源编码实验1、选取一组具有不同概率分布的信源符号,例如:A(02)、B (03)、C(01)、D(04)。
2、分别使用香农编码和哈夫曼编码对信源符号进行编码。
3、计算两种编码方法的平均码长,并与信源熵进行比较。
(二)信道编码实验1、选择一种线性分组码,如(7,4)汉明码。
2、生成一组随机的信息位。
3、对信息位进行编码,得到编码后的码字。
4、在码字中引入随机错误。
5、进行错误检测和纠正,并计算错误纠正的成功率。
四、实验结果与分析(一)信源编码结果1、香农编码的码字为:A(010)、B(001)、C(100)、D (000)。
平均码长为 22 比特,信源熵约为 184 比特,平均码长略大于信源熵。
2、哈夫曼编码的码字为:A(10)、B(01)、C(111)、D (00)。
平均码长为 19 比特,更接近信源熵,编码效率更高。
(二)信道编码结果在引入一定数量的错误后,(7,4)汉明码能够成功检测并纠正大部分错误,错误纠正成功率较高,表明其在提高信息传输可靠性方面具有较好的性能。
实验一 信道容量的迭代算法一、 实验目的1、掌握信道容量的概念。
2、了解迭代法计算信道容量的流程。
3、熟悉Matlab 程序的设计和调试方法。
二、 实验要求1、学习Matlab 软件编程和调试方法;2、输入:任意一个信道转移概率矩阵。
包括信源符号个数、信宿符号个数、信道转移概率,在程序运行时从键盘输入;3、输出:输入的信道矩阵、信道容量C 。
三、 算法描述1. 初始化信源分布),,,,,(21)0(r i p p p p p ⋅⋅⋅⋅⋅⋅= (一般初始化为均匀分布),置迭代计数器0=k ,设信道容量相对误差门限为,0,>δδ可设-∞=)0(C ; 2. r i p pp p i k i ij k i ij k ji ,,2,1)()()(⋅⋅⋅==∑ϕ;s j ,,1⋅⋅⋅= 3. r i p p p i j k ji ij j k ji ij k i ,,1ln exp ln exp )()()1(⋅⋅⋅=⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡=∑∑∑+ϕϕ 4. ⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧⎥⎦⎤⎢⎣⎡=∑∑+i j k ji ij k p C )()1(ln exp ln ϕ 5. 如果,)1()()1(δ≤-++k k k C C C 转向76. 置迭代序号k k →+1,转向27. 输出)1(+k i p 和)1(+k C 的结果8. 停止四、 实验报告内容1、画出信道容量迭代算法流程图;2、给出实验结果的截图(输入信道矩阵和信道容量计算结果);3、对各种情况的实验结果进行分析和检验。
附:实验用Matlab 源程序。
(如果使用了非给定源程序)实验报告提交:电子文档(邮箱:yangxiaoping2004@ )实验过程:结果出来时,请实验老师检查并做记录(1个结果即可)。
实验二 唯一可译码判决准则一、 实验目的1、了解唯一可译码的概念。
2、掌握唯一可译码判决准则。
3、掌握Matlab 程序调试方法。
教案2010 ~ 2011 学年第 1 学期《信息论与编码技术》实验教案教学院(部)电气与电子信息工程学院教研室电子信息教研室授课班级 07 电信本、08电信专授课教师艾青职称职务助教教材名称《信息论-基础理论与应用》2010 年 10 月 1 日实验二、信源编译码一、实验目的1、掌握标量量化的基本使用方法。
2、掌握预测量化的基本使用方法。
3、掌握Huffman编码的仿真方法。
4、通过信源编译码,理解香农第一定理。
二、实验主要仪器与设备1、微机三、实验原理大多数信源(比如语音、图像)最开始都是模拟信号,为了将信源输出数字化,信源必须量化为确定数目的级数。
量化方案可划分为标量量化和矢量量化两种。
在标量量化中每个信源输出都分别被量化,标量量化可进一步分为均匀量化和非均匀量化。
在均匀量化中量化区域是等长的;在非均匀量化中量化区域可以是不等长的。
矢量量化是对信源输出组合进行整体量化。
在MATLAB通信工具箱中提供了两种信源编译码的方法:标量量化和预测量化。
1、标量量化①信源编码中的μ律或A律压扩计算函数compand( )格式:out=compand(in, param, V, method)功能:实现值μ律或A律压扩,其中param为μ,V为峰值。
压扩方式由method指定。
②产生量化索引和量化输出值的函数quantiz( )格式:indx=quantiz(sig, partition)功能:根据判断向量partition,对输入信号sig产生量化索引indx,indx的长度与sig矢量的长度相同。
③采用训练序列和Lloyd算法优化标量算法的函数lloyds( )格式:[parition, codebook]=lloyds(training_set, ini_codebook) 功能:用训练集矢量training_set优化标量量化参数partition 和码本codebook。
ini_codebook是码本codebook的初始值。
信息理论与编码实验指导书电子与电气工程学院罗晓琴编实验要求1、实验前认真阅读实验指导书的内容,并完成预习任务。
2、复习Matlab的相关知识,完成仿真。
3、要熟悉本次实验的任务。
4、实验过程中要认真记录实验结果,仿真结果需经指导教师审阅。
5、实验后每位同学要独立完成实验报告的内容。
目录实验一离散信源的自信息量和熵 (3)实验二最大离散熵定理 (6)实验三费诺编码 (9)实验四霍夫曼编码 (13)实验五香农编码 (16)实验一:计算离散信源的自信息量和熵一、实验目的1、熟悉离散信源的特点。
2、学习Matlab仿真离散信源的方法。
3、学习离散信源自信息量和信源熵的计算方法。
4、熟悉 Matlab 编程。
二、实验设备1、计算机2、软件:Matlab三、实验原理本实验主要完成信源概率分布的自信息量以及信源熵的计算。
计算公式如下:一个字符它所携带的信息量是和该字符出现的概率有关,概率可以表征自信息量的大小自信息的计算公式为:21()l o g aI a p 自信息量有两个含义:第一、当事件发生前,表示该事件发生的不确定性;第二、当事件发生后,标是该事件所提供的信息量.自信息量的单位取决于对数所取的底,若以2为底,单位为比特,以e 为底,单位为奈特,以10为底,单位为哈特。
在通信系统中,通常取比特为单位,底数2略去不写。
由于自信息I(a)是一个随机变量,不能用来表征整个信源的不确定度。
所以我们用平均自信息量来表征整个信源的不确定度。
平均自信息量就是信源输出所有消息的自信息的数学期望,又称为信息熵、信源熵,简称熵。
熵(平均自信息)的计算公式为:22111()log log qq i i i i i i H x p p p p ====-∑∑ 信息熵H (x )是对信源的平均不确定性的描述。
它从平均意义上来表征信源的总体信息测度。
对于某特定的信源,其信息熵是一个确定的数值。
信息熵具有如下三种物理意义。
第一,信息熵H (x )是表示信源输出后,每个消息或符号所提供的平均信息量。
信息论与编码实验指导书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)编写本次实验的实验报告。
《信息论与编码》实验指导书网络与通信工程学院2014年6月目录实验一绘制信源熵函数曲线 (3)实验二哈夫曼编解码 (6)实验三离散信道容量 (10)1实验一绘制信源熵函数曲线(2学时)一、实验目的1.掌握离散信源熵的原理和计算方法。
2.熟悉matlab软件的基本操作,练习应用matlab软件进行信源熵函数曲线的绘制。
3.理解信源熵的物理意义,并能从信源熵函数曲线图上进行解释其物理意义。
二、实验原理1.离散信源相关的基本概念、原理和计算公式产生离散信息的信源称为离散信源。
离散信源只能产生有限种符号。
假定X是一个离散随机变量,即它的取值范围R={x1,x2,x3,…}是有限或可数的。
设第i个变量x i发生的概率为p i=P{X=x i}。
则:定义一个随机事件的自信息量I(x i)为其对应的随机变量x i出现概率对数的负值。
即:I(x i)= -log2p(x i)定义随机事件X的平均不确定度H(X)为离散随机变量x i出现概率的数学期望,即:∑∑-==i ii ii ixpxpxIxpXH)(log)()()()(2单位为比特/符号或比特/符号序列。
平均不确定度H(X)的定义公式与热力学中熵的表示形式相同,所以又把平均不确定度H(X)称为信源X的信源熵。
必须注意一下几点:a)某一信源,不管它是否输出符号,只有这些符号具有某些概率特性,必有信源的熵值;这熵值是在总体平均上才有意义,因而是个确定值,一般写成H(X),X是指随机变量的整体(包括概率分布)。
b)信息量则只有当信源输出符号而被接收者收到后,才有意义,这就是给与信息者的信息度量,这值本身也可以是随机量,也可以与接收者的情况有关。
c) 熵是在平均意义上来表征信源的总体特征的,信源熵是表征信源的平均不确定度,平均自信息量是消除信源不确定度时所需要的信息的量度,即收到一个信源符号,全部解除了这个符号的不确定度。
或者说获得这么大的信息量后,信源不确定度就被消除了。
《信息理论与编码》实验指导书武汉理工大学教材中心2009年7月实验一 绘制二进熵函数曲线一、实验目的1.熟悉 Matlab 工作环境及工具箱;2.掌握 Matlab 绘图函数;3.理解熵函数表达式及其性质。
二、实验内容实验内容与要求内容:用 Matlab 软件绘制二进熵函数曲线。
要求:1. 提前预习实验,认真阅读教材及相应的参考书,熟悉实验原理;2. 遵守实验室规定,实验过程中服从实验室管理人员和实验指导老师的管理;3. 独立完成实验,认真做好实验记录;4. 实验结束后,认真填写实验报告。
知识要点1. 信源熵的概念及其性质。
参照教材及参考书。
2. 二进熵公式:1201,01()1x x X p P X p p = = ⎧⎫⎡⎤= ≤≤⎨⎬⎢⎥ -⎣⎦⎩⎭()()log ()[log (1)log(1)]()i i iH X p x p x p p p p H p =- =-+-- =∑注意:虽然理论上定义 0 · log0 = 0 ,但是,在实际运算时,对数函数 logx 的变量 x 不能取 0 值,而应设置一个系统默认的最小值 eps 。
三、实验总结1、绘制二进熵函数曲线,观察曲线形状。
2、结合熵函数的性质,分析二进熵函数曲线的特点。
四、思考与提高1、绘制三元熵函数曲线,观察曲线形状。
2、结合熵函数的性质,分析三元熵函数曲线的特点。
实验二一般信道容量迭代算法一、实验目的1、熟悉Matlab 工作环境及工具箱;2、掌握一般信道容量迭代算法的原理。
二、实验内容实验内容与要求内容:用Matlab 软件编程实现一般信道容量迭代算法。
要求:1、提前预习实验,认真阅读相应的参考书,熟悉实验原理;2、遵守实验室规定,实验过程中服从实验室管理人员和实验指导老师的管理;3、独立完成实验,认真做好实验记录;4、实验结束后,认真填写实验报告。
知识要点::1、一般信道容量迭代算法的原理。
参照教材及参考书。
信息论与编码实验
Experiment of Information Theory and Coding Technology
一、课程基本情况
课程总学时:32学时
实验总学时:6学时
学分:2学分
开课学期:第5学期
课程性质:必修
对应理论课程:信息论与编码
适用专业:通信工程、电子信息工程
教材:傅祖芸编著,信息论—基础理论与应用, 电子工业出版社,2003
开课院系:电子与信息工程学院通信工程系
二、实验课程的教学目标和任务
信息论是由Shannon奠基的一门学科,它产生于有效而可靠的通信问题中,并获得了广泛应用。
通过本课程的学习,使学生对信息理论有一个比较全面和系统的了解,掌握信息论的基本概念和信息论方法,为从事信息科学的研究和应用打下一个坚实的基础。
本课程为通信工程专业的必修课程,要求学生掌握信息论的基本理论和概念,如熵、互信息熵、自信息量等。
掌握信源编码的基本方法(失真编码和无失真编码)。
掌握有噪声信道编码相关的基本概念,了解有噪声信道的纠错码的基本思想和方法。
三、实验课程的内容和要求
四、课程考核
(1)实验报告的撰写要求:按照学校格式要求,展示个人实验过程与结果,严禁抄袭。
(2)实验报告:3次
(3)考核及成绩评定:根据学生实验后所完成的实验报告,按优、良、中、差评定成绩。
五、参考书目
周荫清,信息理论基础,北京航空航天大学出版社,2012年
姜丹,信息论与编码,中国科学技术大学出版社,2004年
张宏基,信源编码原理,北京邮电大学出版社,2003年。
实验二 离散信道及其容量一、实验目的1、理解离散信道容量的内涵; 2、掌握求二元对称信道(BSC )互信息量和容量的设计方法; 3、 掌握二元扩展信道的设计方法并会求其平均互信息量。
二、实验原理若某信道输入的是N 维序列x ,其概率分布为q(x),输出是N 维序列y,则平均互信息量记为I(X;Y),该信道的信道容量C 定义为()max (X;Y)q x C I =。
三、实验内容1、给定BSC 信道,信源概率空间为信道矩阵 0.990.010.010.99P ⎡⎤=⎢⎥⎣⎦求该信道的I(X;Y)和容量,画出I(X;Y)和ω、C 和p 的关系曲线。
2 、编写一M 脚本文件t03.m ,实现如下功能:在任意输入一信道矩阵P 后,能够判断是否离散对称信道,若是,求出信道容量C 。
3、已知X=(0,1,2);Y=(0,1,2,3),信源概率空间和信道矩阵分别为XP 0 1 0.6 0.4= XPx 0 1 2 0.3 0.5 0.2=求: 平均互信息量;4、 对题(1)求其二次扩展信道的平均互信息I(X;Y)。
四、程序设计与算法描述1)设计思路1、信道容量()max (X;Y)q x C I 因此要求给定信道的信道容量,只要知道该信道的最大互信息量,即求信道容量就是求信道互信息量的过程。
程序代码:clear all,clc;w=0.6;w1=1-w;p=0.01;X=[0 1];P =[0.6 0.4];p1=1-p;save data1 p p1;I_XY=(w*p1+w1*p)*log2(1/(w*p1+w1*p))+(w*p+w1*p1)*log2(1/(w*p+w1*p1))-(p*log2(1/p)+p 1*log2(1/p1));C=1-(p*log2(1/p)+p1*log2(1/p1));fprintf('互信息量:%6.3f\n 信道容量:%6.3f',I_XY,C);p=eps:0.001:1-eps;p1=1-p;C=1-(p.*log2(1./p)+p1.*log2(1./p1));subplot(1,2,1),plot(p,C),xlabel('p'),ylabel('C');load data1;w=eps:0.001:1-eps;w1=1-w;I_XY=(w.*p1+w1.*p).*log2(1./(w.*p1+w1.*p))+(w.*p+w1.*p1).*log2(1./(w.*p+w1.*p1))-(p .*log2(1./p)+p1.*log2(1./p1));subplot(1,2,2),plot(w,I_XY)xlabel('w'),ylabel('I_XY');0.1 0.3 0 0.6 0.3 0.5 0.2 0 0.1 0.7 0.1 0.1P=实验结果:2、离散对称信道:当离散准对称信道划分的子集只有一个时,信道关于输入和输出对称。
没实验一 绘制二进熵函数曲线(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 nX H a p H p p p p x p x p X H p p p x x X P X ii 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 散点图”,子图表类型选“无数据点平滑散点图”,数据区域用计算出的H(p)数据所在列范围,即$B$1:$B$101。
在“系列”中输入X值(即p值)范围,即$A$1:$A$101。
《信息论与编码》实验指导书前言当前,信息论与编码已经成为电子信息类专业高年级学生必修的专业基础课。
尽管各个院校开设课程名称有所不同,但都是以香农信息论为核心内容的。
这是一门理论性和系统性很强的课程。
涉及多个学科,需要广泛数学知识。
为了能透彻掌握信息论基本概念和分析方法,做实验进行实践练习是不可缺少的环节。
通过综合性、验证性实验,可以加深对理论和概念的理解,增强分析和解决实际问题的能力。
为此,河北工业大学信息学院编写了《信息论与编码实验指导书》,由于可供参考的实验指导书有限,本书的不妥和错误之处,恳请读者予以批评指正。
马杰2008年2月目录实验一信息熵与图像熵计算--------------------------------------- 1 实验二Huffman 编码实验------------------------------------------ 6 实验三算术编码实验------------------------------------------------ 11 实验四CRC校验编码实验------------------------------------------17实验一 信息熵与图像熵计算(2学时)一、实验目的1.复习MATLAB 的基本命令,熟悉MATLAB 下的基本函数。
2.复习信息熵基本定义, 能够自学图像熵定义和基本概念。
二、实验内容1.能够写出MATLAB 源代码,求信源的信息熵。
2.根据图像熵基本知识,综合设计出MATLAB 程序,求出给定图像的图像熵。
三、实验仪器、设备1.计算机-系统最低配置 256M 内存、P4 CPU 。
2.Matlab 仿真软件 - 7.0 / 7.1 / 2006a 等版本Matlab 软件。
四、实验原理1. MATLAB 中数据类型、矩阵运算、图像文件输入与输出知识复习。
2. 利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。
《信息论与编码》实验指导书邹东尧等编计算机与通信工程学院信息与通信工程系2010年10月绪论随着信息产业的飞速发展,对从事信息、通信、电子工程类等专业的人员的要求也越来越高,而《信息论与编码》是这类专业的专业必修课,这门课主要介绍了有关信息论的基本原理以及信源编码、信道编码的内容。
通过理论与实践的结合,才能更好的领会知识的真谛。
《信息论与编码》结合实验的实践,让学生更能深刻的理解和掌握这门课的基本概念、基本理论,并培养学生的动手实践能力。
本实验指导书正是配合教学计划的实验教学而编写,主要是基于matlab 仿真软件对信源编解码和信道容量进行仿真。
本书共有三个实验:绘制信源熵函数曲线、哈夫曼编解码和离散信道容量,为实验大纲要求的必做实验。
本书主要由邹东尧编写,主要参考了李祖贺等编写的《信息论与编码》实验指导书,并得到了李祖贺等老师的大力支持,特此对他们表示衷心的感谢!由于时间仓促,错误难免,恳请读者谅解和指正!郑州轻工业学院计算机与通信工程学院信息与通信工程系2010年10月目录实验一绘制信源熵函数曲线 (5)实验二哈夫曼编解码 (9)实验三离散信道容量 (14)1实验一绘制信源熵函数曲线一、实验目的1.掌握离散信源熵的原理和计算方法。
2.熟悉matlab软件的基本操作,练习应用matlab软件进行信源熵函数曲线的绘制。
3.理解信源熵的物理意义,并能从信源熵函数曲线图上进行解释其物理意义。
二、实验原理1.离散信源相关的基本概念、原理和计算公式产生离散信息的信源称为离散信源。
离散信源只能产生有限种符号。
假定X是一个离散随机变量,即它的取值范围R={x1,x2,x3,…}是有限或可数的。
设第i个变量x i发生的概率为p i=P{X=x i}。
则:定义一个随机事件的自信息量I(x i)为其对应的随机变量x i出现概率对数的负值。
即:I(x i)= -log2p(x i)定义随机事件X的平均不确定度H(X)为离散随机变量x i出现概率的数学期望,即:∑∑-==i ii i i i x p x p x I xp X H )(log )()()()( 单位为 比特/符号 或 比特/符号序列。
成都理工大学课程实验指导书信息管理学院信息与计算科学系编目录1 课程实验目的 (1)2 课程实验要求 (1)2.1 课程实验准备要求 (1)2.2 课程实验过程要求 (1)2.3 课程实验报告要求 (1)2.4 课程实验考核要求 (2)3 课程实验内容 (3)项目一二维随机变量信息量的计算 (3)项目二简单信源编码方法实现 (3)项目三典型信道容量计算方法实现 (4)项目四静态图像压缩方法实现 (4)附录1 课程实验报告格式 (6)附录2 《信息论与编码》课程实验教学大纲 (9)1 课程实验目的本课程是一门实践性很强的专业基础和核心课程,根据课程理论教学的需要安排了8 学时的配套实验教学,主要内容涉及信息度量的计算方法、典型信源编码方法、典型信道容量计算方法和数据压缩方法四个实验,这四个实验的开设一方面有助于学生消化、巩固课程理论教学的知识,另一方面又可培养学生实践动手能力,同时为后续课程做好准备。
2 课程实验要求2.1 课程实验准备要求(1)课程实验主要为设计性实验,要求学生熟悉掌握在VC环境下编写和调试C++程序的方法。
(2)要求学生在实验前复习实验所用到的预备知识。
可以查阅教材或者相关的参考资料,这需要学生有自主的学习意识和整理知识的能力。
(3)根据实验项目,设计相关的数据结构和算法,再转换为对应的书面程序,并进行静态检查,尽量减少语法错误和逻辑错误。
上机前的充分准备能高效利用机时,在有限的时间内完成更多的实验内容。
2.2 课程实验过程要求(1)生成源代码。
将课前编写好的书面代码,利用VC自带的编辑器尽快输入为转换为源代码;(2)程序调试和软件测试。
要求学生熟练掌握调试工具,调试正确后,认真整理源程序和注释,给出带有完整注释且格式良好的源程序清单和结果。
(3)完成实验报告。
根据实验内容和完成情况,按照附件1给定的格式完成课程实验报告的编写。
2.3 课程实验报告要求在每次课程实验后要及时进行总结和整理,并编写课程实验报告。
信息论与编码上机报告
完成时间:200 年月日
实验要求
1. 二进制对称信道容量:
利用BPSK 信号在一个加性白高斯噪声信道上传输二进制数据,并在用最佳匹配滤波器检测的输出端利用硬判决解码。
1) 画出该信道的差错概率作为函数,γ作为自变量的图。
γ=ε/N 0
ε—在每个BPSK 信号中的能量
N 0/2—噪声功率谱密度
用最佳检测的BPSK 的差错率是:()
γ2Q p =
2) 画出作为γ函数的信道容量的图。
()
γ21)(1Q H p H C b b -=-=
2. 信道容量与带宽和SNR 的关系
1) 输入功率受限为P 和带宽为W 的带限AWGN 信道的容量由下式给出
⎪⎪⎭⎫ ⎝⎛+=W N P W C 021log 画出容量作为W 和P /N 0的函数关系。
2) 画出离散时间AWGN 信道容量作为输入功率和噪声方差的函数关系
⎪⎭⎫ ⎝⎛+=221log 21σP C。
信息论与编码技术实验二指导书
一、实验目的
通过实验了解图像数据的最佳编码,本指导书给出了Fano编码的参考程序,同学们可以根据参考程序完成Fano编码,也可自行编程完成其他的编码方案,如Shanonn编码、Huffman编码、算术编码等。
最后,计算图像的编码效率(计算图像数据熵的程序用实验一给出的参考程序)。
二、实验步骤
1. 用MATLAB程序调用一个灰度图像数据;
2. 统计图像中的所有像素值的分布概率;
3. 对其分布概率进行从小到大的排序;
4. 按照Fano编码方法对其进行编码;
5. 输出编码结果;
6. 计算编码效率。
三、实验任务
1. 按照所提供的参考程序完成以上的实验步骤1到步骤5;
2. 添加计算编码效率部分的程序;
3. 写出最后完成程序,以及两个子函数的算法流程图;
4. 写出编码结果,以及编码效率。
5. 选做扩展部分
根据参考程序自己完成一个任意的最佳编码程序。
参考程序
%进行fano编码的主函数
f=imread('test01.jpg'); %读入名为test01.jpg的图像
figure;imshow(f); %显示该图像
[m,n]=size(f);
H=0;
p=zeros(1,256);
for(i=1:m)
for(j=1:n)
k=f(i,j)+1;
p(k)=p(k)+1;
end;
end;
p=p/(m*n);
s=find(p>0);
ps=p(s); %概率分布函数
ns=length(s);
for(k=1:ns);
H=H-ps(k)*log2(ps(k)); %获得信源的熵
end;
%进行排序
iniData=ps;
paixuData = paixu(iniData) ; %调排序子函数
x=paixuData; %排序后的概率分布
n=length(paixuData);
c=2*ones(n,2*n); %码表
q=1; %循环编码结束标志符号
ks=1; %分组的个数
ns=[n]; %分组的最后一个位置值
kk=1; %表示第几层的编码
%第几次的编码
while(q>0)
a=[ ]; %放当前编码层的分小组末尾位置b=1; %分组首位位置
wq=c(:,kk)'; %判断是否所分小组已经达到了只有一个符号for(i=1:ks)
if((ns(i)-b)==0)
a=[a,0];
c(b:ns(i),kk)=3; %表明不再进行编码
else
xs=x(b:ns(i)) ; %取出一个单组进行再一次的分组编码
ws=wq(b:ns(i)); %取出所提取的分组部分是否已经结束编码的标识
ss=find(ws==3);
if(length(ss)==0)
[ys,w]=bianma(xs);
c(b:ns(i),kk)=ys'; %将编码结果存入码表
na=length(a);
if(na>0) %表明已经有上面做过编码了
a=[a,w+ns(i-1)];
else
a=[a,w];
end;
end;
end;
b=ns(i)+1;
end; %一层的编码结束
kk=kk+1;
ns0=ns; %添加新获得的编码分组
ns=[a,ns0];
na=2*length(a);
if(na>3)
ns(1:2:na)=a;
ns(2:2:na)=ns0(1:na/2);
end;
s=find(ns>0);
ns=ns(s);
nk=length(ns);
e=ns(2:nk)-ns(1:nk-1);
se=find(e==1);
c(ns(se)+1,kk)=3;
ks=length(ns);
ss=find(c(:,kk)==3);
if(length(ss)>=n-1) q=0;end; %表明编码完成,设置结束标识
end;
c=c(:,1:kk)
%%%%%% 请添加计算编码效率部分%%%%%%%%%%%%%%%%%%%
function y=paixu(x) %排序子函数
y=x;
ns=length(x);
for(i=1:ns-1)
for(k=1:ns-i)
if(y(k)>y(k+1))
s=y(k);
y(k)=y(k+1);
y(k+1)=s;
end;
end;
end;
function [y,w]=bianma(x) %分组编码子函数
y=x;
ns=length(x);
a=2*ones(1,ns-1);
for(k=1:ns-1)
a(k)=abs(sum(x(1:k))-sum(x(k+1:ns)));
end;
[q,w]=min(a);
y(1:w)=0;
y(w+1:ns)=1;
实验用图像(国际标准测试图)
test01.jpg test02.jpg。