相空间重构中延迟时间tau的选择:自相关法(matlab实现)

相空间重构技术中有两个关键参数:延迟时间tau和嵌入维数m

使用自相关法确定延迟时间tau,主要思想在于通过计算原信号的自相关函数,找到自相关函数值下降到初始值R(0)时的1-1/e倍时的延迟时间tau。此时的tau的选取可以在一定程度上保证相邻的两个值得关联性不会太相关,也不会太独立。(具体的理论内容可以百度相空间重构)

function [tau]=autocorrelation_tau(data)
%tau为自相关函数法求出的最佳时延
%data为原始数据

n=length(data);     %n为原始数据的长度
data_r=xcorr(data,data);        %计算自相关函数
R0=data_r(n);        %得到自相关函数初值R0
R0_d=R0*(1-1/exp(1));        %R0_d为R0下降到1-1/e倍时的值
R=R0;        %初始化自相关函数值

for t=1:1:100     %延迟t最大值设为100
    if ((R/R0_d)<(10/9)) && ((R/R0_d)>(9/10))    %循环终止条件:自相关函数值初始值的1-1/e倍附近
        break
    else
        R=data_r(n+t);      %得到移位后的自相关函数
    end
end

tau=t-1;        %for循环中要到满足条件的下一次才会停止,所以tau要由t减去1

figure();       %画出自相关函数
plot(data_r);
title('data的自相关函数');

end

你可能感兴趣的:(matlab,matlab,算法,学习)