对不同时间数据进行傅里叶变换

时间:2016-01-06 17:30:07

标签: c#

所以...不知道我应该问这个问题,但我希望有人能够至少指出我正确的方向。我有一个时间序列,我想进行频谱分析,但我找不到任何工具来进行FFT,以适应数据点之间的不同时间差(它们都假设dt是常数)。有没有人知道一个适用于此的工具(我专门寻找周期图或其他方法来确定周期性)。

我唯一的想法是在特定时间间隔内对数据点进行线性插值,以便为数据提供恒定的dt,但我担心这会使频谱分析数据出现。

这是一小部分数据;时间,数据,dt

 time    data        dt
39.630  49662.1     0.170
39.810  49582.5     0.180
40.150  49430.0     0.340
40.320  49413.8     0.170
40.490  49324.0     0.170
40.670  49092.5     0.180
40.830  49025.6     0.160
41.010  49101.5     0.180

任何建议??

1 个答案:

答案 0 :(得分:0)

FFT背后的大多数数学理论都需要固定的采样周期。 我建议你做以下事情:

  1. 创建一系列等间隔时间

  2. 根据相邻点计算每个瞬间的值(线性或二次插值应该这样做)。您可以根据需要使用尽可能多的点,以获得最佳近似值。

  3. 根据您对结果的详细程度,使用参数或非参数方法估算光谱:Burg方法可能很有用,LPC / AR模型也很有用。

  4. 检查Mathworks上的链接:

    http://www.mathworks.com/help/signal/nonparametric-spectral-estimation.html

    http://www.mathworks.com/help/signal/parametric-spectral-estimation.html