【复合多尺度熵与特征提取】一文看懂“复合多尺度熵”——复合多尺度样本熵、模糊熵、排列熵、包络熵、功率谱熵、能量熵、奇异谱熵及其MATLAB实现

news2024/11/22 22:38:32

在上一篇文章中,我们讲了多尺度熵的原理及MATLAB实现。

本篇要讲的是多尺度熵的一个改进特征提取方法——复合多尺度熵(Composite Multiscale Entropy, CMSE)。复合多尺度熵方法不仅继承了多尺度熵在揭示时间序列多尺度复杂性方面的优势,而且还通过改进的计算方式,提高了熵值的稳定性和准确性,尤其是在处理短时间序列或噪声较大的信号时。

一、为什么要用复合多尺度熵

正如上一篇文章所讲,多尺度熵通过对原始时间序列进行“粗粒化”处理来构建不同尺度的序列,并在每个尺度上计算熵值。

这里我们再回忆一下“粗粒化”的过程,下图给出了当τ =2以及τ =3的粗粒化过程,可以看出粗粒化过程就是用一个长度为 τ 的窗口以不重叠的方式求取滑动窗口内的序列平均值。[1]

图1. τ=2 及 τ=3 时的粗粒化示意图

当原始时间序列较短时,随着尺度因子的增加,粗粒化后的序列长度将显著减少。在较高尺度上,序列可能变得过于短暂,不足以可靠地估计熵值。熵值的计算依赖于序列中模式(或重复模式)的识别,而较短的序列可能无法提供足够的信息来准确评估这些模式,从而影响了熵值的稳定性和可靠性。

为了解决这一问题,复合多尺度熵就被提出了。

二、从多尺度熵到复合多尺度熵

复合多尺度熵在传统多尺度熵的基础上,对每一个尺度因子所对应的序列,进一步的细化,由只生成一个粗粒序列改进为生成多个粗粒序列,再计算多个序列的多尺度熵,将这些多尺度熵的均值作为最终的熵值,使获得的故障信息更加细致,也提高了多尺度熵计算的精确度。

具体做法也是比较直观的,相比于传统多尺度熵只生成一个粗粒化序列,复合多尺度熵通过窗口的依次平移,在尺度 τ 下一共可以生成 τ 个粗粒化序列。下图为尺度 τ=3 时的复合多尺度熵粗粒化示意图:

图2. τ=3 时的复合多尺度熵粗粒化示意图

计算每一次因滑动窗口而形成的粗粒化序列的样本熵,再对这些样本熵求均值,即可得到尺度因子为 τ 时的复合多尺度熵。

对比图 1与图 2可以看出,以尺度因子 τ=3 时为例,传统多尺度熵只生成了一个粗粒化序列,而复合多尺度熵算法生成了 3 个不同的粗粒化序列,每个粗粒化序列是在原始序列的基础上依次向后平移一个数据点,再计算每个粗粒化序列的样本熵,最后求其平均值。相比于传统多尺度熵的求解过程,复合多尺度熵尽管计算量要大一点,但是它的熵值计算精确程度要远远优于传统多尺度熵。

三、案例演示

这里举一个完整的案例,里说明复合多尺度熵的计算过程,以及与多尺度熵的区别。

首先我们生成一段仿真信号,它是由幅值为1的2hz正弦、幅值为0.5的1.5hz正弦以及白噪声信号叠加而成的:

待分析的仿真信号

多尺度熵方法中,如果设置尺度值分别为1~3,得到的粗粒化信号如下:

多尺度熵方法中的粗粒化信号

复合多尺度熵方法中,粗粒化信号的数量取决于所选择的尺度值。具体来说,当尺度值(scale factor)为1时,由于没有平移操作(或者说,平移0个数据点),粗粒化后的信号仅有一组,即原始信号本身。这是因为在尺度1下,不需要对数据进行任何改变,每个数据点都是其自身的平均。

随着尺度值的增加,粗粒化信号的数量也相应增加。例如,当尺度值为2时,将会生成2个粗粒化信号。这是因为首先将原始信号不进行平移并按尺度2粗粒化,然后将原始信号向后平移1个数据点后再进行尺度2粗粒化,因此得到两组不同的粗粒化数据。

依此类推,当尺度值为n时,将会生成n个粗粒化信号。每个信号都是通过将原始信号从0到n-1个数据点逐个平移后按照尺度n进行粗粒化得到的。

当我们取尺度为3时,具体画出来图像是这样的:

复合多尺度熵方法中的粗粒化信号

同一尺度内的粗粒化信号取平均后将会得到:

复合多尺度熵方法中的粗粒化信号

