📄 gp_cd.m
字号:
% GP算法求关联维
% the function is used to calculate correlation dimention with G-P algorithm
% data:the time series
% N: the length of the time series
% tau: the time delay
% m:the embedded dimention m
clc
clear
close all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 调入试验数据
load f511x1_del_moving.txt;
x=f511x1_del_moving; % 时间序列(列向量)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 调入试验数据
x = fun_normalize_1(x); % 归一化
data=x'; % 注意:此处应为一个行向量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp('======= GP算法求关联维 ========');
tau = 14; % 希腊字母 tau 代表时延
m = 6; % 嵌入维
logdelt = 0.2;
ln_r = [-7:logdelt:0];
delt = exp(ln_r);
for k=1:length(ln_r)
r=delt(k);
%C(k)=fun_correlation_integral_distance(m,data,r,tau); %输出变量为关联积分,用计算空间距离的方法
C(k)=fun_correlation_integral_max(m,data,r,tau); %输出变量为关联积分,用每维最大值的方法
k
if (C(k)<0.0001)
C(k)=0.0001;
end
ln_C(k)=log(C(k)); %lnC(r)
end
C
subplot(211)
plot(ln_r,ln_C,'*:');grid;
xlabel('ln r'); ylabel('ln C(r)');
hold on;
subplot(212)
Y = diff(ln_C)./logdelt;
plot(Y,'+:'); grid;
xlabel('n'); ylabel('slope');
hold on;
%------------------------------------------------------
% 拟合线性区域
ln_Cr=ln_C;
ln_r=ln_r;
LinearZone = [10:25];
F = polyfit(ln_r(LinearZone),ln_Cr(LinearZone),1);
CorrelationDimension = F(1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -