增强自适应经验傅里叶分解(Enhanced Adaptive Empirical Fourier Decomposition, EAEFD)
算法公式与流程说明
1. 核心公式
2. 算法流程
信号傅里叶变换:计算信号的FFT频谱
频谱极大值检测:通过峰值检测识别显著频率成分
构建频谱包络:使用三次样条插值连接极大值点
基于包络幅值设置动态阈值
确定满足条件的频率边界点
频带分割与IMF重构:
将频谱按边界划分为若干频带
对每个频带进行逆傅里叶变换得到IMF
最优模态数选择:通过包络熵最小化确定最终IMF数量
部分代码如下:
import numpy as np
from scipy.fft import fft, fftfreq, ifft
from scipy.signal import find_peaks, hilbert
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt
def compute_envelope_entropy(signal):
"""
计算信号的包络熵 (核心优化指标)
公式: H = -Σ (p_i * log p_i), 其中 p_i = envelope[i]/Σenvelope
"""
analytic_signal = hilbert(signal) # 希尔伯特变换获取解析信号
envelope = np.abs(analytic_signal) # 计算包络
p = envelope / np.sum(envelope) # 归一化为概率分布
p = p[p > 0] # 避免log(0)错误
entropy = -np.sum(p * np.log(p)) # 香农熵计算
return entropy
知乎学术付费咨询(哥廷根数学学派):
担任《Mechanical System and Signal Processing》《中国电机工程学报》等期刊审稿专家,擅长领域:信号滤波/降噪,机器学习/深度学习,时间序列预分析/预测,设备故障诊断/缺陷检测/异常检测。