特征模态分解(FMD):一种小众而又新颖的分解方法

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

        今天为大家介绍一个小众而又新颖的信号分解方法,这个方法也是2023年刚提出来的一个新算法,最初是用作故障诊断当中。目前,知网和WOS用的都还很少,只有寥寥数篇,非常适合作为创新点,也能让审稿人眼前一亮。

        这个算法发表在SCI一区期刊《IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS》上,这个SCI期刊想必大家心里也都有数,IEEE系列信号处理领域的一区顶刊,想发一篇这个难度还是非常大的。

        传统的EMD分解方法最为人所熟知,但存在模态混叠、理论依据不足等缺点,而理论基础扎实的VMD算法并未考虑信号的脉冲特性和冲击特性。另外,这些分解算法已经快被彻底用烂了,尤其是光伏功率预测、风电功率预测或者是故障诊断等方面,更是重灾区。

        因此,为有效提升信号处理方法的性能,提高特征提取的准确性,我们本期要介绍的是MiaoYH等作者在2023年提出了一种全新非平稳信号处理方法——特征模态分解(FMD)

        简单来说,这个方法以解卷积的相关峭度为目标函数,通过建立自适应有限脉冲响应滤波器组并结合相关函数以实现故障周期的判别最终将信号分解为多个模态分量和的形式。

        不同于其他信号分解方法,FMD充分考虑了信号的周期与冲击特性,在保证对信号故障特征敏感的同时对干扰和噪声成分具有一定的鲁棒性。

        这边以某一原始信号为例(该信号无实际含义),展示一下运行结果。

        首先输入一列Excel信号,当然你有mat文件更好,直接load xx.mat即可在Matlab中读取文件。这边为了方便新手小白,以Excel文件为例,在替换数据时直接替换一列Excel数据即可。

        首先看一下原始信号图:

        设置滤波器个数为30,分解个数为5,最大迭代次数为20,得到的分解图和频谱图如下所示。

        同时计算均方根误差、信噪比与各分量相关系数,结果显示在命令行窗口中。可以看到,这段信号的均方根误差为138.4361,信噪比为-0.8315。

        总体来看,结合论文里的说法,这个算法具有以下几个优点:

        (1)同时考虑信号的冲动性和周期性,FMD分解目标对机械故障具有针对性,对其他干扰和噪声具有鲁棒性。

        (2)采用自适应FIR滤波器提取分解模式。不受滤波器形状、带宽、中心频率的限制,分解更加彻底。

        (3)在不以故障周期为先验知识的情况下,FMD可以准确分解机械故障信息,特别是在不同频带占主导地位的复杂故障。

        如果大家对这个算法有兴趣,想要拿去写论文,也都是完全没有问题的。为了方便大家写作,这边也给出算法的详细计算过程:

        (1)初始化迭代参数及FIR滤波器组加窗数K,令i=1、K=5~10,输入主要分解参数(模态个数n,滤波器长度L)

        (2)根据uik=x*fik获得分解后模态分量其中k=1,2,…,K,*为卷积计算。

        (3)滤波系数根据原始信号x(t)、分解所得模态分量uik以和预估信号故障周期Tik(Tik为uik自相关谱经过零点后所到达局部最大值Rik所对应的时刻)进行更新,令 i=i+1。

        (4)判定当前迭代过程是否达到最大迭代次数,如果达到,则返回步骤(3);否则,继续执行步骤(5)。

        (5)计算两相邻模态分量间相关系数,建立一KxK的相关矩阵CCk*k,并同预估信号故障周期Z计算两者的相关峭度,选取相关峭度较大的模态分量为分解所得分量,令K=K-1。

        (6)判定当前模态数量是否达到设置的数量n,如果达到,则分解停止,输出结果;如果没达到,则返回步骤2,继续上述操作。

        以上所有图片,一键运行main即可全部出图,非常清晰。文件夹里也会输出各结果的Excel,并附带原始参考文献,适合新手小白。

        想要以上Matlab代码的,只需点击下方小卡片,再后台回复关键词,不区分大小写:

FMD

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试八股之为什么要使用克隆

