Python 矩形の単パルスを生成する

Programming
スポンサーリンク

はじめに

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で矩形の単パルスを作るときのサンプルを示しました。

コメント

タイトルとURLをコピーしました