在 Python 中绘制方波

Plot Square Wave in Python

我目前正在使用 numpy 和 pylot 在 python 中绘制方波。 如何绘制多个 T 周期的方波函数?

我目前有:

from scipy import signal
import numpy as np
from scipy.fftpack import fft

#Initialize Parameters
p_0 = 2
A = np.sqrt(1/(2*p_0))
t = [-A,A]


plt.plot(t,[A,A])
plt.show()

这只是给了我一条直线。 结局就是对方波函数取傅里叶变换

下面这段代码可以解决问题:

import math, numpy
from matplotlib import pyplot as plt

x = numpy.linspace(0, 10, 1000)
y = numpy.array([1 if math.floor(2 * t) % 2 == 0 else 0 for t in x])

plt.plot(x,y)
plt.show()
  • If math.floor(2 * t) % 2 == 0 returns True plot 1 else plot 0.

输出:

您可以使用 scipy.signal

中的 square 函数
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),'b')
plt.ylim(-2, 2)
plt.grid()
plt.show()