资源简介
matlab 经验模态分解emd源代码
代码片段和文件信息
% EMD.M
%
% G. Rilling July 2002
%
% computes EMD (Empirical Mode Decomposition) according to:
%
% N. E. Huang et al. “The empirical mode decomposition and the
% Hilbert spectrum for non-linear and non stationary time series analysis“
% Proc. Royal Soc. London A Vol. 454 pp. 903-995 1998
%
% with variations reported in:
%
% G. Rilling P. Flandrin and P. Gon鏰lv鑣
% “On Empirical Mode Decomposition and its algorithms“
% IEEE-EURASIP Workshop on Nonlinear Signal and Image Processing
% NSIP-03 Grado (I) June 2003
%
% stopping criterion for sifting :
% at each point : mean amplitude < threshold2*envelope amplitude
% &
% mean of boolean array ((mean amplitude)/(envelope amplitude) > threshold) < tolerance
% &
% |#zeros-#extrema|<=1
%
% inputs: - x : analysed signal (line vector)
% - t (optional) : sampling times (line vector) (default : 1:length(x))
% - stop (optional) : threshold threshold2 and tolerance (optional)
% for sifting stopping criterion
% default : [0.050.50.05]
% - tst (optional) : if equals to 1 shows sifting steps with pause
% if equals to 2 no pause
%
% outputs: - imf : intrinsic mode functions (last line = residual)
% - ort : index of orthogonality
% - nbits : number of iterations for each mode
%
% calls: - extr (finds extrema and zero-crossings)
% - io : computes the index of orthogonality
function [imfortnbits] = emd(xtstoptst);
% default for stopping
defstop = [0.050.50.05];
if(nargin==1)
t = 1:length(x);
stop = defstop;
tst = 0;
end
if(nargin==2)
stop = defstop;
tst = 0;
end
if (nargin==3)
tst=0;
end
S = size(x);
if ((S(1) > 1) & (S(2) > 1)) | (length(S) > 2)
error(‘x must have only one row or one column‘)
end
if S(1) > 1
x = x‘;
end
S = size(t);
if ((S(1) > 1) & (S(2) > 1)) | (length(S) > 2)
error(‘t must have only one row or one column‘)
end
if S(1) > 1
t = t‘;
end
if (length(t)~=length(x))
error(‘x and t must have the same length‘)
end
S = size(stop);
if ((S(1) > 1) & (S(2) > 1)) | (S(1) > 3) | (S(2) > 3) | (length(S) > 2)
error(‘stop must have only one row or one column of max three elements‘)
end
if S(1) > 1
stop = stop‘;
S = size(stop);
end
if S(2) < 3
stop(3)=defstop(3);
end
if S(2) < 2
stop(2)=defstop(2);
end
sd = stop(1);
sd2 = stop(2);
tol = stop(3);
if tst
figure
end
% maximum number of iterations
MAXITERATIONS=2000;
% maximum number of symmetrized points for interpolations
NBSYM = 2;
lx = length(x);
sdt(lx) = 0;
sdt = sdt+sd;
sd2t(lx) = 0;
sd2t = sd2t+sd2;
% maximum number of extrema and zero-crossings in residual
ner = lx;
nzr = lx;
r = x;
imf = [];
k = 1;
% iterations counter for extraction of 1 mode
nbit=0;
% total iterations counter
NbIt=0;
while ner > 2
% current mode
m = r;
% mode at previous iteration
mp = m;
sx = sd+1;
% tests if enough extrema to pro
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-03-24 05:46 emd\
文件 7989 2004-06-04 06:49 emd\emd.m
文件 1856 2004-06-04 06:50 emd\emd_fmsin.m
文件 9869 2004-06-04 06:49 emd\emd_local.m
文件 3120 2004-06-04 06:25 emd\emd_n.m
文件 26138 2004-06-04 06:49 emd\emd_online.m
文件 891 2004-06-04 06:51 emd\emd_sampling.m
文件 1262 2004-06-04 06:51 emd\emd_separation.m
文件 2491 2004-06-04 06:50 emd\emd_visu.m
文件 1876 2006-03-21 00:24 emd\extr.m
文件 845 2004-06-04 06:49 emd\hhspectrum.m
文件 2071 2004-06-04 06:25 emd\hspec.m
文件 335 2006-10-25 14:47 emd\io.m
- 上一篇:计算卫星角度程序,包括高度角、方位角
- 下一篇:MATALB 程序.zip
相关资源
- 镜像延拓的emd程序
- 关于emd的使用的一个小,可以拿过去
- EMD EEMD VMD比较
- 经验模态分解EMD不带边界延拓的
- 经验模态分解CEEMDAN
- 加注释完整CEEMD程序的matlab代码
- emd 的改进版程序ceemd
- Matlab-EMD工具箱 + 详细安装方法
- EMD经验模态分解MATLAB源代码,非常好
- 小波去噪及EMD分解matlab相关程序
- 轴承故障分解
- Matlab-EMD工具箱+最新版emd.
- SVD分解结合ceemdan去噪
- matlab代码 CEEMD程序+注释
- 基于经验模态分解EMD去噪的matlab代码
- 希尔伯特-黄变换MATLAB程序及相关资料
- EMD程序 matlab
- 台湾中央大学的EEMD分解matlab程序
- matlab emd工具箱最新版
- emd分解 边际谱 hilbert包络解调 小波包
- EMD去噪
- matlab EMD 降噪方法
- EEMD分解求能量熵
- emd分解重构信号实现降噪
- 2_DGPlacemDataEnvelAnal
- EMD_EEMD_VMD 可用于信号的EMD、EEMD、VM
- CEEMD 法国人改进EMD的新程序
- 基于支持回归向量机的端点延拓程序
- 使用经验模态分解 (emd) 对imf进行分
- bemd 二维经验模态分解
评论
共有 条评论