资源简介
包含IMF本征模函数,包含信号频谱分析等详细代码,有详细注释
代码片段和文件信息
function imf = emd(x)
% Empiricial Mode Decomposition (Hilbert-Huang Transform)
% EMD分解或HHT变换
% 返回值为cell类型,依次为一次IMF、二次IMF、...、最后残差
x = transpose(x(:));
imf = [];
while ~ismonotonic(x)
x1 = x;
sd = Inf;
while (sd > 0.1) || ~isimf(x1)
s1 = getspline(x1); % 极大值点样条曲线
s2 = -getspline(-x1); % 极小值点样条曲线
x2 = x1-(s1+s2)/2;
sd = sum((x1-x2).^2)/sum(x1.^2);
x1 = x2;
end
imf{end+1} = x1;
x = x-x1;
end
imf{end+1} = x;
% 是否单调
function u = ismonotonic(x)
u1 = length(findpeaks(x))*length(findpeaks(-x));
if u1 > 0
u = 0;
else
u = 1;
end
% 是否IMF分量
function u = isimf(x)
N = length(x);
u1 = sum(x(1:N-1).*x(2:N) < 0); % 过零点的个数
u2 = length(findpeaks(x))+length(findpeaks(-x)); % 极值点的个数
if abs(u1-u2) > 1
u = 0;
else
u = 1;
end
% 据极大值点构造样条曲线
function s = getspline(x)
N = length(x);
p = findpeaks(x);
s = spline([0 p N+1][0 x(p) 0]1:N);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-20 15:02 经验模态分解\
文件 1089 2018-07-20 15:01 经验模态分解\emd.m
文件 208 2018-07-20 15:01 经验模态分解\FFTAnalysis.m
文件 911 2018-07-20 15:00 经验模态分解\findpeaks.m
文件 235 2018-07-20 15:02 经验模态分解\HilbertAnalysis.m
文件 1698 2018-07-20 15:00 经验模态分解\plot_hht.m
文件 1131 2018-07-20 14:59 经验模态分解\test1.m
- 上一篇:平面桁架有限元分析matlab程序
- 下一篇:报童问题的matlab仿真
相关资源
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- matlab空间桁架计算程序
- newmark法源程序
- 用matlab写的有限元程序-FEM2DL_Box.m
- KF+EKF matlab程序实现
- Matlab多元统计分析程序
- 水和水蒸气热力性质计算程序代码m
- 多重分形Qcc检验程序
- 清洁机器人路径规划matlab仿真程序
- SRC的程序,matlab的,很有用处
- 圆拟合matlab程序,以及圆心 半径的确
- stlwritematlab程序
- 层次分析法的matlab程序
- 泊松过程的模拟及检验 matlab程序
- 小卫星多普勒频偏MATLAB仿真程序及参
- EMD 算法MATLAB 程序
- 世上最牛的23个图像跟踪算法MATLAB程序
- 散点拟合平面的MATLAB程序
- 8PSK通信系统的蒙特卡罗仿真分析 ma
- 角普法再现程序
- 信号检测与估计-理论与应用答案及
- 雷达数字配相法多波束形成仿真程序
- 通用弹道仿真计算程序V1.0-源码
- STBC 空时编码程序
- ROC曲线MATLAB程序
- 纸牌识别Matlab源程序+报告
- dijkstra算法改进的matlab程序能求出两点
- EEMD的MATLAB程序
- 基于遗传算法的机器人路径规划matl
评论
共有 条评论