回复 3楼 的帖子
我有一个问题,照楼主的说法步长都是1了,相空间重构不是这样定义的吗?y(n)=,步长应该是t才对啊? 我明白了,是我理解错了,不好意思啊!呵呵:@P 请教楼主我也是严格按照吕金虎书上的4.6-4.9图的步骤来做的
怎么求出的平均周期才是4 而起书上说要60.++
在我的程序中 直线段的两个点情况如下
21:-3.079
20:-3.099
参数完全按其书上设置 请你详细说说你当时情况好吗 我用我的CC算法跑完之后和7楼的图很想,
C_1(i)=correlation_integral(Y,N_d,r)%计算C(1,N_d,r,t)
X=reconstitution(Y,N_d,m,t)%相空间重构
N_r=N_d-(m-1)*t;
C_I(i)=correlation_integral(X,N_r,r) %计算C(m,N_r,r,t)
在自序列相空间重构的时候我的t改成1和没改只有X重构出来不一样,而计算C(m,N_r,r,t)时的C_l(i)没有变化,这是为什么啊?苦恼!请哪位指点,不胜感激! 很想——〉很像。呵呵,不好意思。
回复 11楼 的帖子
请问各位大侠,算CC用的是无穷范数还是2范数哪? 我看得参考资料里面都用得是无穷范数 我也要计算最大lyapunov指数,但自己编的程序就是不对,能把你的程序给我发一份吗,我的邮箱是yutian85@126.com 楼主我也是在看那本书感觉书上还是和我的不一样,能把你 的c-c算法程序发给我吗!万分感谢cyy2dhb@yahoo.cn回复 12楼 的帖子
在CC算法中,m的开始假设为2-5,是不是意味着最后算出的嵌入维数不能超过这个范围。能不能把我的密码还给我
有一段时间没上论坛了,忘了密码,怎么试也没弄对原先用户名 yufeiqun2008
希望斑竹帮忙啊 可以发到我以前注册的邮箱里yufeiqun2004@yahoo.com.cn
我的算法代码如下,希望能对大家有帮助
function =CC(x)%% C-C方法提取延迟时间和延迟时间窗口
% by Yu Feiqun
% 2007-12-09
N=length(x);
% 计算给定序列的标准差 deta
deta=std(x);
tmax=200;
t=1:tmax;
m=2:5;
r=1:4;
St=zeros(length(t),length(m),length(r));
%dSt=zeros(length(t),length(m),length(r));
for tt=1:length(t)
% 计算时间序列分为t个不相交的时间序列时每一时间序列的长度
L=floor(N/t(tt));
for mm=1:length(m)
for rr=1:length(r)
rjj=deta*r(rr)/2;
smrt=0;
for ss=1:t(tt)
% 提取第ss个子序列
xsub=x();
xsub=xsub();
c1=getCValue(xsub,m(mm),rjj,t(tt));
c2=getCValue(xsub,1,rjj,t(tt));
smrt=smrt+c1-c2.^m(mm);
end
St(tt,mm,rr)=smrt/t(tt);
end
end
end
S_t=sum(sum(St,3),2)/16;
dS_m_t=max(St,[],3)-min(St,[],3);
dS_t=sum(dS_m_t,2)/4;
S_cor=abs(S_t)+dS_t;
function y=getCValue(x,m,r,t)
% 计算时间序列x的关联积分
% m为嵌入维数 t为时间延迟 N为序列长度 r为半径
% 由于序列x已经经过划分,其相邻两个数据已具有时间延迟t
N=length(x);
M=N-(m-1);
% 重构相空间 嵌入维数为m 时间延迟为t
xv=zeros(m,M);
for ii=1:m
xv(ii,:)=x([((ii-1)+1):1:((ii-1)+M)]);
end
y=0;
xt=xv;
for ii=2:M
xt=circshift(xt,);
y=y+sum(Heaviside(r-max(abs(xv-xt),[],1)));
end
y=y/M/(M-1);
function y=Heaviside(x)
y=zeros(size(x));
y(find(x>=0))=1;