鲁棒自适应经验傅里叶分解(Robust Adaptive EFD, RA-EFD)方法,引入包络平滑策略、改进动态测度计算和增加频带合并机制
算法流程
开始
↓
[FFT频谱分析] → 获取幅度谱M(f)
↓
[极大值检测] → 定位频谱峰{f_p}
↓
[PCHIP插值] → 生成初始包络E₀(f)
↓
[包络平滑] → 生成最终包络E(f)
↓
[梯度动态测度计算] → 计算曲率变化DM_i
↓
[自适应阈值分割] → 确定候选分割点
↓
[频带合并] → 合并小带宽区间
↓
[AFIBF重构] → 频带滤波+IFFT
↓
[能量筛选] → 去除无效分量
↓
[Hilbert参数提取] → 获取时频特征
↓
结束
关键改进说明
PCHIP插值与包络平滑:
interp = PchipInterpolator(...) # 代替CubicSpline
envelope = savgol_filter(...) # 增加平滑处理
2. 梯度动态测度:
grad = np.gradient(envelope[env_peaks])
dynamic_measure = np.abs(grad[1:] - grad[:-1]) # 二阶差分
3.自适应阈值与频带合并:
th = th_ratio*(median + 0.5*std) # 鲁棒阈值
delta_f < min_bandwidth → merge # 频带合并
4.能量后处理:
energies = [np.sum(c**2) for c in afibfs]
afibfs = [c for c, e in ... if e > 0.1*median] # 能量筛选
保留能量大于中值10%的有效分量
部分代码如下:
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import hilbert, find_peaks, savgol_filter
from scipy.interpolate import PchipInterpolator
def ra_efd(signal, fs, th_ratio=0.4, min_bandwidth=10, smooth_win=15):
"""
鲁棒自适应经验傅里叶分解 (Robust Adaptive EFD)
参数:
signal: 输入信号 (1D array)
fs: 采样频率 (Hz)
th_ratio: 动态测度阈值系数
min_bandwidth: 最小频带宽度 (Hz)
smooth_win: 包络平滑窗口长度
返回:
afibfs: AFIBF分量列表
params: 各分量Hilbert参数
cut_points: 频带分割点
"""
n = len(signal)
t = np.arange(n)/fs
freq = np.fft.fftfreq(n, 1/fs)
# ===== 1. 预处理 =====
fft_signal = np.fft.fft(signal)
magnitude = np.abs(fft_signal)/n
# ===== 2. 鲁棒包络提取 =====
# 仅处理正频率部分
pos_freq = freq[:n//2]
pos_mag = magnitude[:n//2]
# 寻找极大值点 (增加最小高度限制)
peaks, _ = find_peaks(pos_mag, distance=5, height=np.median(pos_mag))
if len(peaks) < 2:
return [signal], [], [0, n//2]
# PCHIP插值 (保持单调性)
interp = PchipInterpolator(pos_freq[peaks], pos_mag[peaks])
envelope = interp(pos_freq)
# 包络平滑
envelope = savgol_filter(envelope, smooth_win, 3)
# ===== 3. 鲁棒动态测度计算 =====
# 检测平滑后包络极大值
env_peaks, _ = find_peaks(envelope, distance=5)
if len(env_peaks) < 2:
return [signal], [], [0, n//2]
# 计算梯度动态测度
grad = np.gradient(envelope[env_peaks])
dynamic_measure = np.abs(grad[1:] - grad[:-1]) # 二阶差分
知乎学术付费咨询(哥廷根数学学派):
担任《Mechanical System and Signal Processing》《中国电机工程学报》等期刊审稿专家,擅长领域:信号滤波/降噪,机器学习/深度学习,时间序列预分析/预测,设备故障诊断/缺陷检测/异常检测。