算法是一种结合了经验傅里叶分解与希尔伯特变换的非平稳信号时频分析方法,通过自适应频谱分割技术将信号分解为多个本征模态成分,利用多重噪声抑制机制提高在噪声环境下的鲁棒性,采用重分配技术提升时频分辨率,并通过多准则筛选机制确保分解的有效性和可靠性。算法集成了现代信号处理中的多种先进技术,包括自适应阈值检测、Teager能量算子、全变分去噪和时频重分配,为机械故障诊断、生物医学信号分析、地震信号处理等领域的非平稳信号分析提供了一套解决方案。
算法特点
自适应频谱分割:采用scipy的find_peaks函数进行精确峰值检测,结合自适应阈值和最小显著性要求,能够智能识别频谱中的有效成分。
多重噪声抑制机制:
Welch功率谱估计结合多段平均降低噪声影响
高斯滤波平滑频谱
对分解成分进行小波或全变分去噪
基于能量和相关性筛选成分
高级边界检测技术:
自动检测峰值并寻找相邻峰值间的谷值作为分割边界
支持自适应阈值调整
边界归一化处理确保一致性
多方法瞬时参数估计:
标准希尔伯特变换法
Teager能量算子法(对噪声更鲁棒)
重分配技术(提高时频分辨率)
改进的时频表示:
支持能量重分配策略
可选的频率对数尺度
自适应时频分辨率调整
智能成分筛选:
基于能量比、相关性、显著性的多准则筛选
放宽筛选条件以避免过度剔除有效成分
长度不一致时的自动插值处理
全面的预处理和后处理:
信号去趋势和标准化
镜像扩展减少边界效应
多尺度平滑和滤波
算法步骤
信号预处理阶段:
对输入信号进行去线性趋势处理
标准化信号到零均值和单位方差
功率谱估计阶段:
如果提供采样频率,使用多段Welch方法估计功率谱
否则使用FFT并结合高斯滤波平滑频谱
插值到统一频率分辨率
频谱分割阶段:
使用find_peaks检测频谱峰值
按显著性排序并保留前N个主要峰值
在相邻峰值间寻找谷值作为分割边界
归一化边界到[0, π]范围
信号分解阶段:
对原始信号进行镜像扩展
基于检测到的边界设计理想带通滤波器
分别提取各频段成分
对每个成分进行去噪处理
截取有效部分去除扩展镜像
成分筛选阶段:
计算每个成分的能量占比
计算成分与原始信号的相关性
基于显著性、能量比和相关性多准则筛选
只保留显著有效的成分
时频分析阶段:
对每个成分计算瞬时频率和幅度
可选择Teager能量算子或重分配技术
生成时频能量分布矩阵
可选的重分配平滑处理
结果可视化阶段:
绘制原始信号与噪声信号对比
显示分解得到的各个成分
绘制时频表示图
显示傅里叶谱和检测到的边界
展示重建误差分析