scipy.signal.

square#

scipy.signal.square(t, duty=0.5)[source]#

返回週期性方波波形。

方波的週期為 2*pi,從 0 到 2*pi*duty 的值為 +1,從 2*pi*duty2*pi 的值為 -1。duty 必須在區間 [0,1] 內。

請注意,這不是頻寬受限的。它產生無限數量的諧波,這些諧波會在頻譜中來回混疊。

參數:
tarray_like

輸入時間陣列。

dutyarray_like,可選

工作週期。預設值為 0.5 (50% 工作週期)。如果是一個陣列,會導致波形隨時間變化,且長度必須與 t 相同。

返回值:
yndarray

包含方波波形的輸出陣列。

範例

一個以 500 Hz 採樣 1 秒的 5 Hz 波形

>>> import numpy as np
>>> from scipy import signal
>>> import matplotlib.pyplot as plt
>>> t = np.linspace(0, 1, 500, endpoint=False)
>>> plt.plot(t, signal.square(2 * np.pi * 5 * t))
>>> plt.ylim(-2, 2)

一個脈衝寬度調變的正弦波

>>> plt.figure()
>>> sig = np.sin(2 * np.pi * t)
>>> pwm = signal.square(2 * np.pi * 30 * t, duty=(sig + 1)/2)
>>> plt.subplot(2, 1, 1)
>>> plt.plot(t, sig)
>>> plt.subplot(2, 1, 2)
>>> plt.plot(t, pwm)
>>> plt.ylim(-1.5, 1.5)
../../_images/scipy-signal-square-1_00.png
../../_images/scipy-signal-square-1_01.png