信息熵变化值matlab_求一维序列的信息熵(香浓熵)的matlab程序实例

本文介绍了一种在一维信号如心电信号上计算信息熵(香浓熵)的方法,通过分块归一化处理数据,然后统计各块概率并应用信息熵公式。提供了一个matlab函数示例,用于计算给定序列的信息熵,并附有测试代码。此外,还涉及离散信源的熵计算,包括自信息和平均信息量的Matlab实现,并给出了实验报告和习题解答。
摘要由CSDN通过智能技术生成

但是,对于一个一维信号,比如说心电信号,数据值的范围并不是确定的,不会是(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数等分

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值