scipy.signal.
square#
- scipy.signal.square(t, duty=0.5)[source]#
返回週期性方波波形。
方波的週期為
2*pi
,從 0 到2*pi*duty
的值為 +1,從2*pi*duty
到2*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)