HHT信号处理技术及多算法性能对比研究
项目介绍
本项目专门用于研究和对比希尔伯特-黄变换(HHT)及其核心组件经验模态分解(EMD)的多种实现逻辑。研究重点在于分析不同停止准则(Stopping Criteria)对非平稳、非线性信号分解效果的影响。项目通过模拟法国研究者 G. Rilling、台湾中央大学 EEMD 核心思想以及 plot_hht 程序包的逻辑,从运行效率、正交性指标(IO)以及时频分布准确性三个维度进行深度评估。
---
功能特性
- 自主实现 EMD 核心算法:不依赖 MATLAB 内置工具箱函数,完整实现了从极值点检测、三次元样条插值包络构造到筛选(Sifting)终止判定的全过程。
- 多准则性能对比:通过设定不同的标准差(SD)阈值和逻辑判定,模拟三种主流 HHT 算法分支的执行效果。
- 三位一体终止判定:程序严格执行了驻留分量单调性判定、极值点与零点个数差值判定($le 1$)以及基于标准差(SD)的精细化筛选终止逻辑。
- 精细化时频分析:集成希尔伯特变换(Hilbert Transform)提取信号的瞬时频率与瞬时振幅,并生成三维能量分布的 HHT 谱。
- 客观定量评估:引入指交性指标(Index of Orthogonality),定量衡量分解出的本征模态函数(IMF)之间的正交程度,评估模态混叠抑制效果。
---
使用方法
- 启动 MATLAB 软件(建议版本 R2018b 或更高)。
- 将包含本项目主程序的文件夹设置为当前工作路径。
- 在命令行窗口输入主程序名称并回车。
- 程序将自动生成两组可视化结果:一组为各级本征模态分量(IMF)的时域波形,另一组包含 HHT 时频谱以及三种算法的耗时与正交性指标对比柱状图。
- 控制台将输出详细的性能对比报告。
---
系统要求
- 运行环境:MATLAB R2016a 及以上版本。
- 必备工具箱:由于使用了 hilbert 函数,环境需安装 Signal Processing Toolbox(信号处理工具箱)。
- 硬件建议:主频 2.0GHz 以上 CPU,4GB 以上内存以确保样条插值在高频率采样下的运行效率。
---
核心实现逻辑说明
主程序按照以下流程顺序执行:
- 多分量信号合成:
构造了一个复杂的非平稳测试信号,包含调频分量(FM)、低频余弦分量以及一个二次函数趋势项。这种组合能有效测试算法对时变频率捕捉和趋势项分离的能力。
- 多算法并行仿真循环:
采用循环结构,分别设定 SD 阈值为 0.05(严苛准则)、0.2(宽松准则)及 0.1(经典准则)。每轮循环内部调用核心分解引擎,并使用计时器(tic/toc)监测计算开销。
- 筛选过程(Sifting Process)控制:
在每一级 IMF 的提取过程中,程序通过寻找局部最大值和最小值来建立上下包络线。核心算法采用三次元样条插值(Spline Interpolation)拟合包络。当信号满足指定的 SD 阈值且极值点个数与过零点个数相差不大于 1 时,当前分量被判定为 IMF。
- 残余分量与收敛判定:
当剩余信号的极值点少于 5 个时,程序判定信号进入单调状态或呈现简单趋势,从而终止外层的本征模态提取循环。
- 时频特征提取:
针对分解出的 IMF 分量,利用希尔伯特变换构造解析信号。通过对相位进行展开(Unwrap)并求导,计算出瞬时频率;同时对频率值进行平滑处理,滤除样条插值端点效应产生的数值噪声。
---
关键算法与函数解析
这是项目的算法核心。它封装了双重循环结构:外层用于循环提取不同的 IMF 阶数,内层执行筛选迭代。它支持动态调整标准差限制,从而控制分解的精细度。
基于一阶差分原理检测信号的峰值和谷值。为了缓解 EMD 算法中的端点效应,程序在极值点序列的首尾强制加入了信号边界点,增强了包络线在时间轴两端的稳定性。
- HHT 参数计算逻辑(calculate_hht_params):
该部分实现了复信号的转换。它不仅计算了瞬时物理参数,还包含了对非法频率值(负频率或超过奈奎斯特频率的项)的清洗判据,确保了 HHT 谱的可读性。
- 正交性评估算法(calculate_orthogonality):
通过计算所有 IMF 分量与残余项两两之间的互关联能量之和,再除以原始信号的总能量,得出一个反映分解质量的 IO 值。该值越趋近于零,说明算法对信号的能量解耦越彻底。
作为算法的退出守卫,它通过监控信号的曲率变化和极值点密度,防止算法出现过度分解,确保最终的残余项(Residue)真实反映信号的演化趋势。