如何用R理解/解释Lomb-Scargle周期图文档(软件包:: Spectrum)?

时间:2019-01-21 00:16:38

标签: r plot fft spectral-density

我正在处理有时间间隔的时间序列数据集。需要进行频谱分析以捕获重要的频率。但是由于FFT不能响应不均匀的数据,所以我有两种选择:

  1. 缺少值插补以填补空白,然后执行FFT。

  2. 使用非均匀FFT算法。 Lomb Scargle周期图似乎是一个不错的选择。

我用不同的缺失值估算技术进行了测试,结果各不相同。现在,我也想看看Lomb Scargle选项。

在R软件包Spectral中,有一些文档可以成功运行,其中包含代码。但是,我要消除一些疑问。

我在该主题上发现的所有文献/研究论文都包含复杂的数学方程式,这对我来说有点难懂。

如果有人能将我指向任何可以使我对Lomb Scargle周期图有功能理解的例子,我将不胜感激。

以下是文档中的代码:

# create two sin-functions
x_orig <- seq(0,1,by=1e-2)
y_orig <- sin(10*2*pi*x_orig) + 0.3*sin(2*2*pi*x_orig)
plot(x_orig, y_orig, type = "l")

# make a 10% gap
i <- round(length(x_orig)*0.2) : round(length(x_orig)*0.3)
x <- x_orig
y <- y_orig
x[i] <- NA
y[i] <- NA

# calculating the lomb periodogram
l <- spec.lomb(x = x, y = y)

# select a frequency range
m <- rbind(c(9,11))

# select and reconstruct the most significant component
l2 = filter.lomb(l, x_orig, filt=m)

# plot everything
par(mfrow=c(2,1),mar = c(4,4,2,4))
plot(x,y,"l", main = "Gapped signal")
lines(l2$x, l2$y,lty=2)
legend("bottomleft",c("gapped","10Hz component"),lty=c(1,2))
plot(l,main = "Spectrum")

首先,理论上选择频率范围时应该考虑什么?

m <- rbind(c(9,11))

第二,下面的代码行做什么?

par(mfrow=c(2,1),mar = c(4,4,2,4))

最后,我是否正确地说,如果我将Lomb-Scargle算法应用于没有间隙的均匀采样的时间序列数据,结果将与快速傅立叶变换完全相同?

非常抱歉,如果问题是基本的。

0 个答案:

没有答案