Python 中的 spec.pgram 等效项

问题描述

我正在使用 R 处理一些遗留代码。在代码中,周期图的频率和强度被提取并用于一些下游分析:

spec.pgram(tdata,pad=0.3,tap=0.3,span=2,plot=F,detrend=TRUE,demean=TRUE)

tdata 是一维时间序列数据。

问题是我想将此部分移植到 Python,但我无法重现此命令的输出

到目前为止,我尝试使用 scipy 实现:

scipy.signal.periodogram(tdata)

以及 pyspectrum 包的实现:

p = spectrum.Periodogram(tdataA1n)
freq = p.frequencies()
intensities = p.psd

不幸的是,这两种方法产生了相似的“模式”,但数值明显较低(例如,与 R 中的 0-600 相比,值范围为 0-300)。我认为这是基于 R 中的一些参数,但我不知道如何将它们转换为 python。

非常感谢您的帮助。

解决方法

如果有人在寻找解决方案,我会发现一个 GitHub repo 带有 python 版本的 spec.pgram,它对我来说很有魅力。不幸的是它不包含明确的许可证,所以我猜原始实现的 GPL 许可证是适用的。