用法:
cusignal.spectral_analysis.spectral.lombscargle(x, y, freqs)
计算Lomb-Scargle 周期图。 Lomb-Scargle 周期图由 Lomb [1] 开发,并由 Scargle [2] 进一步扩展,以发现和测试具有不均匀时间采样的弱周期信号的重要性。当
normalize
为 False(默认)时,计算的周期图未归一化,对于具有足够大 N 的振幅 A 的谐波信号,它采用值(A**2) * N/4
。当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 “Least-squares frequency analysis of unequally spaced data”, Astrophysics and Space Science, vol 39, pp. 447-462, 1976
- 2
J.D. Scargle “Studies in astronomical time series analysis. II - Statistical aspects of spectral analysis of unevenly spaced data”, The Astrophysical Journal, vol 263, pp. 835-853, 1982
- 3
R.H.D. Townsend, “Fast calculation of the Lomb-Scargle periodogram using graphics processing units.”, The Astrophysical Journal Supplement Series, vol 191, pp. 247-253, 2010
例子:
>>> import cusignal >>> import cupy as cp >>> import matplotlib.pyplot as plt First define some input parameters for the signal: >>> A = 2. >>> w = 1. >>> phi = 0.5 * cp.pi >>> nin = 1000 >>> nout = 100000 >>> frac_points = 0.9 # Fraction of points to select Randomly select a fraction of an array with timesteps: >>> r = cp.random.rand(nin) >>> x = cp.linspace(0.01, 10*cp.pi, nin) >>> x = x[r >= frac_points] Plot a sine wave for the selected times: >>> y = A * cp.sin(w*x+phi) Define the array of frequencies for which to compute the periodogram: >>> f = cp.linspace(0.01, 10, nout) Calculate Lomb-Scargle periodogram: >>> pgram = cusignal.lombscargle(x, y, f, normalize=True) Now make a plot of the input data: >>> plt.subplot(2, 1, 1) >>> plt.plot(cp.asnumpy(x), cp.asnumpy(y), 'b+') Then plot the normalized periodogram: >>> plt.subplot(2, 1, 2) >>> plt.plot(cp.asnumpy(f), cp.asnumpy(pgram)) >>> plt.show()
相关用法
- Python cusignal.spectral_analysis.spectral.welch用法及代码示例
- Python cusignal.spectral_analysis.spectral.spectrogram用法及代码示例
- Python cusignal.spectral_analysis.spectral.periodogram用法及代码示例
- Python cusignal.spectral_analysis.spectral.csd用法及代码示例
- Python cusignal.spectral_analysis.spectral.coherence用法及代码示例
- Python cusignal.spectral_analysis.spectral.istft用法及代码示例
- Python cusignal.spectral_analysis.spectral.stft用法及代码示例
- Python cusignal.windows.windows.hann用法及代码示例
- Python cusignal.windows.windows.general_gaussian用法及代码示例
- Python cusignal.waveforms.waveforms.chirp用法及代码示例
- Python cusignal.windows.windows.gaussian用法及代码示例
- Python cusignal.windows.windows.hamming用法及代码示例
- Python cusignal.windows.windows.get_window用法及代码示例
- Python cusignal.waveforms.waveforms.gausspulse用法及代码示例
- Python cusignal.peak_finding.peak_finding.argrelmin用法及代码示例
- Python cusignal.windows.windows.bartlett用法及代码示例
- Python cusignal.windows.windows.chebwin用法及代码示例
- Python cusignal.windows.windows.general_cosine用法及代码示例
- Python cusignal.peak_finding.peak_finding.argrelextrema用法及代码示例
- Python cusignal.convolution.convolve.convolve2d用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cusignal.spectral_analysis.spectral.lombscargle。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。