Java中为什么要使用克隆?怎么实现对象的克隆?深拷贝和浅拷贝的区别是什么 在Java中使用克隆主要有以下几个原因: 创建对象副本:克隆可以快速创建一个与原对象状态完全相同的副本,无需手动逐一复制每个属性。这种情况…

期权(1):基本概念,权利金,定金,买方,卖方,零和游戏,对赌协议

期权是合约,权利金就是定金! 合约到期时 买方可以选择行权,也可以选择不行权。代价就是定金损失。因此亏损封顶,但盈利无限。卖方赚的就是买方的定金,盈利封顶,但亏损无限。 从这里,我们看出…

【go项目01_学习记录12】

代码组织 1 代码结构2 重构与测试2.1 安装测试功能2.2 testify 的常用断言函数 3 表组测试 1 代码结构 所有的代码写在一个main.go文件里面,GO编译器也是可以正常执行的。但是当代码量很庞大时,很难进行维护。 Go Web 程序的代码组织 单文件——反模式…

风电功率预测 | 基于BP神经网络的风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测 | 基于BP神经网络的风电功率预测(附matlab完整源码)完整代码风电功率预测 | 基于BP神经网络的风电功率预测(附matlab完整源码) 基于BP神经网络的风电功率预测是一种常见的方法,它利用BP神经网络模型来预测风电场的发电功率。下面是一个基于BP神经…

2.3 应用集成技术

第2章 信息技术知识 2.3 应用集成技术 2.3.1 数据库与数据仓库技术 数据库 以单一的数据源即数据库为中心进行事务处理、批处理、决策分析等各种数据处理工作操作型处理也称事务处理,指的是对联机数据库的日常操作,通常是对数据库中记录的查询和修改…

node和npm版本太高导致项目无法正常安装依赖以及正常运行的解决办法:如何使用nvm对node和npm版本进行切换和管理

1,点击下载 nvm 并且安装 进入nvm的github: GitHub - coreybutler/nvm-windows: A node.js version management utility for Windows. Ironically written in Go. 这里下载发行版,Releases coreybutler/nvm-windows GitHub 找到 这个 nv…

求正方形阴影部分面积

正方形边长6,求阴影部分面积 xy6① vw6② 1/26v1/23x1/263③ 1/26v1/26y1/266④ ③是左下角三角形的面积,④是左上角三角形的面积。 求解方程组得到x2 阴影部分面积1/2*3x3.

【教程】Jetson安装PyQt5和CUDA版OpenCV

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,请不吝给个[点赞、收藏、关注]哦~ 安装PyQt5 注意目前似乎只支持Python3.6!!! sudo apt install pyqt5* -y sudo apt-get install python3-pyqt…

JeeSite Vue3:前端开发页面如何动态设置菜单展示模式?

推荐阅读: JeeSite Vue3:前端开发的未来之路(更新版) 随着技术的飞速发展,前端开发技术日新月异。在这个背景下,JeeSite Vue3 作为一个基于 Vue3、Vite、Ant-Design-Vue、TypeScript 和 Vue Vben Admin 的前端框架,引…

SpringCloud------Feign,Geteway

Feign 所以我们使用一门新的技术&#xff1a;声明式的http客户端Feign 第一步&#xff1a;引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> …

翻译《The Old New Thing》- Taxes: Remote Desktop Connection and painting

Taxes: Remote Desktop Connection and painting - The Old New Thinghttps://devblogs.microsoft.com/oldnewthing/20060103-12/?p32793 Raymond Chen 2006年01月03日 开发成本&#xff1a;远程桌面连接和绘制 当用户通过远程桌面连接进行连接时&#xff0c;视频操作会通过网…

Centos 7.9 安装 tigervnc-server

环境&#xff1a;当前使用的 Centos 7.9 的光盘作为的本地源&#xff0c;或使用离线rpm包。 1 检查是否已安装 tigervnc [rootlocalhost /]# rpm -q tigervnc tigervnc-server 未安装软件包 tigervnc tigervnc-server-1.8.0-21.el7.x86_64 如果安装过卸掉 卸载: rpm -e [ro…