《信息论与编码课程实验报告.doc》由会员分享,可在线阅读,更多相关《信息论与编码课程实验报告.doc(15页珍藏版)》请在金锄头文库上搜索。
1、福建农林大学计算机与信息学院信息工程类信息论与编码课程实验报告组别:小组成员:102260004001杨汉兴102260004011 林志102260004020陈莹莹102260004034文磊组长:杨汉兴提交日期:2012年01月14日成绩:实验项目列表序号实验项目名称成绩指导教师1信源建模黄习培2信源编码实验黄习培3连续信源模型与率失真函数黄习培4信道容量的迭代算法黄习培实验名称1:信源建模一、实验目的和要求(1)进一步熟悉信源建模;(2)掌握MATLAB程序设计和调试过程中数值的进制转换、数值与字符串之间的转换等技术。二、实验内容(1)假设在一个通信过程中主要传递的对象以数字文本的方式
2、呈现。(2)我们用统计的方式,发现这八个消息分别是由N1,N2,N8个符号组成的。在这些消息是中出现了以下符号(符号1,符号2,符号M)每个符号总共现了(次数1,次数2,次数M)我们认为,传递对象的信源模型可表示为:X为随机变量(即每次一个字符);取值空间为:(符号1,符号2,符号M);其概率分布列为:(次数1/(N1+N8),次数M/( N1+N8))三、 实验环境硬件:计算机 软件:MATLAB 4、 实验原理图像和语声是最常用的两类主要信源。要充分描述一幅活动的立体彩色图像,须用一个四元的随机矢量场X(x,y,z,t),其中x,y,z为空间坐标;t为时间坐标;而X是六维矢量,即表示左、右
3、眼的亮度、色度和饱和度。然而通常的黑白电视信号是对平面图像经过线性扫描而形成。这样,上述四元随机矢量场可简化为一个随机过程X(t)。图像信源的最主要客观统计特性是信源的幅度概率分布、自相关函数或功率谱。关于图像信源的幅度概率分布,虽然人们已经作了大量的统计和分析,但尚未得出比较一致的结论。至于图像的自相关函数,实验证明它大体上遵从负指数型分布。其指数的衰减速度完全取决于图像类型与图像的细节结构。实际上,由于信源的信号处理往往是在频域上进行,这时可以通过傅里叶变换将信源的自相关函数转换为功率谱密度。功率谱密度也可以直接测试。语声信号一般也可以用一个随机过程X(t)来表示。语声信源的统计特性主要有
4、语声的幅度概率分布、自相关函数、语声平均功率谱以及语声共振峰频率分布等。实验结果表明语声的幅度概率分布可用伽玛()分布或拉普拉斯分布来近似。语声信号的自相关函数,根据实验也可以大致认为属于负指数分布类型,且样点间相关性很强,一般高达0.9以上。语声信号的平均功率谱的测试表明,语声主要能量集中在1千赫以下。语声的共振峰频率是语声功率谱的主要峰值。这样的峰值并非一个,而且它的值随音调的变化有一定的变动范围。人们对汉语、英语的共振峰分布已获得一定的测试结果。5、 算法程序function DMS=Get_DMS_From_Message(storytxt_name)%storytxt_name:纯文
5、本的文件名,注意这个文件应该与这个程序在同一目录里Message=textread(The Secret Garden.txt,%c);MinChar=min(Message);MaxChar=max(Message);Message_Len=length(Message);%assume that the char between MinChar and MaxChar will be use in the%message.Char_List=zeros(1,MaxChar-MinChar+1);for i=1:Message_LenChar_List(Message(i)-MinChar+
6、1)=Char_List(Message(i)-MinChar+1)+1;endPro_List=Char_List/Message_Len;NumOfChar=length(Char_List);%Discrete Memoryless SourceDMS=cell(NumOfChar,2);for i=1:NumOfCharDMSi,1=char(i+MinChar-1);DMSi,2=Pro_List(i);end六、实验小结由分形编码方法的数学原理可知,在编码过程中所得到的迭代函数系统IFS是紧缩的,它的吸引子可以通过对任意初始图像的不断迭代变换而得到。从严格的数学角度来说,需要迭代无
7、数多次才能得到吸引子。但是在实际应用过程中,只需要迭代有限次N后即可收敛,在进行N+1迭代,图像的质量只是轻微的变化。一般情况下,N=8。实验2:信源编码实验一、实验目的和要求(1)进一步熟悉Shannon编码算法;(2)掌握MATLAB程序设计和调试过程中数值的进制转换、数值与字符串之间的转换等技术。二、实验内容和原理(1)输入:信源符号个数q、信源符号s、信源概率分布P;(2)输出:信源符号与码字的对应关系表(编码表)。(3)香农编码:a. 将信源发出的N个消息符号按其概率的递减次序排列b. 按下式计算第个消息的二进制代码组的码长,并取整 c. 计算第个消息的累加概率(为小数)d. 将累加
8、概率变换成二进制数e. 去掉小数点,并根据取小数点后的前几位为对应的代码组三、 实验环境硬件:计算机 软件:MATLAB 四、 算法描述及实验步骤1、算法描述:(1)将q个信源符号按其概率的递减次序排列;(2)计算出各个信源符号的累加概率;(3)按下式计算第i个消息的二无代码组的码长li: li =log(1/p(si),其中li 取比结果大(或者等于)的最小整数; (4)将累加概率F(si)(十进制小数)变换成二进制小数。根据码长li取小数点后li 个二进制符号作为第i个消息的码字。 2、算法程序q= input(输入信源符号个数q=)p=zeros(1,q); %程序设计需要信道矩阵初始化
9、为零fprintf(输入信源概率n)for i=1:q p(1,i)=input(p=);%输入信源概率endp=sort(p,descend); %从大到小依次排列信源概率p %从大到小依次输出信源概率f=zeros(1,q);l=zeros(1,q);for i=1:q for k=1:i-1 f(i)=f(i)+p(k); end l(i)=-log2(p(i); l(i)=ceil(l(i);endfor i=1:q x=f(i); p=zeros(1,l(i);for t=1:l(i) p(t)=floor(x*2); x=x*2-p(t);endpend运行结果:Code_Book
10、 = e 0000 t 0001 a 0011 o 0100 h 0101 n 0110 s 01111 r 10001 i 10011 d 10100 l 10110 w 101111 u 110000 g 110010 y 110011 m 110100 f 110101 c 110110 . 1101111 b 1110001 p 1110011 k 1110101 1110110 1111000 , 1111001 v 11110101M 11110111I 11111000 T 111110011 S 111110101 - 111110110 H 1111101111 A 1111
11、110001 W 1111110010 ? 1111110100 q 1111110101 ! 1111110110 B 11111101111 x 11111110000 D 11111110010 E 11111110100 Y 11111110101 j 11111110111 C 11111111000 N 11111111001 P 111111110101 O 111111110111 L 111111111000 R 111111111001 ; 111111111011 z 1111111111000 1111111111010 G 11111111110111: 111111
12、11111001 F 111111111110100 J 111111111110110 V 111111111110111 Q 111111111111001 U 1111111111110100 ( 1111111111110110 1 1111111111110111 ) 1111111111111000 K 1111111111111001 0 11111111111110101 2 11111111111110111 3 111111111111110004 11111111111111001 5 111111111111110106 11111111111111011 7 11111111111111100 8 11111111111111101 9 11111111111111110五、 实验小结:在实验过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过这次实验之后,一定把以前所学过的知识重新温故,第二次实验吸取经验