原创未发表!24年新算法SBOA优化TVFEMD实现分解+四种熵值+频谱图+参数变化图+相关系数图!

本文主要是介绍原创未发表!24年新算法SBOA优化TVFEMD实现分解+四种熵值+频谱图+参数变化图+相关系数图!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 

目录

数据介绍

优化流程

创新点

        使用TVFEMD的创新点在于:

        使用蛇鹭优化算法SBOA创新点在于:

参考文献

结果展示

完整代码


        今天为大家带来一期蛇鹭优化算法SBOA优化TVFEMD分解代码,知网和WOS都是搜不到的!可以说是尚未发表的创新点!

        如果你想做故障诊断、分解集成预测等应用,比传统的VMD、EMD已经被用烂了!而TVFEMD算法知网用的还很少,并且可以自行选择分量个数,是一个非常不错的选择!在应用TVFEMD算法时,需人为指定带宽阈值和 B 样条阶数两个参数,存在较大主观性和盲目性的不足,因此需要用优化算法进行寻优!

        为了满足大家各种需求,增强创新性、增加论文篇幅,程序里还附带了TVFEMD分解图、频谱图、参数变化图、相关系数图!适应度函数可任选包络熵、排列熵、样本熵、信息熵四种!

        特别需要指出的是,我们在各个学术平台上搜索SBOA-TVFEMD,都是完全搜索不到这个模型的!!!不信的可以看下面截图!

        知网平台:

        WOS平台:

数据介绍

        在分解模型的输入时,一般只输入一列数据即可,比如信号、时间序列、功率等等,为了方便大家操作,这里使用Excel输入!以一列信号(时间序列)为例,展示数据输入格式。

        大家在更换自己的数据时,只需替换这一列放想要分解的信号等等内容,无需更改代码,非常方便!如果你是mat格式等文件的话,可以复制数据到Excel中!

优化流程

        以下这些内容,如果大家需要用这个程序写论文,都是可以直接借鉴参考的!

        在应用TVFEMD算法时,需人为指定带宽阈值和 B 样条阶数两个参数,存在较大主观性和盲目性的不足。因此,采用24年最新算法SBOA算法对 TVFEMD 的2个参数进行优化,适应度函数采用包络熵(或排列熵、信息熵、样本熵自己选,经实验包络熵效果较好),如果适应度值越小,则代表分解的效果越好。通过优化和更新,来确定最终的最佳参数组合(带宽阈值和 B 样条阶数)。

        优化的步骤如下:

        (1)SBOA算法的种群初始化,设置SBOA的迭代次数和种群规模,并设置 TVFEMD算法的参数优化范围;

        (2)利用TVFEMD分解信号,并计算各个 IMF 分量的包络熵,以包络熵的最小值为适应度函数;

        (3)判断优化是否达到算法的终止条件,若是,则继续下一步;若否,则更新种群位置,并返回第(2)步;

        (4)保存最优的TVFEMD参数组合,并将其代入至TVFEMD中;

        (5)利用SBOA-TVFEMD方法分解信号,得到最佳的 IMF 分量,并生成TVFEMD分解图、频谱图、参数变化图、相关系数图。

        以上所有流程,作者都已精心整理过代码,都可以一键运行main直接出图!如果需要搭配后续的预测模型,比如SBOA-TVFEMD-BiLSTM,可以后台私信我,都是没有问题的!

        适用平台:Matlab推荐在2021以上,没有的文件夹里已经免费提供安装包,直接下载即可!

创新点

        以下这些文字,如果大家需要用这个程序写论文,都是可以直接搬运的!

        使用TVFEMD的创新点在于:

        时变滤波经验模态分解本质上是通过构造截止频率随时间变化的低通滤波器,来完成EMD分解过程中的迭代去除均值操作,并以局部窄带信号代替本征模态函数作为迭代停止条件。

        1.B样条近似滤波器实现筛分过程。EMD自适应地将原始非平稳和非线性序列分解成若千个不同频率尺度的本征模态函数,是时频分析中最经典的技术之一。然而,分离和间歇的缺点制约了相似频率分量分离的效果,并且易受到噪声的干扰而造成模式混合。相比之下,TVFEMD最大的改进之处在于其采用B样条近似滤波器实现筛分过程,这不仅保留了原始EMD的优势,还有助于解决模态混合以及克服对噪声的敏感问题。

        2.增强的噪声鲁棒性。噪声对信号处理的影响是一个重要问题。TVFEMD通过其自适应滤波器能够更好地抑制噪声干扰,从而提高了信号分解的鲁棒性。与传统EMD方法相比,TVFEMD在噪声环境下仍能保持较高的分解精度。

        3.多尺度分析。TVFEMD通过自适应滤波器能够在不同尺度上进行信号分析。这意味着使用者可以根据实际需求选择不同的分解层次,进行多尺度分析,从而获得对信号更全面的理解和分析结果。

        使用蛇鹭优化算法SBOA创新点在于:

        蛇鹭优化算法SBOA刚刚于2024年4月发表在SCI人工智能二区顶刊《Artificial Intelligence Review》上!实验结果表明,SBOA算法在大部分测试函数上均取得了最优结果!你先用,你就是创新!

        之前推文有做过CPO和经典的麻雀优化算法SSA的比较,效果显而易见!对比代码可以免费获取!链接如下:

2024年SCI最新算法-蛇鹭优化算法(SBOA)-公式原理详解与性能测评 Matlab代码免费获取

参考文献

        [1]张婉莹,何耀耀,杨善林.基于TVFEMD-SE和YJQRG的短期风电功率多步概率密度预测[J].系统工程理论与实践,2022,42(08):2225-2242.

结果展示

        原始信号图:

        适应度迭代曲线:

        两个参数的变化曲线图:

        TVFEMD分解结果:

        频谱图(这里IMF8即为残差,名字不同而已,其实都一样的):

        相关系数图:

        结果显示:

        最后,窗口也会输出方便各个结果,非常方便和清晰!

        同时,为了方便大家存储数据,程序也会自动输出分解结果的Excel,这边展示一下程序文件!

        所有图片替换Excel后均可一键运行main生成,Matlab无需配置环境!比Python什么方便多了!非常适合新手小白!

完整代码

        点击下方小卡片,后台回复关键词:

CXYHG

        其他更多需求或想要的代码均可点击下方小卡片,再后台私信,看到后会秒回~

        更多代码链接:更多代码链接

这篇关于原创未发表!24年新算法SBOA优化TVFEMD实现分解+四种熵值+频谱图+参数变化图+相关系数图!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981836

相关文章

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

PyQt6/PySide6中QTableView类的实现

《PyQt6/PySide6中QTableView类的实现》本文主要介绍了PyQt6/PySide6中QTableView类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录1. 基本概念2. 创建 QTableView 实例3. QTableView 的常用属性和方法

PyQt6/PySide6中QTreeView类的实现

《PyQt6/PySide6中QTreeView类的实现》QTreeView是PyQt6或PySide6库中用于显示分层数据的控件,本文主要介绍了PyQt6/PySide6中QTreeView类的实现... 目录1. 基本概念2. 创建 QTreeView 实例3. QTreeView 的常用属性和方法属性

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

pandas中位数填充空值的实现示例

《pandas中位数填充空值的实现示例》中位数填充是一种简单而有效的方法,用于填充数据集中缺失的值,本文就来介绍一下pandas中位数填充空值的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是中位数填充?为什么选择中位数填充?示例数据结果分析完整代码总结在数据分析和机器学习过程中,处理缺失数