✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
经验模态分解(Empirical Mode Decomposition,EMD)是一种非常有效的信号分解方法,可以将信号分解成多个本征模态函数(Intrinsic Mode Functions,IMF),每个IMF都具有自我调整的特性。然而,传统的EMD方法在处理非线性和非平稳信号时存在一些问题,例如模态混叠、模态过多等。
为了解决这些问题,时变滤波的经验模态分解(Time-Varying Filtered Empirical Mode Decomposition,TVF-EMD)被提出。TVF-EMD方法在传统EMD的基础上引入了时变滤波器,可以在分解过程中对信号进行滤波,从而提高了EMD方法的性能。
TVF-EMD方法的基本步骤如下:
-
对原始信号进行预处理,去除趋势项和高频噪声。
-
构造时变滤波器,对信号进行滤波。
-
提取信号的本征模态函数,直到剩余信号为单调函数为止。
TVF-EMD方法的优点在于可以避免传统EMD方法中的模态混叠和模态过多问题,同时还可以对信号进行滤波,提高分解的精度和稳定性。此外,TVF-EMD方法还可以应用于非线性和非平稳信号的分解,具有广泛的应用前景。
总之,TVF-EMD方法是一种非常有效的信号分解方法,可以在处理非线性和非平稳信号时提高分解的精度和稳定性。未来,TVF-EMD方法还有很多可以探索的方向,例如如何进一步提高分解的速度和精度,以及如何应用于更复杂的信号分析问题等。
📣 部分代码
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据
res = xlsread('数据集.xlsx');
%% 划分训练集和测试集
temp = randperm(357);
P_train = res(temp(1: 240), 1: 12)';
T_train = res(temp(1: 240), 13)';
M = size(P_train, 2);
P_test = res(temp(241: end), 1: 12)';
T_test = res(temp(241: end), 13)';
N = size(P_test, 2);
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
t_train = ind2vec(T_train);
t_test = ind2vec(T_test );
⛳️ 运行结果
🔗 参考文献
[1] 王开德,韩凯凯.基于时变滤波经验模态分解的轴承故障诊断[J].制造技术与机床, 2018, 000(012):42-46.
[2] 王开德,韩凯凯.基于时变滤波经验模态分解的轴承故障诊断[J].制造技术与机床, 2018(12):5.DOI:CNKI:SUN:ZJYC.0.2018-12-023.
[3] 周翀.基于时变滤波经验模态分解的转子系统故障诊断[D].华北电力大学(保定)[2023-12-15].