一绘制二元熵函数曲线报告_第1页
一绘制二元熵函数曲线报告_第2页
一绘制二元熵函数曲线报告_第3页
一绘制二元熵函数曲线报告_第4页
一绘制二元熵函数曲线报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一绘制二元熵函数曲线实验报告一、实验目的熟悉MATLAB工作环境及工具箱理解熵函数表达式及其性质二、实验内容用MATLAB软件编程绘制二元熵函数曲线三、实验过程1.复习二元熵函数,理解二元信源的熵H(w)=-wlogw-(1-w)log(1-w)表达式。熟悉MATLAB软件。MATLAB的操作界面MATLAB操作界面主要分为:任务栏、命令窗、命令历史窗、当前目录浏览器、工作空间浏览器及一个“启动按钮”。任务栏:位于软件的正上方。各个菜单分别为:文件、编辑、视窗、调试、桌面、窗体、帮助这几个窗口,点击每个窗口可以选择需要的操作。命令窗(CommandWindow):位于软件操作界面的右侧。在

2、此窗口里,可以输入各种指令、函数、变量表达式并进行各种操作。该窗口用于输入命令并显示除图形以外的所有执行结果。窗口中的“”为命令提示符,直接在其后面输入命令并按下回车键后,会出现计算结果在命令后面。命令历史窗(CommandHistory):位于软件操作界面的左下方。这个窗口记录了命令窗口已经运行过的所有命令(指令、函数等),允许用户对这些命令进行选择、复制。MATLAB的函数绘制二维图形最常用的就是plot函数,调用plot函数的三种形式:plot(x)、plot(x,y)、plot(x,y,r:x)。还有就是如何添加横坐标和纵坐标标题的命令语句。实验程序。w=0.000001:0.0001

