声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2112|回复: 0

[混合编程] 计算时间序列数据点单一分形盒维数

[复制链接]
发表于 2015-5-15 19:53 | 显示全部楼层 |阅读模式

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

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

x
我这有一个计算时间序列数据点单一分形盒维数的Matlab程序,分享一下。
T=0.5*mean(x);
p=11;%p即最终需要画的点的数目或划分盒子的次数
  for j=1:(p-1)
      n(j+1)=round(10^(j*((log10(length(x)))/(p-1))));
  end
  n(1)=1;%n为每次划分的份数
  L=n.\length(x);%每次的盒子长度
  L=sort(L);%L为升序排列
  n=fliplr(n);%n为降序排列
  %以下部分求N值   
  
      for i=1:p
          N(i)=0;
          for j=1:n(i)
              m(j+1)=round(j*L(i));
          end
          m(1)=1;
          %m表示在每次划分盒子下,每个划分点在时间轴上的坐标值(即横轴值)
          for k=1:n(i)
          t=x(m(k):m(k+1));%对每个时间序列间隔构造一个新的时间序列
              if length(find(t>T))~=0
                 N(i)=N(i)+1;
              else N(i)=N(i)
              end
          end
          N(i);
      end
     a=log10(L);b=log10(N);
  plot(a,b,'*')
  a
  b

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 16:15 , Processed in 0.054185 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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