scipy.signal中的Lombscargle返回的周期符号不够好

2024-05-19 02:50:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用from scipy.signal import lombscargle对一系列数据执行lomb scargle分析,类似于:

1.817077421792e+08  355
1.817077422107e+08  398
1.817077455293e+08  742
1.817077456641e+08  499
1.817077461528e+08  739
1.817077468291e+08  400
1.817077469622e+08  470
1.817077481475e+08  453
1.817077481812e+08  436
1.817077488074e+08  590
1.817077492057e+08  489
1.817077495055e+08  455
1.817077496859e+08  382
1.817077499973e+08  457
1.817077508730e+08  3225
1.817077509952e+08  580
1.817077513375e+08  2573
1.817077515587e+08  570
1.817077520971e+08  454
1.817077523153e+08  470
1.817077523792e+08  430
1.817077533276e+08  401
1.817077534631e+08  768
1.817077535931e+08  403
1.817077537921e+08  435
1.817077541100e+08  616
1.817077545133e+08  794
1.817077546800e+08  356
1.817077548855e+08  419
1.817077549727e+08  473
1.817077550907e+08  494
1.817077550940e+08  470
1.817077555090e+08  420
1.817077559604e+08  452
1.817077568337e+08  2112
1.817077573862e+08  478
1.817077574094e+08  587
1.817077574131e+08  362
1.817077575383e+08  359
1.817077581276e+08  464
1.817077587218e+08  1966
1.817077591875e+08  745
1.817077601205e+08  402
1.817077604522e+08  528
1.817077606050e+08  3527
1.817077616254e+08  487
1.817077619047e+08  758
1.817077630160e+08  510
1.817077632573e+08  436
1.817077643018e+08  498
1.817077643497e+08  442
1.817077647141e+08  516
1.817077648547e+08  827
1.817077655295e+08  1392
1.817077669992e+08  1289
1.817077670768e+08  413

(对于感兴趣的人,可以在here找到整个系列)。 我期待一个频率约为0.0758 Hz的信号。以下是我使用的代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import lombscargle

data = np.loadtxt('data.txt')

ang_freq = np.linspace(.1, 1, 10000)
periodogram = lombscargle(data[:,0], data[:,1], ang_freq)
print(ang_freq[np.argmax(periodogram)]/2/np.pi)
plt.plot(ang_freq, periodogram)
plt.show()

最大功率的返回频率为:0.065839。离真实的还不算太远,但肯定还不够好。下面是生成的绘图: enter image description here

是否可能我对ang_freq参数或其他变量使用了错误的值


Tags: 数据fromimportdatasignalasnpplt

热门问题