3、:0.999999999%定义w的取值范围y=-w.*log2(w)-(1-w).*log2(1-w)%定义二元熵函数的表达式plot(w,y,r)xlabel(w)ylabel(H(w)gridontitle(二元熵函数H(w)%画出二元熵函数的曲线图%x轴的名称%y轴的名称%给图形加上网格运行结果如下:FileEditViewinsertToolsDesktopWindow旦El|32?sai0二元燔函数Hfi)1iiiiiinniiyf、iU.yr,tv-1t11-i1四、实验结果分析从图中可以看出熵函数的一些性质,如果二元信源的输出概率是1或0(即二元信源的输出是确定的),则该信源不提

4、供任何信息。当二元信源符号等概率发生时,即w=0.5时,信源的熵达到最大值,等于1比特信息量,曲线关于w=0.5左右对称。五、实验总结对MATLAB掌握不够,还缺少很多的MATLAB知识,应加强学习MATLAB。%函数曲线的名称实验二一般信道容量迭代算法实验报告一、实验目的熟悉MATLAB工作环境及工具箱掌握一般信道容量迭代算法原理二、实验内容用MATLAB软件编程实现一般信道容量迭代算法三、实验过程复习一般信道容量迭代算法,了解其基本思路。熟悉MATLAB的工作界面及所要用到的基本函数及语句,如:输入语句、循环语句、exp函数等。实验程序。N=input(输入信源符号X的个数N=)M=inp

5、ut(输出信源符号Y的个数M=)p_yx=zeros(N,M)fprintf(输入信道矩阵概率n)fori=1:Nforj=1:Mp_yx(i,j)=input(p_yx=);ifp_yx(i)0error(不符合概率分布)endendendfori=1:Ns(i)=0;forj=1:Ms(i)=s(i)+p_yx(i,j);endendfori=1:Nif(s(i)=1.000001)error(不符合概率分布)endendb=input(输入迭代精度:)fori=1:Np(i)=1.0/N;%程序设计需要信道矩阵初始化为零%输入信道矩阵概率%各行概率累加求和%判断是否符合概率分布%输入迭代

6、精度%取初始概率为均匀分布log(p_yx(i,j)/q(j);%计算u%计算IL%计算IU%迭代计算%重新赋值p(i)%计算q(j)%计算a(i)endforj=1:M%计算q(j)q(j)=0;fori=1:Nq(j)=q(j)+p(i)*p_yx(i,j);endendfori=1:N%计算a(i)d(i)=0;forj=1:Mif(p_yx(i,j)=0)d(i)=d(i)+0;elsed(i)=d(i)+p_yx(i,j)endenda(i)=exp(d(i);endu=0;fori=1:Nu=u+p(i)*a(i);endIL=log2(u)IU=log2(max(a)n=1whi

7、le(IU-IL)=b)fori=1:Np(i)=p(i)*a(i)/u;endforj=1:Mq(j)=0;fori=1:Nq(j)=q(j)+p(i)*p_yx(i,j);endendfori=1:Nd(i)=0;forj=1:Mif(p_yx(i,j)=0)d(i)=d(i)+0;elsed(i)=d(i)+p_yx(i,j)*log(p_yx(i,j)/q(j);endend%计算u%计算IL%计算IUa(i)=exp(d(i);endu=0fori=1:Nu=u+p(i)*a(i);endIL=log2(u)IU=log2(max(a)n=n+1endfprintf(信道矩阵为:n)

8、disp(p_yx)fprintf(迭代次数n=%dn,n)fprintf(信道容量C=%f比特/符号,IL)实验结果为:输入信源符号X的个数N=3输出信源符号Y的个数M=4输入信道矩阵概率p_yx=0.5p_yx=0.25p_yx=0.1p_yx=0.15p_yx=0.23p_yx=0.4p_yx=0.27p_yx=0.1p_yx=0.19p_yx=0.21p_yx=0.6p_yx=0输入迭代精度:0.00001信道矩阵为:0.50000.25000.10000.15000.23000.40000.27000.10000.19000.21000.60000迭代次数n=85信道容量C=0.27

9、1258比特/符号四、实验分析与总结信道容量与输入信源的概率分布无关,它只是信道传输概率的函数,只与信道的统计特性有关。信道容量是完全描述信道特性的参量,是信道能够传输的最大信息量。只要信道的平均互信息达到极大值即等于信道容量,那么就说此输入概率分布是最佳的,因此达到信道容量的最佳输入分布并不是唯一的。迭代精度越小,计算的结果越准确,但加重了算法的重复计算量,即迭代次数越多。迭代精度越大,迭代次数越少,计算结果相对差些。因此,可以根据实际情况来定迭代精度。实验三编程实现哈夫曼编码实验报告一、实验目的熟悉MATLAB工作环境及工具箱掌握哈夫曼编码的原理二、实验内容用MATLAB软件编程实现哈夫曼

10、编码三、实验过程复习哈夫曼编码,掌握其编码的原理。熟悉MATLAB的工作界面及所要用到的基本函数及语句。实验程序。functionh,l=huffman(p)%h为每个符号对应的码字,l为输出码字的平均码长if(length(find(p10e-10)error(Notaprob.vector,componentdonotaddto1)%判断总概率是否为1endn=length(p);%编码的元素个数q=p;m=zeros(n-l,n);%构造n-1行、n列的零矩阵fori=1:n-1%按概率大小排列得到m矩阵q,l=sort(q);%返回一个列升序排列的矩阵m(i,:)=l(1:n-i+1)

11、,zeros(1,i-1);q=q(1)+q(2),q(3:n),1;endfori=1:n-1%生成一个n-1行、n*n列的矩阵c,每行看作n个段,每段长为n,记录一个码字c(i,:)=blanks(n*n);end000c(n-1,n)=1;%c矩阵的n-1行的第一个段赋值1c(n-1,2*n)=0;%c矩阵的n-1行的第二个段赋值0fori=2:n-1%确定从倒数第二开始到第一行前二段的码字c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)=1)-(n-2):n*(find(m(n-i+1,:)=1);c(n-i,n)=1;c(n-i,n+1:2*n-1)=c

12、(n-i,1:n-1);c(n-i,2*n)=0;forj=1:i-1%每次循环时其他元素的码字c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)=j+1)-1)+1:n*find(m(n-i+1,:)=j+1);endendfori=1:n%根据m矩阵第一行纪录的概率排序,给每个概率对应的符号分配码字h(i,1:n)=c(1,n*(find(m(1,:)=i)-1)+1:find(m(1,:)=i)*n);ll(i)=length(find(abs(h(i,:)=32);endl=sum(p.*ll);以p=1/6,1/4,5/12,1/6为例n=4l=1.9167ans=001011四、哈夫曼编码的流程图五、实验分析与总结哈夫曼编码是一种无损压缩方法,其编码方式有以下几步:1、首先统计信源中各符号出现的概率,按符号出现的概率从大到小排序;2、把最小的两个概率相加合并成新的概率,与剩余的概率组成新的概率集合;3、对新的概率集合重新排序,再次把其中最小的两个概率相加,组成新的概率集合。如此重复进行,直到最后两个概率的和为1;4、分配码字:码字分配从最后一步开始反向进行,对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论