法国人版EMD经验模态分解工具箱 (FrenchEMD Toolbox)
项目介绍
FrenchEMD Toolbox 是一个基于MATLAB平台开发的完整经验模态分解(EMD)算法实现工具箱。该工具箱专为分析非平稳、非线性信号设计,提供从信号预处理到希尔伯特时频分析的全套功能。工具箱包含法语注释的详细帮助文档及典型应用案例,特别适用于生物医学信号处理、机械振动分析等领域的科研与工程应用。
功能特性
- 完整的EMD算法实现:包含极值点识别、包络线生成(三次样条插值)、本征模态函数(IMF)筛分提取等核心步骤
- 自适应分解参数:支持SD/SC等多种筛分停止准则,可根据信号特性自动调整分解深度
- 多维分析输出:提供IMF分量矩阵、残余趋势项、希尔伯特边际谱等完整分析结果
- 交互式可视化界面:支持分解过程实时动画展示,可生成.gif动态图示
- 智能参数预设:通过信号类型标识(如'ECG'、'Vibration')自动调用优化分解参数
- 质量评估体系:内置IMF正交性指数、能量占比等多种分解质量指标
使用方法
基本调用方式
% 载入信号数据(.mat文件或向量)
signal = load('demo_data.mat');
fs = 1000; % 设置采样频率
% 执行EMD分解(使用默认参数)
[imfs, residue] = frenchEMD(signal, 'Fs', fs);
% 使用预设参数(ECG信号优化)
[imfs, residue] = frenchEMD(ecg_signal, 'Type', 'ECG', 'Fs', 250);
高级参数设置
% 自定义筛分参数与可视化选项
[imfs, residue, spectra] = frenchEMD(signal, ...
'SD_Threshold', 0.2, ... % 设置筛分阈值
'Max_IMF', 10, ... % 最大IMF数量限制
'Animation', true, ... % 启用分解动画
'Hilbert', true); % 计算希尔伯特谱
结果可视化与导出
% 生成希尔伯特边际谱图
plot_hilbert_spectrum(imfs, fs);
% 导出分解过程动画(GIF格式)
export_emd_animation(imfs, residue, 'decomposition.gif');
系统要求
- 操作系统:Windows 10/11, Linux(Ubuntu 16.04+), macOS(10.14+)
- MATLAB版本:R2018b及以上
- 必要工具箱:Signal Processing Toolbox, Curve Fitting Toolbox(用于样条插值)
- 推荐配置:4GB以上内存,支持OpenGL的显卡(用于流畅动画显示)
文件说明
主程序文件整合了工具箱的核心处理流程,实现了信号输入验证与参数初始化、基于极值点检测与三次样条插值的包络线拟合计算、采用自适应停止准则的多层IMF筛分提取、希尔伯特变换与瞬时频率分析、多种可视化图形输出生成以及分解质量指标自动评估等主要功能模块。