原创未发表!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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【详细介绍下Visual Studio】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

树莓派、ubuntu低版本python3安装库

如果遇到树莓派中自带低版本python3,又不想额外去安装python3时,可能会遇到版本过低,无法安装库的情况,以下用我实际情况举例解决方案。 本次遇到的问题是树莓派低版本中,python3为3.7.3,需要安装numpy&am…

数据结构与算法学习笔记三---循环队列的表示和实现(C语言)

目录 前言 1.为啥要使用循环队列 2.队列的顺序表示和实现 1.定义 2.初始化 3.销毁 4.清空 5.空队列 6.队列长度 7.获取队头 8.入队 9.出队 10.遍历队列 11.完整代码 前言 本篇博客介绍栈和队列的表示和实现。 1.为啥要使用循环队列 上篇文章中我们知道了顺序队列…

【数据结构】静态链表

静态链表 1.静态链表的结构设计: typedef struct SNode {int data; // 数据int next; //后继指针(下标) }SNode, SLinkList[MAXSIZE];2.静态链表的结构示意图 0:有效数据链的头结点 1:空闲数据链的头结点 3.静态链表…

重生奇迹mu再生宝石怎么用有什么用

重生奇迹mu再生宝石有2个用处: 1、在玛雅哥布林处给380装备加PVP属性4追4以上的380级装备,守护宝石一颗,再生宝石一颗,成功得到PVP装备,失败宝石消失,装备无变化; 2、给非套装点强化属性用法跟祝福,灵魂,生命一样直接往装备上敲,成功得到随机强化属性一…

【linux软件基础知识】如何使用 run_list 字段将任务放入就绪队列中

在给定的代码片段中,struct task_struct 表示内核中任务或进程的进程控制块 (PCB)。 run_list 字段的类型为 struct list_head,这表明它是链表实现的一部分。 run_list字段在Linux内核中常用来表示任务在调度队列中的位置,例如就绪队列或各种优先级队列。 init_task是一个…

深入理解Java并发:Future与CompletableFuture详解

知识背景: 在工作过程中有用到CompletableFuture,之前接触不多,特此下来学习一下,与大家一起分享! 总体介绍: 在多线程编程中,异步计算是一种常见的需求。其中Future和CompletableFuture是处…

SVN 合并到 Git 时有文件大于 100 M 被限制 Push

如果有文件大小大于 100M,GitHub 是会被限制推送到仓库中的,大概率情况会显示下面的错误: remote: Resolving deltas: 100% (3601/3601), done. remote: error: Trace: aea1f450da6f2ef7bfce457c715d0fbb9b0f6d428fdca80233aff34b601ff59b re…

飞书API(8):MySQL 入库定制版本

一、引入 通用版能解决百分之八九十的任务,剩下的部分任务需要进行定制。 先说明通用版本和定制版本有什么不同,通用版本就是只管大的数据类型,将数据处理为对应的类型入库,而定制版本会考虑局部列的数据类型,。举个…

SpringCloud 2023.0.1

本文介绍如何使用 springboot3及cloud2023 进行微服务模块化开发 采用父-module 模块开发 父工程 demo-java pom.xml <!--配置 springboot的依赖的版本号, 方便 module 进行继承--><dependencyManagement><dependencies><!--增加 springboot的依赖--&g…

XXE-lab靶场搭建

源码下载地址 https://github.com/c0ny1/xxe-lab1.php_xxe 直接放在php web页面下即可运行。 2.java_xxe java_xxe是serlvet项目&#xff0c;直接导入eclipse当中即可部署运行。 3.python_xxe: 安装好Flask模块python xxe.py 4.Csharp_xxe 直接导入VS中运行 phpstudy…

第100+7步 ChatGPT文献复现:ARIMA-GRNN预测出血热

基于WIN10的64位系统演示 一、写在前面 这一次&#xff0c;我们来解读ARIMA-GRNN组合模型文章&#xff0c;也是老文章了&#xff1a; 《PLoS One》杂志的2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal…

用HAL库改写江科大的stm32入门例子8-1 DMA数据转运

实验1-实验目的&#xff1a;通过DMA把buffer的数据搬运到buffer2当中。 //declare a buffer to store the data uint32_t buffer[3] {1,2,3};//declare a buffer to store the data uint32_t buffer2[3] {0,0,0}; DMA&#xff1a;是个搬运数据的小助手。 相关设置&#xff1…

DHCP原理

什么是DHCP DHCP (Dynamic Host Configuration Protocol,动态主机配置协议&#xff09;是由Internet工作任务小组设计开发的&#xff0c;专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议&#xff0c;是一个应用层协议&#xff0c;使用UDP的67和68端口。 DHCP的前身是B…

导航软件iApp源码V3+配置教程

一款支持侧边导航栏的网页导航APP源码&#xff0c;风格简约为主&#xff0c;可以通过远程文档进行远程控制列表&#xff0c;浏览器拥有检测下载的功能。&#xff0c;配置较为简单&#xff0c;适合入门小白学习参考。 导航软件iApp源码V3配置教程 配置教程在mian.iyu的载入事件…

BGP基础

1.BGP概述 &#xff08;1&#xff09;AS IANA&#xff08;Internet Assigned Numbers Authority&#xff0c;因特网地址分配组织&#xff09;&#xff1a;IAB&#xff08;Internet Architecture Board&#xff0c;因特网体系委员会&#xff09;的下设组织。IANA授权NIC&#x…

【hana】hana1.0多容器常用命令

基础命令 数据库 连接数据库 hdbsql -u system -p {passwd} -i 02 -d {dbname}查询所有数据库 SELECT DATABASE_NAME, ACTIVE_STATUS FROM M_DATABASES;停止数据库&#xff0c;会修改数据库状态为No ALTER SYSTEM STOP DATABASE testdb; 启动数据库&#xff0c;会修改数据…

基于阿里云向量检索 Milvus 版与 PAI 搭建高效的检索增强生成(RAG)系统

阿里云向量检索 Milvus 版现已无缝集成于阿里云 PAI 平台&#xff0c;一站式赋能用户构建高性能的检索增强生成&#xff08;RAG&#xff09;系统。您可以利用 Milvus 作为向量数据的实时存储与检索核心&#xff0c;高效结合 PAI 和 LangChain 技术栈&#xff0c;实现从理论到实…

Gitlab:从其它项目组里导入一个项目

1.首先获取原项目的http地址 http://ip/projectGroup/ProjectX.git其中&#xff0c;ip 为公司gitlab内网地址。 2.进入目的项目组进行创建 首先&#xff0c;需要拥有一个该组拥有者权限的账号&#xff0c;才能进行后续的操作。 2.1.点击创建项目按钮 2.2.选择导入项目 其中…

C语言基础——循环语句

&#x1f33a;​&#x1f64f;&#x1f64f;&#x1f64f;欢迎大家观看&#xff0c;写的好的话希望三连感谢&#x1f64f;&#x1f64f;&#x1f64f;&#x1f33a; 文章目录 一、循环语句的介绍 二、不同循环语句的使用 1.while循环 1.1 while循环的使用方式 1.2 while循环的执…