资源简介
包含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仿真
相关资源
- MATLAB 经典程序源代码大全
- 克里金插值程序国外一个基金支持下
- 天线阵的波束形成在MATLAB仿真程序及
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- Matlab实现基于相关的模板匹配程序
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- optical_flow 光流法 matlab 实现程序
- 替代数据法的matlab程序
- 通过不同方法进行粗糙集属性约简m
- 神经网络分类matlab程序
- matlab程序用Hopfield网络解决TSP
- 实例matlab 编程100个常用程序
- 多用户检测MATLAB程序
- 实现2ask.4ask.2fsk.4fsk.qam16.qam8调制的m
- 基于MATLAB的线性控制系统分析与设计
- matlab版的车牌识别程序
- 数字信号处理 matlab实验源程序吴镇扬
- matlab编写的susan算法程序
- vc下实现的分段线性插值、二次多项式
- CRC循环冗余校验的matlab仿真程序
- 曲线旋转得到曲面的MATLAB程序
- MATLAB实现混沌图像加密仿真程序
- 主动轮廓模型算法matlab程序
- 基于BP神经网络的盲均衡算法 C程序(
- Lozi混沌系统相关分析的MATLAB程序
- 一个用MATLAB编写的用于估计信号谐波
- 图像匹配matlab源程序sift算法
- 用蚁群算法求解TSP问题的matlab程序
评论
共有 条评论