scipy.signal.
gausspulse#
- 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,则返回包络(未调制信号)。否则,返回调制正弦波的实部。
- 参数:
- tndarray 或字符串 ‘cutoff’
输入数组。
- fcfloat, 可选
中心频率(例如 Hz)。默认值为 1000。
- bwfloat, 可选
脉冲在频域中的分数带宽(例如,Hz)。默认值为0.5。
- bwrfloat, 可选
计算分数带宽的参考电平(dB)。默认值为 -6。
- tprfloat, 可选
如果 t 是 ‘cutoff’,那么函数返回脉冲幅度低于 `tpr`(以 dB 为单位)时的截止时间。默认值为 -60。
- retquadbool, 可选
如果为 True,返回信号的正交(虚部)以及实部。默认是 False。
- retenvbool, 可选
如果为 True,返回信号的包络。默认是 False。
- 返回:
- yIndarray
信号的实部。总是返回。
- yQndarray
信号的虚部。仅在 retquad 为 True 时返回。
- yenvndarray
信号的包络。仅当 retenv 为 True 时返回。
示例
绘制5 Hz脉冲的实部、虚部和包络,采样频率为100 Hz,持续时间为2秒:
>>> import numpy as np >>> from scipy import signal >>> import matplotlib.pyplot as plt >>> t = np.linspace(-1, 1, 2 * 100, endpoint=False) >>> i, q, e = signal.gausspulse(t, fc=5, retquad=True, retenv=True) >>> plt.plot(t, i, t, q, t, e, '--')