rilling的EMD.m中的疑问
rilling的emd.m中的 = extr(m)应该是求极值的,其中的判断条件MODE_COMPLEX是什么意思?望高手指点!回复 #1 nacred 的帖子
把那段程序贴出来好吗?:@)回复 #1 nacred 的帖子
好像是复合模态! % computes the mean of the envelopes and the mode amplitude estimatefunction = mean_and_amplitude(m,t,INTERP,MODE_COMPLEX,ndirs)
NBSYM = 2;
if MODE_COMPLEX
switch MODE_COMPLEX
case 1
for k = 1:ndirs
phi = (k-1)*pi/ndirs;
y = real(exp(-i*phi)*m);
= extr(y);
nem(k) = length(indmin)+length(indmax);
nzm(k) = length(indzer);
= boundary_conditions(indmin,indmax,t,y,m,NBSYM);
envmin(k,:) = interp1(tmin,zmin,t,INTERP);
envmax(k,:) = interp1(tmax,zmax,t,INTERP);
end
envmoy = mean((envmin+envmax)/2,1);
if nargout > 3
amp = mean(abs(envmax-envmin),1)/2;
end
case 2
for k = 1:ndirs
phi = (k-1)*pi/ndirs;
y = real(exp(-i*phi)*m);
= extr(y);
nem(k) = length(indmin)+length(indmax);
nzm(k) = length(indzer);
= boundary_conditions(indmin,indmax,t,y,y,NBSYM);
envmin(k,:) = exp(i*phi)*interp1(tmin,zmin,t,INTERP);
envmax(k,:) = exp(i*phi)*interp1(tmax,zmax,t,INTERP);
end
envmoy = mean((envmin+envmax),1);
if nargout > 3
amp = mean(abs(envmax-envmin),1)/2;
end
end
else
= extr(m)
nem = length(indmin)+length(indmax);
nzm = length(indzer);
= boundary_conditions(indmin,indmax,t,m,m,NBSYM);
envmin = interp1(tmin,mmin,t,INTERP);
envmax = interp1(tmax,mmax,t,INTERP);
envmoy = (envmin+envmax)/2;
if nargout > 3
amp = mean(abs(envmax-envmin),1)/2;
end
end
end 原帖由 nacred 于 2007-11-1 21:18 发表 http://www.chinavib.com/forum/images/common/back.gif
% computes the mean of the envelopes and the mode amplitude estimate
function = mean_and_amplitude(m,t,INTERP,MODE_COMPLEX,ndirs)
NBSYM = 2;
if MODE_COMPLEX
switch MODE ...
请看flandrin的最新文章,相信文章标题会在 emd.m 的帮助信息中有说明 谢谢!:@)
页:
[1]