资源描述:
《信息论与编码胡亚洲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、信息论与编码实验报告专业:通信工程班级:通信三班学号:120310312姓名:胡亚洲实验一英文文本信息量的计算一实验目的1通过本实验熟悉Matlab软件编程环境2编写M文件实现对英文文本信息量的计算,掌握信源熵的计算方法二实验要求1了解matlab中M文件的编辑、调试过程2编写程序实现英文文本信息量的统计,掌握信源熵及信息量的计算方法三实验步骤①查找各个英文字母及空格出现的频率②在Matlab中读取给定的英文文章(该文章为txt格式)③计算英文文章的长度④统计在该文章中各个字母及空格出现的次数并放入数组N中⑤计算各
2、个字母和空格的信息量及整篇文章的信息量⑥计算信源熵四给定程序的流程图,以及每条语句的注释输入相应的频率计算各个字母、空格及整篇文章的信息量计算信源熵结束开始读取英文文章计算文章的长度嵌套的for循环语句判断是否符合循环条件判断字是否为大写母放入数组N中对应的位置是判断是否为小写字母放入数组N中对应的位置是判断是否为小写字母放入数组N中对应的位置是真if否elseif否elseif假五自己编写的改进程序,及运行结果记录wenzhang=textread('english.txt','%c');%读入的英文文章len=
3、size(wenzhang);length=len(1,1);%文章的长度为lengthN=zeros(1,52);fori=1:lengthifdouble(wenzhang(i,1))>96&&double(wenzhang(i,1))<=122N(1,double(wenzhang(i,1))-96)=N(1,double(wenzhang(i,1)-96))+1;elsedouble(wenzhang(i,1))>64&&double(wenzhang(i,1))<=91N(1,double(wenzhan
4、g(i,1))-64)=N(1,double(wenzhang(i,1)-64))+1;endend%统计各字母出现的个数,存入N数组中p=zeros(1,52);p=N/length;%计算各字母出现的概率I=zeros(1,52);I=log2(1./p);%计算各字母的信息量fori=1:52ifp(1,i)==0I(1,i)=0;endend%出现概率为0的字母的信息量赋值sumI=sum(I.*N)%计算整篇文章的总的信息量Ip=I.*p;H=sum(Ip)%计算信源熵文本内容:huyazhouxinxi
5、lunyubianma运行结果:sumI=81.7744H=3.4073六实验小结通过本次实验熟悉了Matlab软件编程环境和一些函数的功能及使用,掌握了信息量、信源熵的计算方法。实验二信息熵与图像熵计算一实验目的1通过本实验复习MATLAB的基本命令,熟悉MATLAB下的基本函数2复习信息熵基本定义,能够自学图像熵定义和基本概念二实验要求1能够写出MATLAB源代码,求信源的信息熵2根据图像熵基本知识,设计出MATLAB程序,求出给定图像的图像熵三实验步骤1求解信息熵过程:①输入一个离散信源,并检查该信源是否是完
6、备集。②去除信源中符号分布概率为零的元素。③根据平均信息量公式,求出离散信源的熵。2图像熵计算过程:①输入一幅图像,并将其转换成灰度图像。②统计出图像中每个灰度阶象素概率。③统计出图像中相邻两象素的灰度阶联合分布矩阵。④根据图像熵和二阶熵公式,计算出一幅图像的熵。四、实验数据及结果分析:函数程序CalEntropy.m%InformationShannonEntropycalculation%jma@hebut.edu.cn,22/08/2007%array:DiscreteProbabilitiesSet%H:O
7、utputShannonEntropyfunctionH=CalEntropy(array)%Vectornumbernum=length(array);%Checkprobabilitiessumto1:ifabs(sum(array)-1)>.00001,error('Probablitiesdon''tsumto1.')end%%Removeanyzeroprobabilities%%zeroProbs=find(array8、)=[];%disp('Removedzeroornegativeprobabilities.')End%%ComputetheentropyH=-sum(array.*log2(array));%单位bit/symbol图像熵计算代码函数源程序ImgEntropy.m%%%%%%%ImageEntropycalculation%%%%%%%%Coeffic