声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1719|回复: 3

[HHT] emd.m中的diff函数起什么作用?

[复制链接]
发表于 2007-5-23 10:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
Ivan Magrin-Chagnolleau的程序(emd.m)中,求局部最大最小值时,diff函数是求微分的意思吗?起什么作用呢,为什么要有这个函数?本人没有信号处理基础,请大虾指教~
  while SD > 0.3
            % find local max/min points
      d = diff(h); % approximate derivative
      maxmin = []; % to store the optima (min and max without distinction so far)
      for i=1:N-2
         if d(i)==0                        % we are on a zero
            maxmin = [maxmin, i];
         elseif sign(d(i))~=sign(d(i+1))   % we are straddling a zero so
            maxmin = [maxmin, i+1];        % define zero as at i+1 (not i)
         end
      end
      
      if size(maxmin,2) < 2 % then it is the residue
         break
      end
回复
分享到:

使用道具 举报

发表于 2007-5-23 10:49 | 显示全部楼层
本帖最后由 wdhd 于 2016-3-11 13:43 编辑
原帖由 dudubear2009 于 2007-5-23 10:41 发表
Ivan Magrin-Chagnolleau的程序(emd.m)中,求局部最大最小值时,diff函数是求微分的意思吗?起什么作用呢,为什么要有这个函数?本人没有信号处理基础,请大虾指教~
  while SD > 0.3
            % find  ...

极值点必定是稳定点(导数为0的点)
 楼主| 发表于 2007-5-23 11:04 | 显示全部楼层

再请问eight~

谢谢eight~
再请问,
elseif sign(d(i))~=sign(d(i+1))   % we are straddling a zero so
            maxmin = [maxmin, i+1];        % define zero as at i+1 (not i)

为什么0点在 i 和 i+1之间时,取 i+1 为极值点啊?
发表于 2007-5-23 11:10 | 显示全部楼层
本帖最后由 wdhd 于 2016-3-11 13:43 编辑
原帖由 dudubear2009 于 2007-5-23 11:04 发表
谢谢eight~
再请问,
elseif sign(d(i))~=sign(d(i+1))   % we are straddling a zero so
            maxmin = [maxmin, i+1];        % define zero as at i+1 (not i)

为什么0点在 i 和 i+1之间时,取 ...

求导后生成的向量比原向量的长度少1,取为 i+1 是比较好的方法,当然,也可以取为 i

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-7-3 21:34 , Processed in 0.086661 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表