谁能解释scipy中lomb_scargle的含义?

时间:2013-11-27 15:33:41

标签: python numpy scipy signals

我试图在不均匀间隔的时间点找到句号 幸运的是, lomb-scargle 方法非常适合这样做 然而输出让我很困惑。假设如下sin(2*pi*t)曲线,我们应该期望在频率= 1 Hz 处出现尖峰,但输出偏差很大。

import numpy as np
from scipy.signal import spectral
import pylab as pl

time = np.linspace(1, 1000, 100)
intensity = np.sin(2*np.pi*time)
freqs1 = np.linspace(0.01, 10, 1000)
freqs2 = np.linspace(0.01, 10, 100)
pm1 = spectral.lombscargle(time, intensity, freqs1)
pm2 = spectral.lombscargle(time, intensity, freqs2)

pl.subplot(211)
pl.plot(freqs1, pm1)
pl.subplot(212)
pl.plot(freqs2, pm2)
pl.show()

spectra

1 个答案:

答案 0 :(得分:0)

您的采样率太低,无法区分范围为t = 1 ... 1000的2 pi组件,因此最终会出现大量aliasing。你需要大约10000点才能在t = 1 ... 1000的范围内对sin(2 pi t)进行采样,以达到合理的精度。

要理解,请plot(time, intensity)。之后,使用time = np.linspace(1, 1000, 10000)再次执行此操作。

最后,请记住,Lomb-Scargle根据角频率给出了结果。