本文簡要介紹 python 語言中 scipy.signal.lombscargle
的用法。
用法:
scipy.signal.lombscargle(x, y, freqs)#
計算Lomb-Scargle 周期圖。
Lomb-Scargle 周期圖由 Lomb [1] 開發,並由 Scargle [2] 進一步擴展,以發現和測試時間采樣不均勻的弱周期信號的重要性。
什麽時候標準化為 False (默認) 計算的周期圖未歸一化,它取值
(A**2) * N/4
對於振幅為 A 的諧波信號,N 足夠大。當 normalize 為 True 時,計算的周期圖由圍繞恒定參考模型(為零)的數據殘差進行歸一化。
輸入數組應該是一維的並且將被強製轉換為 float64。
- x: array_like
采樣時間。
- y: array_like
測量值。
- freqs: array_like
輸出周期圖的角頻率。
- precenter: 布爾型,可選
通過減去平均值預中心測量值。
- normalize: 布爾型,可選
計算歸一化周期圖。
- pgram: array_like
Lomb-Scargle 周期圖。
- ValueError
如果輸入數組 x 和 y 的形狀不同。
參數 ::
返回 ::
拋出 ::
注意:
由於 Townsend [3],該子例程使用稍微修改的算法計算周期圖,該算法允許對每個頻率僅使用一次通過輸入數組來計算周期圖。
對於大量樣本和頻率,算法運行時間大致為 O(x * freqs) 或 O(N^2)。
參考:
[1]N.R. Lomb“不等距數據的最小二乘頻率分析”,天體物理學和空間科學,第 39 卷,第 447-462 頁,1976 年
[2]J.D. Scargle“天文時間序列分析研究。 II - 不均勻間隔數據的頻譜分析的統計方麵”,《天體物理學雜誌》,第 263 卷,第 835-853 頁,1982 年
[3]R.H.D. Townsend,“使用圖形處理單元快速計算Lomb-Scargle 周期圖。”,天體物理學雜誌增刊係列,第 191 卷,第 247-253 頁,2010
例子:
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> rng = np.random.default_rng()
首先為信號定義一些輸入參數:
>>> A = 2. >>> w0 = 1. # rad/sec >>> nin = 150 >>> nout = 100000
隨機生成采樣時間:
>>> x = rng.uniform(0, 10*np.pi, nin)
繪製選定時間的正弦波:
>>> y = A * np.cos(w0*x)
定義要計算周期圖的頻率數組:
>>> w = np.linspace(0.01, 10, nout)
計算Lomb-Scargle 周期圖:
>>> import scipy.signal as signal >>> pgram = signal.lombscargle(x, y, w, normalize=True)
現在繪製輸入數據圖:
>>> fig, (ax_t, ax_w) = plt.subplots(2, 1, constrained_layout=True) >>> ax_t.plot(x, y, 'b+') >>> ax_t.set_xlabel('Time [s]')
然後繪製歸一化周期圖:
>>> ax_w.plot(w, pgram) >>> ax_w.set_xlabel('Angular frequency [rad/s]') >>> ax_w.set_ylabel('Normalized amplitude') >>> plt.show()
相關用法
- Python SciPy signal.lfilter用法及代碼示例
- Python SciPy signal.lfilter_zi用法及代碼示例
- Python SciPy signal.lp2hp用法及代碼示例
- Python SciPy signal.lti用法及代碼示例
- Python SciPy signal.lp2bs_zpk用法及代碼示例
- Python SciPy signal.lp2bp_zpk用法及代碼示例
- Python SciPy signal.lsim用法及代碼示例
- Python SciPy signal.lp2bs用法及代碼示例
- Python SciPy signal.lp2bp用法及代碼示例
- Python SciPy signal.lp2hp_zpk用法及代碼示例
- Python SciPy signal.lsim2用法及代碼示例
- Python SciPy signal.lp2lp_zpk用法及代碼示例
- Python SciPy signal.lp2lp用法及代碼示例
- Python SciPy signal.czt_points用法及代碼示例
- Python SciPy signal.chirp用法及代碼示例
- Python SciPy signal.residue用法及代碼示例
- Python SciPy signal.iirdesign用法及代碼示例
- Python SciPy signal.max_len_seq用法及代碼示例
- Python SciPy signal.kaiser_atten用法及代碼示例
- Python SciPy signal.oaconvolve用法及代碼示例
- Python SciPy signal.hilbert用法及代碼示例
- Python SciPy signal.ricker用法及代碼示例
- Python SciPy signal.group_delay用法及代碼示例
- Python SciPy signal.cheb2ord用法及代碼示例
- Python SciPy signal.get_window用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.signal.lombscargle。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。