然后对这3个信号分别求样本熵,就可以得到复合多尺度样本熵的计算结果:

复合多尺度样本熵

当然,我们也可以求其他类型的熵,得到各种类型熵的复合多尺度计算结果,就像这样:

8种复合多尺度熵结果

四、复合多尺度熵该怎么使用

与多尺度熵的用法相同。简单来说,使用方法有以下两种:

4.1 根据复合多尺度熵的数值大小和变化规律进行直观判断

这里举个例子,比如我们在使用熵值进行故障诊断,原始信号在单一尺度上的样本熵值虽然能够区分转子的故障类型,但是区分效果不明显。 但是如果使用复合多尺度熵,可以反映出不同故障状态与正常状态的复合多尺度熵值的大小关系。例如论文《多尺度熵在转子故障诊断中的应用》中的案例,对正常、不对中、不平衡、碰摩和油膜涡动转子信号求多尺度熵,可以得到这样的计算结果:

从上边图中,论文得出了以下结论:

转子径向位移信号在大部分尺度上较正常状态的复杂,无规则程度较高,不平衡和正常状态的次之。 不对中和油膜涡动状态径向位移信号在大部分尺度下的样本熵值较小,说明不对中和油膜涡动状态径向位移信号自相似性较高,信号较为规则。 5种状态的多尺度熵曲线都是随着尺度因子的增加而渐变地趋向于某一值,这说明多尺度熵不仅反映了时间序列本身的复杂性程度,而且还包含了序列在其他尺度上的信息,这是分形维数和样本熵所无法反映的,说明了多尺度熵的优越性。

大家在做其他领域研究时,也可以采取类似方式进行分析判断。

2. 将复合多尺度熵值作为后续其他算法的输入

复合多尺度熵(CMSE)提供了一种度量信号在不同时间尺度上复杂性的方法。在机器学习和数据挖掘中,CMSE可以用来从时间序列数据中提取特征,尤其是当数据的复杂性或动态变化是关注的焦点时。

具体步骤大致如下:

1.根据需要,对原始时间序列数据进行必要的预处理,如去噪、标准化等。 2.针对数据计算多尺度熵,得到每个时间尺度上的熵值,此时熵的类型可能是多种,所以得到会是一个矩阵,其中一个维度是时间尺度长度,另一个维度是熵的类型数。 3.使用这些特征向量训练机器学习模型,如分类器或回归模型。模型将学习如何基于这些复杂性特征来进行预测或分类。

复合多尺度熵作为一种强大的特征提取工具,其在机器学习和数据挖掘领域的应用增强了模型对于时间序列数据复杂性的理解和分析能力。正确应用这些特征可以显著提升模型性能,尤其是在需要深入分析数据动态变化的场景中。

五、MATLAB代码实现

复合多尺度熵的代码在网上似乎能找到,不过为了给大家提供靠谱的代码来源,笔者重新进行了代码编写和封装。

由于搞科研写论文时,对特征提取的需要往往是集中性的、多种类的、需求各异的,所以我把之前介绍过的功率谱熵、奇异谱熵、能量熵、近似熵、样本熵、排列熵、模糊熵、包络熵这8个熵特征进行了打包:

以上8种全都集中到一个封装函数里,实现一行代码完成复合多尺度熵特征提取。

如果提取数据“功率谱熵、奇异谱熵、能量熵、近似熵、样本熵、排列熵、模糊熵”这全部8种特征,就可以这样写:

cmseFea =genFeatureCMSE(data,1:3,{'psdE','svdpE','eE', 'ApEn', 'SpEn','PeEn','FuzzyEn'}, option);  
%调用genFeatureCMSE函数,完成特征提取,算出的特征值会保存在cmseFea变量里

也就是说需要提取哪个特征,在函数中直接指定就可以了。输出的cmseFea变量里就会得到相应的这些特征值,顺序也是与输入的排序保持一致的。

程序运行后会直接绘制出以下3张图:

这个函数的介绍如下:

