信息论与编码matlab实验报告,信息论与编码实验程序与结果图(matlab).doc

41528d3028836879cd698677c3999917.gif信息论与编码实验程序与结果图(matlab).doc

1信源熵实验程序:clc;closeall;clear;linwidd=1fontt=20p0=0;pd=1;N=20p=linspace(p0,pd,N);I=-log2(p);plot(p,I, k );title( I=-log2(p)函数图 );xlabel( p );ylabel( I );clc;closeall;clear;linwidd=1fontt=20p0=0;pd=1;N=20p=linspace(p0,pd,N);H=-p.*log2(p)-(1-p).*log2(1-p);plot(p,H, k );title( H=-p.*log2(p)-(1-p).*log2(1-p)函数图 );xlabel( p );ylabel( H );信道容量实验程序:clc;closeall;clear;linwidd=1fontt=20p0=0;pd=1;N=20p=linspace(p0,pd,N);r=4c=log2(r)+(1-p).*log2(1-p)+p.*log2(p/(r-1));plot(p,c, k );title( 强对称信道容量数值模拟图 );结果图2有噪信道编码--费诺不等式程序:结果图clc;closeall;clear;r=3;p0=0.00001;pd=0.99999;N=2000;p=linspace(p0,pd,N);q=1-p;H=-p.*log2(p)-q.*log2(q);holdonHH=H+p.*log2(r-1)title( 费诺不等式示意图 );boxonxlabel( PE );ylabel( H(X/Y) );plot(p,HH, k: )holdonholdonfill([p,1],[HH,0],[0.6,0.6,0.6])stem((r-1)/r,1.59, --.r )text(0.66,1.6, 最大值 )香农编码程序:clc;clearall;closeall;p=[0.20.190.180.170.150.10.01];ifsum(p)1error( 输入概率不符合概率分布 )end[pindex]=sort(p, descend );n=length(p);pa=zeros(n,1);forii=2:npa(ii)=pa(ii-1)+p(ii-1);endk=ceil(-log2(p));%码字长度计算c=cell(1,n);%生成元胞数组,用来存不同长度的码字forii=1:nc{ii}= ;tmp=pa(ii);forjj=1:k(ii)tmp=tmp*2;iftmp>=1tmp=tmp-1;%c{ii}{jj}= 1 ;c{ii}=[char(c{ii}), 1 ];else%c{ii}{jj}= 0 ;c{ii}=[char(c{ii}), 0 ];endendendc(index)=c;%换回原来的顺序codelength=zeros(1,n);%码长初始化forii=1:nfprintf([ 第 ,num2str(ii), 个消息对应为 ]);disp(c{ii});%显示码字codelength(ii)=length(c{ii});%endn_average=sum(codelength.*p)%平均码长fprintf( 平均码长为 );disp(n_average);H=-sum(p.*log2(p));fprintf( 信源熵 );disp(H);x=H/(n_average.*log2(2))fprintf( 编码效率 );disp(x);figureh=stem(1:n,codelength);%axis([0n+10n+1]);set(h, MarkerFaceColor , blue , linewidth ,2)实验结果结果图第1个消息对应为000第2个消息对应为001第3个消息对应为011第4个消息对应为100第5个消息对应为101第6个消息对应为1110第7个消息对应为1111110n_average=3.1400平均码长为3.1400信源熵2.6087x=0.83083编码效率0.8308费诺编码程序:endforrr=2:2:needgroupnum*2index2=index_aftergroup(rr,:);forii=index2(1):index2(2)c{ii}=[char(c{ii}), 1 ];endendflag=0;index_p=[];forrr=1:needgroupnum*2indextmp=index_aftergroup(rr,:);if(indextmp(2)-indextmp(1)+1>1)flag=1;index_p=[index_p;indextmp];endendjj=jj+1;endc(index)=c;codelength=zeros(1,N);forii=1:Nfprintf([ 第 ,num2str(ii), 个消息对应为 ]);disp(c{ii});codelength(ii)=length(c{ii});endn_average=sum(codelength.*p)fprintf( 平均码长为 );disp(n_average);H=-sum(p.*log2(p));fprintf( 信源熵 );disp(H);x=H/(n_average.*log2(2))fprintf( 编码效率 );disp(x);figureh=stem(1:N,codelength);axis([0N+10N+1]);set(h, MarkerFaceColor , blue , linewidth ,2)endfunctionindex_aftergroup=func_group(p,index_p)index=index_p(1):index_p(2);n=length(index);p0=p(index);sump0=sum(p0);half_sump0=sump0/2;forii=1:n-1tmpsum=sum(p0(1:ii));ifabs(tmpsum-half_sump0)1elsed=1;endB(B(n,j+1),j+1)=-1;temp=B(:,j+1);x=find(temp==B(i,j));ENDc(i)=ENDc1(x(d));endy=B(n,j+1);ENDc(t-1)=[char(ENDc1(y)), 1 ];ENDc(t)=[char(ENDc1(y)), 0 ];t=t+1;ENDc1=ENDc;endA%排序后的原概率序列ENDc%编码结果fori=1:n[a,b]=size(char(ENDc(i)));L(i)=b;endavlen=sum(L.*A)%平均码长selen=(L-avlen).^2%?mselen=sum((selen).*A)%码长均方差H=-A*(log2(A ))%?P=H/avlen%?figure;subplot(2,1,1)h=stem(1:n,selen);%axis([0n+10max(sel

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenGL: 实现立体显示

立体显示原理:设没有立体显示的模型视图矩阵ModelView为Mv,投影矩阵为Mp,则、物体空间的任何一点为P,则变换到屏幕坐标P*MpMvP;注意前面已经说过opengl里面坐标列优先,所以矩阵都是右乘。 左眼和右眼的变换都是由中间的…

数学 之 hdu 4861

// [7/23/2014 Sjm] /* 对于此题&#xff0c;举出数据找规律&#xff0c;即可AC。。。 不过悲催的WA了好多次&#xff0c;后来发现竟把"YES"打印成"Yes"了。。。。 注释掉的代码是用来找规律的。。。 */ 1 #include <iostream>2 #include <cs…

linux下 如何调试php,linux下使用gdb对php源码调试

title: linux下使用gdb对php源码调试date: 2018-02-11 17:59:08tags:---linux下使用gdb进行php调试调试了一些php的漏洞&#xff0c;记录一下大概的过程安装编译phpsudo apt-get install -y autoconf libtool re2c libxml2-dev openssl libcurl4-openssl-dev libbz2-dev libjpe…

安装sqlserver2008,重新启动计算机不通过的解决办法

安装sqlserver2008&#xff0c;重新启动计算机不通过的解决办法 解决步骤&#xff1a;a 、重启机器&#xff0c;再进行安装&#xff0c;如果发现还有该错误&#xff0c;请按下面步骤b、在开始->运行中输入regeditc、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\…

php调用数据二行一组,PHPCMS v9指定行数从第2条或第N条开始调用数据的方法

在PHPCMSV9的模板中&#xff0c;如果想调用数据时&#xff0c;经常会遇到第一条新闻有缩略图文字&#xff0c;从第二条开始是文字列表&#xff1b;或者第一条标题字号字体和颜色特殊&#xff0c;第二条开始正常列表&#xff0c;这时候如果我们调用两次的话&#xff0c;会导致同…

线段树(单点更新(模板)) 之 hdu 1166

// [7/24/2014 Sjm] /* 第一道用线段树做的题&#xff0c;照着大神的代码风格写的&#xff0c;&#xff0c;就当作线段树单点更新的模板吧。。。。(当年用树状数组做的&#xff1a;代码见这里) */ 1 #include <iostream>2 #include <cstdlib>3 #include <cstdi…

深入浅出MFC文档/视图架构之文档模板

在"文档/视图"架构的MFC程序中&#xff0c;提供了文档模板管理者类CDocManager&#xff0c;由它管理应用程序所包含的文档模板。我们先看看这个类的声明&#xff1a; / // CDocTemplate manager object class CDocManager : public CObject {DECLARE_DYNAMIC(CDocMa…

深入浅出MFC文档/视图架构之文档

1、文档类CDocument在"文档/视图"架构的MFC程序中&#xff0c;文档是一个CDocument派生对象&#xff0c;它负责存储应用程序的数据&#xff0c;并把这些信息提供给应用程序的其余部分。CDocument类对文档的建立及归档提供支持并提供了应用程序用于控制其数据的接口&a…

centos 6 安装mysql,CentOS6.5安装MySQL教程(完整教程)

Step 1&#xff1a;检测系统是否安装MYSQL# yum list installed | grep mysql顺便提下如果yum有如下提示不能用的情况&#xff1a;yum在自动更新原因是yum在自动更新 只要关掉它就OK了解决方案&#xff1a;直接输入# rm -f /var/run/yum.pid或者&#xff1a;# /etc/init.d/y…

linux学习之一

忙啦几天&#xff0c;今天终于又有时间在这里打理本园子啦&#xff0c;今天写一下linux下磁盘如何自动挂载其实很简单&#xff0c;要让某些 partition 在开机的时候就自动挂载&#xff0c;写入 /etc/fstab 当中&#xff0c;或者是将指令完整的写到 /etc/rc.d/rc.local&#xff…

MFC 多文档源码分析1

添加模板在复写的CWinApp::InitInstance()函数中添加下面代码 CMultiDocTemplate* pDocTemplate; pDocTemplate new CMultiDocTemplate(IDR_SMARTTTYPE,RUNTIME_CLASS(CCosiWorksDoc),RUNTIME_CLASS(CChildFrame), // custom MDI child frameRUNTIME_CLASS(CCosiWorksView)); …

matlab求零空间,matlab求矩阵的零空间的一组整数基,该怎样操作?

匿名用户1级2015-09-18 回答第一部分&#xff1a;矩阵基本知识一、矩阵的创建直接输入法利用Matlab函数创建矩阵利用文件创建矩阵二、矩阵的拆分矩阵元素矩阵拆分特殊矩阵三、矩阵的运算算术运算关系运算逻辑运算四、矩阵分析对角阵三角阵矩阵的转置与旋转矩阵的翻转矩阵的逆与…

php通过条件来定义const,php用const出错是什么原因

大家都知道define是定义常量的,如果在类中定义常量呢&#xff1f;当然不能用define&#xff0c;而用const&#xff0c;如下例&#xff1a;<?php //在类外面通常这样定义常量define("PHP","phpernote.com");class MyClass{ //常量的值将始终保持不变。在…

UE4角色Location远距离时动画抖动问题(float精度不够)解决方案

正题&#xff1a;关于UE4引擎当角色Location超过9999.999后&#xff0c;角色动画更新抖动问题的解决思路。 前提&#xff1a; 1.UE4引擎中距离单位是厘米(cm)&#xff0c;也就说我们制作好1.8米的角色在UE4中为180个虚幻单位。这样做个人愚见是为了提高浮点值&#xff08;float…

android Handler的使用(一)

Handler的使用(一) Handler基本概念&#xff1a; Handler主要用于异步消息的处理&#xff1a;当发出一个消息之后&#xff0c;首先进入一个消息队列&#xff0c;发送消息的函数即刻返回&#xff0c;而另外一个部分逐个的在消息队列中将消息取出&#xff0c;然后对消息进行出来…

php和python的多线程,Python多线程以及线程锁简单理解(代码)

本篇文章给大家带来的内容是关于Python多线程以及线程锁简单理解(代码)&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。多线程threading 模块创建线程创建自己的线程类线程通信线程同步互斥方法线程锁需要了解&#xff01;&a…

现实地形导入UE4全流程

制作地形方法很多&#xff0c;今天给大家分享一种原创野套路。此方法特点是将现实中的地形于UE4中呈现&#xff0c;而不是手动绘制地形。首先从地理空间数据云获得指定区域的地理数据&#xff0c;然后使用GlobalMapper更准确选出区域并把数据转换成WorldMachine可识别的格式&am…

php对象存储hadoop存储,三个理由告诉你对象存储替换HDFS还不错

Hadoop使企业能够对庞大的非结构化数据集进行大规模分析处理。这个数据集可以包含数以百万计&#xff0c;甚至数十亿个需要读取的文件。为了降低成本并提高数据处理性能&#xff0c;数据和应用程序应该存在于相同的物理硬件上。这样做使数据无需移动&#xff0c;就地处理&#…

Web请求中同步与异步的区别

普通的B/S模式就是同步&#xff0c;而AJAX技术就是异步&#xff0c;当然XMLHttpReques有同步的选项。 同步&#xff1a;提交请求->等待服务器处理->处理完毕返回。这个期间客户端浏览器不能干任何事。 异步: 请求通过事件触发->服务器处理&#xff08;这是浏览器仍然可…

大地形pawn抖动问题

在pawn的event tick里调用下面函数即可