收藏 分销(赏)

信息熵的matlab程序实例.doc

上传人:二*** 文档编号:4591028 上传时间:2024-09-30 格式:DOC 页数:3 大小:19KB 下载积分:5 金币
下载 相关 举报
信息熵的matlab程序实例.doc_第1页
第1页 / 共3页
本文档共3页,全文阅读请下载到手机保存,查看更方便
资源描述
(word完整版)信息熵的matlab程序实例 求一维序列的信息熵(香浓熵)的matlab程序实例 对于一个二维信号,比如灰度图像,灰度值的范围是0-255,因此只要根据像素灰度值(0—255)出现的概率,就可以计算出信息熵。     但是,对于一个一维信号,比如说心电信号,数据值的范围并不是确定的,不会是(0-255)这么确定,如果进行域值变换,使其转换到一个整数范围的话,就会丢失数据,请高手指点,怎么计算。 比如数字信号是x(n),n=1~N (1)先用Hist函数对x(n)的赋值范围进行分块,比如赋值范围在0~10的对应第       一块,10~20的第二块,以此类推.这之前需要对x(n)做一些归一化处理 (2)统计每一块的数据个数,并求出相应的概率 (3)用信息熵公式求解 以上求解方法获得的虽然是近似的信息熵,但是一般认为,这么做是没有问题的 求一维序列的信息熵的matlab程序代码如下:(已写成调用的函数形式) 测试程序: fs=12000; N=12000; T=1/fs; t=(0:N-1)*T; ff=104; sig=0.5*(1+sin(2*pi*ff*t))。*sin(2*pi*3000*t)+rand(1,length(t)); Hx=yyshang(sig,10)   %-——————求一维离散序列信息熵matlab代码 function Hx=yyshang(y,duan) %不以原信号为参考的时间域的信号熵 %输入:maxf:原信号的能量谱中能量最大的点 %y:待求信息熵的序列 %duan:待求信息熵的序列要被分块的块数 %Hx:y的信息熵 %duan=10;%将序列按duan数等分,如果duan=10,就将序列分为10等份 x_min=min(y); x_max=max(y); maxf(1)=abs(x_max—x_min); maxf(2)=x_min; duan_t=1.0/duan; jiange=maxf(1)*duan_t; % for i=1:10 % pnum(i)=length(find((y_p>=(i—1)*jiange)&(y_p〈i*jiange))); % end pnum(1)=length(find(y<maxf(2)+jiange)); for i=2:duan-1     pnum(i)=length(find((y〉=maxf(2)+(i—1)*jiange)&(y<maxf(2)+i*jiange))); end pnum(duan)=length(find(y〉=maxf(2)+(duan-1)*jiange)); %sum(pnum) ppnum=pnum/sum(pnum);%每段出现的概率 %sum(ppnum) Hx=0; for i=1:duan     if ppnum(i)==0         Hi=0;     else         Hi=-ppnum(i)*log2(ppnum(i));     end     Hx=Hx+Hi; end end %—----———-——-—--— 扩展阅读:     实验一:计算离散信源的熵 一、实验设备: 1、计算机 2、软件:Matlab 二、实验目的:   1、熟悉离散信源的特点;   2、学习仿真离散信源的方法   3、学习离散信源平均信息量的计算方法   4、熟悉 Matlab 编程; 三、实验内容:    1、写出计算自信息量的Matlab 程序    2、写出计算离散信源平均信息量的Matlab 程序。    3、掌握二元离散信源的最大信息量与概率的关系。    4、将程序在计算机上仿真实现,验证程序的正确性并完成习题。 四、实验报告要求 简要总结离散信源的特点及离散信源平均信息量的计算,写出习题的MATLAB实现语句。   信息论基础: 自信息的计算公式               Matlab实现:I=log2(1/p) 或I=-log2(p) 熵(平均自信息)的计算公式    Matlab实现:HX=sum(-x.*log2(x));或者h=h—x(i)*log2(x(i)); 习题: 1。 甲地天气预报构成的信源空间为:   乙地信源空间为:   求此两个信源的熵。求各种天气的自信息量. 案: 运行程序: p1=[1/2,1/4,1/8,1/8];%p1代表甲信源对应的概率 p2=[7/8,1/8];%p2代表乙信源对应的概率 H1=0。0; H2=0。0; I=[]; J=[]; for i=1:4     H1=H1+p1(i)*log2(1/p1(i));     I(i)=log2(1/p1(i)); end disp('自信息量分别为:’); I disp(’H1信源熵为:'); H1 for j=1:2     H2=H2+p2(j)*log2(1/p2(j));      J(j)=log2(1/p2(j)); end disp('自信息量分别为:'); J disp('H2信源熵为:'); H2
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服