notemple 发表于 2010-5-3 20:54

关于CC 方法计算时间延迟和嵌入维数

我已经通过CC方法计算出了时间序列的delt_s和s_cor,但不是很清楚哪个是时间延迟,哪个是嵌入维数。

红点是s_cor,绿点是delt_s。
看了winterdij的帖子http://forum.vibunion.com/forum/viewthread.php?tid=50792&extra=&highlight=%D2%C9%CE%CA%A3%BA%B9%D8%D3%DACC%2B%B7%BD%B7%A8%BC%C6%CB%E3%CA%B1%BC%E4%D1%D3%B3%D9%BA%CD%C7%B6%C8%EB%CE%AC%CA%FD&page=1
还是有点不清楚。
是不是蓝线的第一个局部最小对应的横坐标为时间延迟?
s_cor(即红点)的最小值对应的横坐标为嵌入维数?


请指点一下。


另问
1、该结果是用skyhawk的程序算的,该程序中横坐标只算到20,而陆振波博士的做的CC程序中是算到200的,这个数值在一般情况下取多少合适?
2、原数据是一个5阶系统在随机信号下的仿真结果,理论上其嵌入维数不是应该是5吗?为什么结果是这样的?

notemple 发表于 2010-5-5 15:48

有人指点一下吗?急求啊!!!

zj409904412 发表于 2010-5-5 21:42

原帖由 notemple 于 2010-5-3 20:54 发表 http://www.chinavib.com/forum/images/common/back.gif
我已经通过CC方法计算出了时间序列的delt_s和s_cor,但不是很清楚哪个是时间延迟,哪个是嵌入维数。
45098
红点是s_cor,绿点是delt_s。
看了winterdij的帖子http://www.chinavib.com/forum/viewthread.php?tid=5 ...
能把计算的代码给我一份不?谢谢
409904412@163.com

wyk_1216 发表于 2010-5-11 09:19

delt_s第一个极小值是 时间延迟
scor_s最小值是嵌入窗口据我所知

notemple 发表于 2010-5-11 11:07

回复 6楼 wyk_1216 的帖子

多谢,多谢,非常感谢

notemple 发表于 2010-5-11 11:07

回复 5楼 zj409904412 的帖子

已经寄过去了请查收

notemple 发表于 2010-5-11 11:19

回复 6楼 wyk_1216 的帖子

再请问一下那条蓝线表示的是什么意思?或者说能够看出什么结果?

从图中看的delt_s第一个极小值为7(时间延迟)
               scor_s的最小值为8(嵌入窗口)
根据
嵌入窗口=时间延迟×(嵌入维数+1)/3

得到嵌入维数为2?

可是我实际上是5阶的方程得到的结果,嵌入维数不应该是5吗?

[ 本帖最后由 notemple 于 2010-5-11 11:36 编辑 ]

wyk_1216 发表于 2010-5-11 15:37

回复 9楼 notemple 的帖子

为什么你的蓝线没有穿过纵轴值为零的直线呢 怎么全在零上面 我也不清楚 我也只是知道一些 问问高手 看怎么解释
正常的话 我感觉应该会穿过零
嵌入窗口=(m-1)×时间延迟 还是你的那个式子 哪个对啊?

notemple 发表于 2010-5-11 17:16

请高手指点!!!!

zhl20062159 发表于 2010-5-13 20:32

回复 9楼 notemple 的帖子

就是啊,嵌入窗口Tw不是应该=(m-1)×时间延迟tau么?在运行CC程序后,可用下述程序找出Tw和tau
% 寻找时间延迟tau:即Sdeltmean第一个极小值点对应的t
for i=2:length(delt_s)-1
    if delt_s(i)<delt_s(i-1)&delt_s(i)<delt_s(i+1)
      tau=i;
      break;
    end
end
% 寻找时间窗口tw:即Scor最小值对应的t
for i=1:length(s_cor)
    if s_cor(i)==min(s_cor)
      tw=i;
      break;
    end
end

zhl20062159 发表于 2010-5-13 20:59

对于楼主说的第一个问题,t 的取值与你的总的输入点数N有关,因为在把N个点分成t 个不相关的时间序列后,每个时间序列长度为N/t,在对子序列进行相空间重构时,需满足
N/t 大于(m-1)t,(t=tau).m=2:5这样就能算出t的最大值,如N=4000,4000/t>4t求出t<31.6,个人理解,仅供参考哈!
我之前也试过,当 t 取得较大时不满足上述关系,在重构相空间处会报错,就算满足上式,t 较大时(如大于25时),运行时间超级长。其实我有些不明白为什么CC算法程序中在子序列相空间重构时会将 t 作为时间延迟tau来处理。还请大家多多指教啊~~

notemple 发表于 2010-5-13 21:12

回复 12楼 zhl20062159 的帖子

非常感谢您的指点,谢谢

notemple 发表于 2010-5-13 21:14

回复 13楼 zhl20062159 的帖子

对于这个t不知道为什么加大,会加长运算时间。只是如果m取值比较大,会明显加大计算量,变得很慢

zhl20062159 发表于 2010-5-14 10:51

回复 15楼 notemple 的帖子

在Chaos Toolbox Ver.2.0工具箱中的C_C算法里,一级循环不是对 t 的循环么?根据吕金虎《混沌时间序列分析及其应用》那本书里讲的CC算法,m一般取值为2:5吧。当然我在通过C_C算法求的嵌入维数 m和时间延迟tau后带入到G_P算法里,有增加m值的,这样运算起来也是比较慢滴~

海上飞鱼 发表于 2010-6-2 13:27

回复 16楼 zhl20062159 的帖子

你好,能否将Chaos Toolbox Ver.2.0工具箱给我发一份,我到处都下不到,谢谢啦!
页: [1] 2
查看完整版本: 关于CC 方法计算时间延迟和嵌入维数