使用Octave估算数据周期的最快方法是什么?

Joh*_*ohn 4 matlab signal-processing fft octave

我有一组周期性的数据(但不是正弦的).我在一个向量中有一组时间值,在第二个向量中有一组幅度.我想快速估算一下这个函数的周期.有什么建议?

具体来说,这是我目前的代码.我想近似矢量x(:,2)对矢量t的周期.最后,我想在很多初始条件下执行此操作并计算每个条件的周期并绘制结果.

function xdot = f (x,t)
         xdot(1) =x(2);
         xdot(2) =-sin(x(1));
endfunction

x0=[1;1.75];     #eventually, I'd like to try lots of values for x0(2)
t = linspace (0, 50, 200);


x = lsode ("f", x0, t)

plot(x(:,1),x(:,2));
Run Code Online (Sandbox Code Playgroud)

谢谢!

约翰

mid*_*iby 6

看一下自动关联功能.

来自维基百科

自相关是信号与其自身的互相关.非正式地,观察之间的相似性是它们之间时间分离的函数.它是一种用于寻找重复模式的数学工具,例如存在已经隐藏在噪声下的周期信号,或者识别由其谐波频率暗示的信号中的缺失基频.它通常用于信号处理,用于分析功能或一系列值,例如时域信号.

Paul Bourke描述了如何基于快速傅里叶变换(链接)有效地计算自相关函数.