はじめに
Pythonで矩形の単パルスを作るときのサンプルを示します。
scipy.signal.square
を使う方法などは出てきたのですが、単パルスを作るのがすぐ思いつかなかったので、簡単ではありますが、下記に残しておきたいと思います。
コード
import numpy as np
import matplotlib.pyplot as plt
def square(t: np.ndarray, t_min: float, t_max: float, a: float = 1) -> np.ndarray:
"""
Generate a square wave.
Parameters
----------
t : numpy.ndarray
Time array.
t_min : float
Minimum time for the square wave.
t_max : float
Maximum time for the square wave.
a : float, optional
Amplitude of the square wave (default is 1).
Returns
-------
out : numpy.ndarray
Square wave signal with the specified amplitude in the given time range.
Examples
--------
Generate a square wave from 5 to 10 units of time with default amplitude (1):
>>> t = np.arange(0, 100)
>>> square_wave = square(t, 5, 10)
>>> plt.plot(t, square_wave)
>>> plt.xlabel('Time')
>>> plt.ylabel('Amplitude')
>>> plt.title('Square Wave')
>>> plt.show()
"""
return np.where((t >= t_min) & (t <= t_max), a, 0)
t = np.arange(0, 100)
square_wave = square(t, 5, 10)
plt.plot(t, square_wave)
plt.xlabel("Time")
plt.ylabel("Amplitude")
plt.title("Square Wave")
plt.show()
おわりに
Pythonで矩形の単パルスを作るときのサンプルを示しました。
コメント