声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1274|回复: 2

[HHT] 急求1个非riling算法的程序,不胜感激!!

[复制链接]
发表于 2010-4-27 10:19 | 显示全部楼层 |阅读模式

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

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

x
正在做一个比较采用riling算法和不采用riling算法所得结果优越性的实验,求其相关系数。
所以需要一个不采用riling算法的程序。
回复
分享到:

使用道具 举报

发表于 2010-4-27 20:37 | 显示全部楼层
基本都是riling算放及其相关的延伸,
我这里有一个忘记从哪里下载的了,给你看一下希望对你有所帮助,此外EEMD(x,0,1)也跟emd一样,建议你看一下。
function imf = emd(x)
% Empiricial Mode Decomposition (Hilbert-Huang Transform)
% imf = emd(x)
% Func : findpeaks

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;

% FUNCTIONS

function u = ismonotonic(x)

u1 = length(findpeaks(x))*length(findpeaks(-x));
if u1 > 0, u = 0;
else,      u = 1; end

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);
 楼主| 发表于 2010-5-10 11:17 | 显示全部楼层

回复 沙发 杨德昌 的帖子

好的,谢谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-29 09:40 , Processed in 0.050938 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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