📄 cc_method.m
字号:
function [tau,m]=CC_Method(data)x=data;x=x'; X = [x-mean(x)]/[max(x)-min(x)]; % 归一化到均值为 0,振幅为 1maxLags = 100; % 最大时延m_vector = 2:5; % m 取值范围sigma = std(X);r_vector = sigma/2*[1:4]; % r 取值范围%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %初始化S_mean = zeros(1,maxLags);Sj = zeros(1,length(r_vector));delta_S_mean = zeros(1,maxLags);delta_S = zeros(length(m_vector),maxLags);ticfor t = 1:maxLags temp = 0; for i = 1:length(m_vector) for j = 1:length(r_vector) m = m_vector(i); r = r_vector(j); S = ccFunction0(m,X,r,t); % 文献中公式(13) temp = temp + S; % 文献中公式(17) Sj(j) = S; end delta_S(i,t) = max(Sj)-min(Sj); % delta_S(m,t),文献中公式(15) end S_mean(t) = temp/(length(m_vector)*length(r_vector)); % 文献中公式(17) delta_S_mean = mean(delta_S); % 文献中公式(18)endS_cor = delta_S_mean + abs(S_mean); % 文献中公式(19)tocfigure(1) subplot(311)plot(1:maxLags,S_mean);title('S mean');grid;subplot(312)plot(1:maxLags,delta_S_mean);title('delta S mean');grid;subplot(313)plot(1:maxLags,S_cor);title('Scor');grid;for t=1:maxLags if S_mean(t)==0 St=t; break endendfor t=1:maxLags-1 if delta_S_mean(t)<delta_S_mean(t+1) tau=t; break endend TscorV=min(S_cor);for t=1:maxLags if TscorV==S_cor(t) Tscor=t; break endendm=round(Tscor/tau)+1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -