cupyx.scipy.signal.square#
- cupyx.scipy.signal.square(t, duty=0.5)[source]#
返回周期性方波波形。
方波的周期为
2*pi
,从 0 到2*pi*duty
时值为 +1,从2*pi*duty
到2*pi
时值为 -1。duty 必须在区间 [0,1] 内。注意,这不是带限的。它产生无限数量的谐波,这些谐波在频谱上来回混叠。
- 参数:
t (array_like) – 输入时间数组。
duty (array_like, optional) – 占空比。默认值为 0.5 (50% 占空比)。如果是一个数组,会导致波形随时间变化,且必须与 t 的长度相同。
- 返回值:
y – 包含方波波形的输出数组。
- 返回类型:
示例
以 500 Hz 采样率对 5 Hz 波形进行 1 秒采样
>>> import cupyx.scipy.signal >>> import cupy as cp >>> import matplotlib.pyplot as plt >>> t = cupy.linspace(0, 1, 500, endpoint=False) >>> plt.plot(cupy.asnumpy(t), cupy.asnumpy(cupyx.scipy.signal.square(2 * cupy.pi * 5 * t))) >>> plt.ylim(-2, 2)
脉冲宽度调制的正弦波
>>> plt.figure() >>> sig = cupy.sin(2 * cupy.pi * t) >>> pwm = cupyx.scipy.signal.square(2 * cupy.pi * 30 * t, duty=(sig + 1)/2) >>> plt.subplot(2, 1, 1) >>> plt.plot(cupy.asnumpy(t), cupy.asnumpy(sig)) >>> plt.subplot(2, 1, 2) >>> plt.plot(cupy.asnumpy(t), cupy.asnumpy(pwm)) >>> plt.ylim(-1.5, 1.5)