声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~
今天为大家介绍一个小众而又新颖的信号分解方法,这个方法也是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