cupyx.scipy.signal.csd#

cupyx.scipy.signal.csd(x, y, fs=1.0, window='hann', nperseg=None, noverlap=None, nfft=None, detrend='constant', return_onesided=True, scaling='density', axis=-1, average='mean')[源代码]#

使用 Welch 方法估计互功率谱密度 Pxy。

参数:
  • x (array_like) – 测量值的时间序列

  • y (array_like) – 测量值的时间序列

  • fs (float, 可选) – xy 时间序列的采样频率。默认为 1.0。

  • window (strtuplearray_like, 可选) – 要使用的所需窗口。如果 window 是字符串或元组,则将其传递给 get_window 以生成窗口值,默认情况下这些值是 DFT 偶数的。有关窗口及其所需参数的列表,请参见 get_window。如果 window 是 array_like,它将直接用作窗口,其长度必须是 nperseg。默认为 Hann 窗口。

  • nperseg (int, 可选) – 每个段的长度。默认为 None,但如果 window 是 str 或 tuple,则设置为 256;如果 window 是 array_like,则设置为窗口的长度。

  • noverlap (int, 可选) – 段之间重叠的点数。如果为 None,则 noverlap = nperseg // 2。默认为 None

  • nfft (int, 可选) – 如果需要零填充 FFT,则使用的 FFT 长度。如果为 None,则 FFT 长度为 nperseg。默认为 None

  • detrend (str 或 function 或 False, 可选) – 指定如何去除每个段的趋势。如果 detrend 是字符串,则将其作为 type 参数传递给 detrend 函数。如果它是函数,它接受一个段并返回一个去除了趋势的段。如果 detrendFalse,则不进行去趋势处理。默认为 ‘constant’。

  • return_onesided (bool, 可选) – 如果为 True,则对于实数数据返回单侧谱。如果为 False,则返回双侧谱。默认为 True,但对于复数数据,始终返回双侧谱。

  • scaling ({ 'density', 'spectrum' }, 可选) – 选择计算互谱密度('density')或互谱('spectrum')。如果 xy 以 V 为单位测量,fs 以 Hz 为单位测量,则计算互谱密度时 Pxy 的单位为 V**2/Hz,计算互谱时 Pxy 的单位为 V**2。默认为 'density'。

  • axis (int, 可选) – 对两个输入计算 CSD 的轴;默认为最后一个轴(即 axis=-1)。

  • average ({ 'mean', 'median' }, 可选) – 平均周期图时使用的方法。默认为 'mean'。

返回:

  • f (ndarray) – 采样频率数组。

  • Pxy (ndarray) – x,y 的互谱密度或互功率谱。

另见

periodogram

简单,可选修改的周期图

lombscargle

用于非均匀采样数据的 Lomb-Scargle 周期图

welch

使用 Welch 方法计算功率谱密度。[等同于 csd(x,x)]

coherence

使用 Welch 方法计算幅值平方相干性。

说明

按照惯例,Pxy 是通过将 X 的共轭 FFT 乘以 Y 的 FFT 来计算的。

如果输入序列长度不同,较短的序列将被零填充以匹配。

适当的重叠量取决于所选的窗口以及您的要求。对于默认的 Hann 窗口,50% 的重叠是在准确估计信号功率与不过度计算数据之间的一个合理权衡。较窄的窗口可能需要更大的重叠。