function cmseFea = genFeatureCMSE(data, scales, featureNamesCell, options)
    % 复合多尺度熵特征提取函数
    % 输入:
    % data:待特征提取的时域信号,必须是一维数据
    % scales:要分析的尺度数组
    % featureNamesCell:拟进行特征提取的特征名称,该变量为cell类型,其中包含的特征名称为字符串,特征名称需要在下边列表中:
    % 目前支持的特征(2022.7.10,共8种):
    %      psdE:功率谱熵
    %      svdpE:奇异谱熵
    %      eE:能量熵
    %      ApEn:近似熵
    %      SpEn:样本熵
    %      FuzzyEn:模糊熵
    %      PeEn:排列熵
    %      enveEn:包络熵
    % options:其他设置,使用结构体的方式导入。目前可设置变量包括:
    %   -svdpEn:即奇异值的窗口长度。
    %   -Apdim:近似熵参数,Apdim为近似熵的模式维度
    %   -Apr:近似熵参数,Apr为近似熵的阈值
    %   -Spdim:样本熵参数,Spdim为样本熵的模式维度
    %   -Spr:Spr为样本熵的阈值
    %   -Fuzdim:模糊熵参数,Fuzdim为模糊熵模式维度
    %   -Fuzr:模糊熵参数,Fuzr为模糊熵的阈值
    %   -Fuzn:模糊熵参数,Fuzn为模糊熵权重
    %   -Pedim:排列熵参数,Pedim为排列熵模式维度
    %   -Pet:排列熵参数,Pet为排列熵的时间延迟
    %   -fs:采样频率,采样频率即每秒钟采集的数据点数,按照实际情况设置,该参数目前在包络熵特征采集中用到
    %   -figflag:是否画图,'on'为画图,'off'为不画图
    
    % 
    % 输出:
    % cmseFea:不同尺度下的特征值,是二维数据,每行代表一种熵的计算结果
    % cmseFea的行数和featureNamesCell中指定的特征量一致,且顺序一一对应

需要上边这个函数文件以及测试代码的同学,可以在公众号 khscience(看海的城堡)中回复“复合多尺度熵”获取。

相关文章

Mr.看海:【熵与特征提取】基于“信息熵”的特征指标及其MATLAB代码实现(功率谱熵、奇异谱熵、能量熵)

Mr.看海:【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第一篇)——近似熵及其MATLAB实现

Mr.看海:【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第二篇)——样本熵及其MATLAB实现

Mr.看海:【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第三篇)——模糊熵及其MATLAB实现

Mr.看海:【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第四篇)——排列熵及其MATLAB实现

Mr.看海:【多尺度熵与特征提取】一文看懂“多尺度熵”——多尺度样本熵、多尺度模糊熵、多尺度排列熵、多尺度包络熵、多尺度功率谱熵、多尺度能量熵、多尺度奇异谱熵及其MATLAB实现

参考

  1. ^刘津涛.EMD结合复合多尺度熵的模拟电路故障诊断方法研究[D].湖南师范大学,2021.DOI:10.27137/d.cnki.ghusu.2021.001319.

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

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

相关文章

【Python--Web应用框架大比较】

🚀 作者 :“码上有前” 🚀 文章简介 :Python 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 Django Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不…

定时器外部时钟

一、相较于内部时钟中断改动: 1.Timer.c RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin GPIO_Pin_…

ACM题解Day4 | Boring Non-Palindrome ,Mental Rotation ,so Easy

