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, optional) – xy 时间序列的采样频率。默认为 1.0。

  • window (str or tuple or array_like, optional) – 要使用的期望窗口。如果 window 是一个字符串或元组,它会被传递给 get_window 以生成窗口值,这些值默认是 DFT-even 的。请参阅 get_window 以获取窗口列表和所需参数。如果 window 是类数组,它将直接用作窗口,其长度必须为 nperseg。默认为汉宁窗口。

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

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

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

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

  • return_onesided (bool, optional) – 如果 True,返回实数数据的单边谱。如果 False,返回双边谱。默认为 True,但对于复数数据,总是返回双边谱。

  • scaling ({ 'density', 'spectrum' }, optional) – 在计算交叉谱密度(’density’)和计算交叉谱(’spectrum’)之间进行选择,其中 Pxy 的单位在 ‘density’ 模式下为 V**2/Hz,在 ‘spectrum’ 模式下为 V**2,前提是 xy 以 V 为单位测量,fs 以 Hz 为单位测量。默认为 ‘density’。

  • axis (int, optional) – 计算两个输入的CSD时沿着的轴;默认是沿着最后一个轴(即 axis=-1)。

  • average ({ 'mean', 'median' }, optional) – 在平均周期图时使用的方法。默认为 ‘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%的重叠是一个合理的折中,既能准确估计信号功率,又不会过度计算任何数据。较窄的窗口可能需要更大的重叠。