cupyx.scipy.signal.gausspulse#

cupyx.scipy.signal.gausspulse(t, fc=1000, bw=0.5, bwr=-6, tpr=-60, retquad=False, retenv=False)[源]#

返回一个高斯调制正弦波

exp(-a t^2) exp(1j*2*pi*fc*t).

如果 retquad 为 True,则返回实部和虚部(同相和正交)。如果 retenv 为 True,则返回包络(未调制信号)。否则,返回调制正弦波的实部。

参数:
  • t (ndarray 或字符串 'cutoff') – 输入数组。

  • fc (int, 可选) – 中心频率(例如 Hz)。默认为 1000。

  • bw (float, 可选) – 脉冲在频域中的分数带宽(例如 Hz)。默认为 0.5。

  • bwr (float, 可选) – 计算分数带宽时的参考电平 (dB)。默认为 -6。

  • tpr (float, 可选) – 如果 t 是 ‘cutoff’,则函数返回脉冲幅度降至 tpr 以下(dB)时的截止时间。默认为 -60。

  • retquad (bool, 可选) – 如果为 True,则返回信号的正交(虚部)以及实部。默认为 False。

  • retenv (bool, 可选) – 如果为 True,则返回信号的包络。默认为 False。

返回值:

  • yI (ndarray) – 信号的实部。总是返回。

  • yQ (ndarray) – 信号的虚部。仅当 retquad 为 True 时返回。

  • yenv (ndarray) – 信号的包络。仅当 retenv 为 True 时返回。

示例

绘制一个 5 Hz 脉冲的实部、虚部和包络,该脉冲以 100 Hz 采样 2 秒

>>> import cupyx.scipy.signal
>>> import cupy as cp
>>> import matplotlib.pyplot as plt
>>> t = cupy.linspace(-1, 1, 2 * 100, endpoint=False)
>>> i, q, e = cupyx.scipy.signal.gausspulse(t, fc=5, retquad=True, retenv=True)
>>> plt.plot(cupy.asnumpy(t), cupy.asnumpy(i), cupy.asnumpy(t), cupy.asnumpy(q),
             cupy.asnumpy(t), cupy.asnumpy(e), '--')