给定周期对象的 x,y,z 数据,计算对象的周期(如果可能)

计算科学 matlab 数值分析 插值
2021-12-01 10:20:32

所以我正在处理的问题就是这样。给定周期性对象随时间的 x,y,z 数据(从 3d 空间中的原点)(不必是统一的),计算对象的周期(如果给定的数据是周期性的并且可以计算)。

所以到目前为止我能想到的最好的主意是使用某种形式的插值来获得数据的函数,但我不确定如何使用该函数来计算周期。另外,如果插值是最好的方法,那么使用三次样条插值会起作用吗?

最后,由于给出的数据是 3d 的,并且到目前为止我所拥有的所有经验都是使用 2d 数据进行插值,如果我要使用三次样条插值,实际的实现将如何工作?

2个回答

实际上,有时我必须对非常大的数据集执行此操作。由于我的数据通常有点均匀分布,我发现以下过程简单而充分:

定义: ,pdata(t=0)δ(t)data(t)p2

的拐点并测量它们之间的如果拐点处的足够小(并且多个相邻拐点之间δ(t)Δtδ(t)Δt

如果您有一个非常不均匀的分布,其中 2 范数似乎不是一个好的指标,您可能会在您提到的时候对数据进行插值,然后遵循类似的过程。像光谱表示,也许是球谐函数?虽然最有效的方法取决于对象本身(它是什么?)。

  • 对于样条插值,您可以使用内置的 Matlab 调用,然后对该插值进行统一采样并使用上述方法。
  • 对于频谱表示,您可以简单地使用上述过程中的归一化基系数。

如果您的数据是以离散的相等时间间隔测量的,那么您可以测量不同滞后的自相关。这是从 0 开始到 tp 结束的时间序列与从 p 开始到 t 结束的时间序列之间的标准相关性,其中 t 是您的数据点数。您可以通过研究偏自相关走得更远。在你有高峰的地方,你就有一个主导时期。对于 acf,还有一些统计测试可以告诉您 acf 的值是显着还是主要来自噪声伪影。

这些函数适用于一维数据,但您可以使用 x、y 或 z 中的任何一个。这是因为投影在任何轴上的数据都表现出相同的周期,但真正的 3d 曲线不位于垂直于其中一个轴的平面上的情况除外。因此,您可以在某个轴上使用您的发现并通过在其他轴上测量来确认。