学习目标: 博主介绍: 27dCnc 专题 : 数据结构帮助小白快速入门算法 👍👍👍👍👍👍👍👍👍👍👍👍 ☆*: .。. o(≧▽…

GuitarPro8激活许可证24位下载

Guitar Pro是一款专业的吉他制谱软件,现在已更新至Guitar Pro8,新增了支持添加音频轨道、支持嵌套连音符、直观的效果器视图、让指法一目了然的音阶示意图等实用新功能。下面我们来看Guitar Pro8 如何安装激活。 Guitar Pro 8.1官方中文解锁版如何安装 …

可视化和跟踪机器学习实验的工具——Wandb

简介:用于可视化和跟踪机器学习实验的工具。Weights & Biases 是一个机器学习平台,供开发人员更快地构建更好的模型。使用 W&B 的轻量级、可互操作的工具快速跟踪实验、对数据集进行版本和迭代、评估模型性能、重现模型、可视化结果和发现回归&a…

【Java多线程进阶】JUC常见类以及CAS机制

1. Callable的用法 之前已经接触过了Runnable接口,即我们可以使用实现Runnable接口的方式创建一个线程,而Callable也是一个interface,我们也可以用Callable来创建一个线程。 Callable是一个带有泛型的interface实现Callable接口必须重写cal…

【sgCreateTableData】自定义小工具:敏捷开发→自动化生成表格列数据数组[基于el-table]

源码 <template><!-- 前往https://blog.csdn.net/qq_37860634/article/details/136141769 查看使用说明 --><div :class"$options.name"><div class"sg-head">表格数据生成工具</div><div class"sg-container&quo…

Nginx (window)2024版 笔记 下载 安装 配置

前言 Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理&#xff08;Reverse Proxy&#xff09;服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。 反向代理方式是指以代理服务器来接受 internet 上的连接请求&#xff0c;然后将请求转发给内部网络上的服…

java8-使用流-2

筛选各异的元素 流还支持一个叫作aistinct的方法&#xff0c;它会返回一个元素各异(根据流所生成元素的hashcode和eguals方法实现)的流。例如&#xff0c;以下代码会筛选出列表中所有的偶数&#xff0c;并确保没有重复。图5-2直观地显示了这个过程。 List<Integer>number…

「算法」滑动窗口

前言 算法需要多刷题积累经验&#xff0c;所以我行文重心在于分析解题思路&#xff0c;理论知识部分会相对简略一些 正文 滑动窗口属于双指针&#xff0c;这两个指针是同向前行&#xff0c;它们所夹的区间就称为“窗口” 啥时候用滑动窗口&#xff1f; 题目涉及到“子序列…

Unity所有关于旋转的方法详解

前言&#xff1a;欧拉角和四元数的简单描述 我们在Inspector面板上看到的rotation其实是欧拉角&#xff0c; 我们将Inspector面板设置成Debug模式&#xff0c;此时看到的local Rotation才是四元数。 Unity中的欧拉旋转是按照Z-X-Y顺规执行的旋转&#xff0c;一组欧拉旋转过程中…

C++11---lambda表达式

lambda表达式 lambda表达式概念lambda表达式语法lambda表达式各部分说明 lambda表达式交换两个数lambda表达式底层原理lambda表达式的底层原理 lambda表达式之间不能相互赋值 lambda表达式概念 lambda表达式是一个匿名函数&#xff0c;恰当使用lambda表达式可以让代码变得简洁…

Linux CPU 性能分析工具火焰图(Flame Graphs)认知

写在前面 博文内容为 《BPF Performance Tools》 读书笔记整理详细了解小伙伴可以访问作者官网&#xff1a;https://www.brendangregg.com/flamegraphs.html有油管上分享的作者在USENIX ATC 2017 的视屏理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c;也不必太忧虑未来&a…

Day-01-01

项目准备 项目介绍 1. 业务功能 本项目包括了用户端、机构端、运营端。 2. 技术选型 各层简要说明&#xff1a; 环境配置 1. 版本信息 在开发过程中&#xff0c;个人使用gitee作为版本控制工具。 2. 虚拟机安装说明 根据所提供资料&#xff0c;虚拟机IP地址已设置为192.1…

OpenAI Sora出炉,视频鉴赏,详细介绍,小白看过来~~立即尝试Sora,开启您的AI视频创作之旅吧!

OpenAI最新推出的视频创作的颠覆性产品&#xff1a;Sora&#xff0c;它开启了该行业的新纪元&#xff0c;吊打目前一众视频制作工具。 无论是专业人士还是爱好者&#xff0c;都可以轻松创作出高质量的视频内容。 Sora同样是一个根据文本指令创建逼真而富有想象力的场景的人工智…

图表示学习 Graph Representation Learning chapter2 背景知识和传统方法

图表示学习 Graph Representation Learning chapter2 背景知识和传统方法 2.1 图统计和核方法2.1.1 节点层次的统计和特征节点的度 节点中心度聚类系数Closed Triangles, Ego Graphs, and Motifs 图层次的特征和图的核节点袋Weisfieler–Lehman核Graphlets和基于路径的方法 邻域…

Flex布局简介及微信小程序视图层View详解

目录 一、Flex布局简介 什么是flex布局&#xff1f; flex属性 基本语法和常用属性 Flex 布局技巧 二、视图层View View简介 微信小程序View视图层 WXML 数据绑定 列表渲染 条件渲染 模板 WXSS 样式导入 内联样式 选择器 全局样式与局部样式 WXS 示例 注意事项…

阅读笔记(SOFT COMPUTING 2018)Seam elimination based on Curvelet for image stitching

参考文献&#xff1a; Wang Z, Yang Z. Seam elimination based on Curvelet for image stitching[J]. Soft Computing, 2018: 1-16. 注&#xff1a;SOFT COMPUTING 大类学科小类学科Top期刊综述期刊工程技术 3区 COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE 计算机&#xf…

二次元风格404页面源码

大气二次元风格带背景音乐404页面模板 蓝奏云&#xff1a;https://wfr.lanzout.com/ivaYi1odtjhe

中科院一区论文复现,改进蜣螂算法,Fuch映射+反向学习+自适应步长+随机差分变异,MATLAB代码...

本期文章复现一篇发表于2024年来自中科院一区TOP顶刊《Energy》的改进蜣螂算法。 论文引用如下&#xff1a; Li Y, Sun K, Yao Q, et al. A dual-optimization wind speed forecasting model based on deep learning and improved dung beetle optimization algorithm[J]. Ener…