www.gusucode.com > 混沌时间序列工具箱 > 混沌时间序列工具箱/ChaosToolbox1p0_trial/DelayTime_Others/AverageDisplacement.m
function [tau] = AverageDisplacement(X,maxLags,m) % 平均位移法求混沌时间序列重构的时间延迟(已知 m,求 tau) % 输入参数:X 混沌时间序列 % maxLags 最大时间延迟 % m 嵌入维 % 输出参数:tau 时间延迟 % % 参考文献:吕金虎.混沌时间序列分析与应用.P62 % maxLags = maxLags + 1; % 因为后面要做一个差分,所以这里要加1 S_tau = zeros(1,maxLags); for tau = 1:maxLags xn = PhaSpaRecon(X,tau,m); % 重构相空间 xn_cols = size(xn,2); temp = zeros(1,xn_cols); for i = 2:m temp = temp + (xn(i,:) - xn(1,:)).^2; end S_tau(tau) = mean(sqrt(temp)); % tau 所对应的平均位移 end % 当波形斜率第一次降为初始斜率的 0.4 以下时的 tau 即为所求 (tau 从 1 开始) slope = diff(S_tau); % 相邻 tau 之间的斜率 rate = 0.4; gate = slope(1)*rate; temp = find(slope<=gate); if (isempty(temp)) disp('err: max delay time is too small!') tau = []; else tau = temp(1); end